diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2e6cb15
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+target/
+.idea/*
+.idea/
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 0678c8e..92c57ae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,14 +6,14 @@
ru.rey
rHideTags
- 1.0
+ 1.1.1
jar
rHideTags
Plugin to hide players nametags
- 1.8
+ 17
UTF-8
https://vk.com/re1khsempai
@@ -57,20 +57,16 @@
- spigotmc-repo
- https://hub.spigotmc.org/nexus/content/repositories/snapshots/
-
-
- sonatype
- https://oss.sonatype.org/content/groups/public/
+ papermc-repo
+ https://repo.papermc.io/repository/maven-public/
- org.spigotmc
- spigot-api
- 1.15.2-R0.1-SNAPSHOT
+ io.papermc.paper
+ paper-api
+ 1.20.1-R0.1-SNAPSHOT
provided
diff --git a/src/main/java/ru/rey/rhidetags/Core.java b/src/main/java/ru/rey/rhidetags/Core.java
index 243130a..8eed589 100644
--- a/src/main/java/ru/rey/rhidetags/Core.java
+++ b/src/main/java/ru/rey/rhidetags/Core.java
@@ -1,70 +1,50 @@
package ru.rey.rhidetags;
-import net.md_5.bungee.api.ChatMessageType;
-import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerInteractAtEntityEvent;
-import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
+import ru.rey.rhidetags.listeners.PlayerInteract;
+import ru.rey.rhidetags.listeners.PlayerJoin;
-public final class Core extends JavaPlugin implements Listener {
-
- private Scoreboard board;
- private Team team;
-
- private String message;
+public final class Core extends JavaPlugin {
+ public static Scoreboard board;
+ private static Team team;
+ public static String message;
@Override
public void onEnable() {
- getConfig().options().copyDefaults(true);
- saveDefaultConfig();
+ this.getConfig().options().copyDefaults(true);
+ this.saveDefaultConfig();
message = getConfig().getString("message");
- boardSettings();
+ this.boardSettings();
- Bukkit.getPluginManager().registerEvents(this, this);
+ this.getServer().getPluginManager().registerEvents(new PlayerInteract(), this);
+ this.getServer().getPluginManager().registerEvents(new PlayerJoin(), this);
- if (!Bukkit.getOnlinePlayers().isEmpty())
- Bukkit.getOnlinePlayers().forEach(p -> hideName(p));
+ if (!this.getServer().getOnlinePlayers().isEmpty()) this.getServer().getOnlinePlayers().forEach(Core::hideName);
- Bukkit.getConsoleSender().sendMessage("");
- Bukkit.getConsoleSender().sendMessage("§6rHideTags §f| §aSuccessfully enabled");
- Bukkit.getConsoleSender().sendMessage("§6rHideTags §f| §aBy: §fvk.com/omashune");
- Bukkit.getConsoleSender().sendMessage("");
+ this.getLogger().info("");
+ this.getLogger().info("\033[38;5;220mrHideTags \033[38;5;231m| \033[38;5;118mSuccessfully enabled\033[0m");
+ this.getLogger().info("\033[38;5;220mrHideTags \033[38;5;231m| \033[38;5;118mBy: \033[38;5;231mvk.com/omashune\033[0m");
+ this.getLogger().info("");
}
- @EventHandler
- public void onJoin(PlayerJoinEvent e) {
- hideName(e.getPlayer());
- }
-
- @EventHandler
- public void onInteract(PlayerInteractAtEntityEvent e) {
- if (!(e.getRightClicked() instanceof Player)) return;
-
- e.getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR,
- TextComponent.fromLegacyText(message.replace("$name", ((Player) e.getRightClicked()).getDisplayName())));
- }
-
- private void hideName(Player p) {
+ public static void hideName(Player p) {
team.addEntry(p.getName());
p.setScoreboard(board);
}
private void boardSettings() {
board = Bukkit.getScoreboardManager().getNewScoreboard();
- board.registerNewTeam("rHideTags");
-
- team = board.getTeam("rHideTags");
+ board.registerNewTeam("hidenametags");
+ team = board.getTeam("hidenametags");
+ if(team == null) return;
team.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER);
team.setCanSeeFriendlyInvisibles(false);
}
-
}
diff --git a/src/main/java/ru/rey/rhidetags/listeners/PlayerInteract.java b/src/main/java/ru/rey/rhidetags/listeners/PlayerInteract.java
new file mode 100644
index 0000000..d04be78
--- /dev/null
+++ b/src/main/java/ru/rey/rhidetags/listeners/PlayerInteract.java
@@ -0,0 +1,32 @@
+package ru.rey.rhidetags.listeners;
+
+import net.kyori.adventure.text.TextComponent;
+import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerInteractAtEntityEvent;
+import org.bukkit.potion.PotionEffectType;
+import ru.rey.rhidetags.Core;
+
+import java.util.Arrays;
+import java.util.Objects;
+
+public class PlayerInteract implements Listener {
+ @EventHandler
+ public void onInteract(PlayerInteractAtEntityEvent event) {
+ if (!(event.getRightClicked() instanceof Player) ||
+ (((Player) event.getRightClicked()).getActivePotionEffects().stream().anyMatch( // конструкция для выявления
+ potion -> potion.getType().equals(PotionEffectType.INVISIBILITY) // в инвизе ли игрок
+ ) && Arrays.stream(((Player) event.getRightClicked()).getEquipment().getArmorContents()).noneMatch(
+ Objects::nonNull
+ ) && !event.getPlayer().isOp())
+ ) return;
+
+ event.getPlayer().sendActionBar(
+ LegacyComponentSerializer.legacySection().deserialize(
+ Core.message.replace("$name", ((TextComponent) ((Player) event.getRightClicked()).displayName()).content())
+ )
+ );
+ }
+}
diff --git a/src/main/java/ru/rey/rhidetags/listeners/PlayerJoin.java b/src/main/java/ru/rey/rhidetags/listeners/PlayerJoin.java
new file mode 100644
index 0000000..459f481
--- /dev/null
+++ b/src/main/java/ru/rey/rhidetags/listeners/PlayerJoin.java
@@ -0,0 +1,13 @@
+package ru.rey.rhidetags.listeners;
+
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerJoinEvent;
+import ru.rey.rhidetags.Core;
+
+public class PlayerJoin implements Listener {
+ @EventHandler
+ public void onJoin(PlayerJoinEvent event) {
+ Core.hideName(event.getPlayer());
+ }
+}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index d793dfe..3a06e22 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,7 +1,7 @@
name: rHideTags
version: ${project.version}
main: ru.rey.rhidetags.Core
-api-version: 1.13
+api-version: 1.20
authors: [Rey]
description: Plugin to hide players nametags
website: https://vk.com/re1khsempai