Compare commits

..

4 Commits

7 changed files with 75 additions and 52 deletions
+5 -5
View File
@@ -6,7 +6,7 @@
<groupId>me.youhavetrouble</groupId> <groupId>me.youhavetrouble</groupId>
<artifactId>PreventStabby</artifactId> <artifactId>PreventStabby</artifactId>
<version>1.7.2</version> <version>1.8.0</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>PreventStabby</name> <name>PreventStabby</name>
@@ -134,25 +134,25 @@
<dependency> <dependency>
<groupId>net.kyori</groupId> <groupId>net.kyori</groupId>
<artifactId>adventure-api</artifactId> <artifactId>adventure-api</artifactId>
<version>4.11.0</version> <version>4.12.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.kyori</groupId> <groupId>net.kyori</groupId>
<artifactId>adventure-platform-bukkit</artifactId> <artifactId>adventure-platform-bukkit</artifactId>
<version>4.1.1</version> <version>4.2.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.kyori</groupId> <groupId>net.kyori</groupId>
<artifactId>adventure-text-minimessage</artifactId> <artifactId>adventure-text-minimessage</artifactId>
<version>4.11.0</version> <version>4.12.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.kyori</groupId> <groupId>net.kyori</groupId>
<artifactId>adventure-text-serializer-legacy</artifactId> <artifactId>adventure-text-serializer-legacy</artifactId>
<version>4.11.0</version> <version>4.12.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>
@@ -3,7 +3,6 @@ package me.youhavetrouble.preventstabby.commands;
import me.youhavetrouble.preventstabby.PreventStabby; import me.youhavetrouble.preventstabby.PreventStabby;
import me.youhavetrouble.preventstabby.config.PreventStabbyPermission; import me.youhavetrouble.preventstabby.config.PreventStabbyPermission;
import me.youhavetrouble.preventstabby.util.PluginMessages; import me.youhavetrouble.preventstabby.util.PluginMessages;
import net.kyori.adventure.audience.MessageType;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -11,6 +10,12 @@ import org.bukkit.command.CommandSender;
public class HelpCommand { public class HelpCommand {
public static void help(CommandSender sender, String[] args) { public static void help(CommandSender sender, String[] args) {
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> { Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
if (!PreventStabbyPermission.COMMAND_HELP.doesCommandSenderHave(sender)) {
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission());
return;
}
Component helpComponent = PluginMessages.MINIMESSAGE Component helpComponent = PluginMessages.MINIMESSAGE
.deserialize("<aqua><strikethrough> </strikethrough> PreventStabby Help <strikethrough> </strikethrough>") .deserialize("<aqua><strikethrough> </strikethrough> PreventStabby Help <strikethrough> </strikethrough>")
.append(Component.newline()) .append(Component.newline())
@@ -23,7 +28,7 @@ public class HelpCommand {
.append(Component.newline()) .append(Component.newline())
.append(PluginMessages.MINIMESSAGE.deserialize("<blue>/pvp <aqua><bold>toggle</bold> <white>- toggles PvP status")); .append(PluginMessages.MINIMESSAGE.deserialize("<blue>/pvp <aqua><bold>toggle</bold> <white>- toggles PvP status"));
} }
PreventStabby.getAudiences().sender(sender).sendMessage(helpComponent, MessageType.SYSTEM); PreventStabby.getAudiences().sender(sender).sendMessage(helpComponent);
}); });
} }
@@ -20,7 +20,7 @@ public class MainCommand implements TabExecutor {
private final HashMap<String, PreventStabbyPermission> subCommands = new HashMap<>(); private final HashMap<String, PreventStabbyPermission> subCommands = new HashMap<>();
public MainCommand() { public MainCommand() {
subCommands.put("help", PreventStabbyPermission.COMMAND); subCommands.put("help", PreventStabbyPermission.COMMAND_HELP);
subCommands.put("toggle", PreventStabbyPermission.COMMAND_TOGGLE); subCommands.put("toggle", PreventStabbyPermission.COMMAND_TOGGLE);
subCommands.put("on", PreventStabbyPermission.COMMAND_TOGGLE); subCommands.put("on", PreventStabbyPermission.COMMAND_TOGGLE);
subCommands.put("enable", PreventStabbyPermission.COMMAND_TOGGLE); subCommands.put("enable", PreventStabbyPermission.COMMAND_TOGGLE);
@@ -36,34 +36,35 @@ public class MainCommand implements TabExecutor {
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission()); PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission());
return true; return true;
} }
if (args.length >= 1) { if (args.length == 0) {
switch (args[0].toLowerCase()) { PvpToggleCommand.toggle(sender, args);
case "help": return true;
HelpCommand.help(sender, args); }
break;
case "toggle": switch (args[0].toLowerCase()) {
PvpToggleCommand.toggle(sender, args); case "help":
break; HelpCommand.help(sender, args);
case "on": break;
case "enable": case "toggle":
PvpToggleCommand.enable(sender, args); PvpToggleCommand.toggle(sender, args);
break; break;
case "off": case "on":
case "disable": case "enable":
PvpToggleCommand.disable(sender, args); PvpToggleCommand.enable(sender, args);
break; break;
case "reload": case "off":
ReloadCommand.reload(sender); case "disable":
break; PvpToggleCommand.disable(sender, args);
case "override": break;
GlobalToggleCommand.globalToggle(sender, args); case "reload":
break; ReloadCommand.reload(sender);
default: break;
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_such_command()); case "override":
break; GlobalToggleCommand.globalToggle(sender, args);
} break;
} else { default:
HelpCommand.help(sender, args); PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_such_command());
break;
} }
return true; return true;
} }
@@ -17,7 +17,7 @@ public class PvpToggleCommand {
return; return;
} }
if (args.length == 1) { if (args.length <= 1) {
if (sender instanceof Player) { if (sender instanceof Player) {
Player player = (Player) sender; Player player = (Player) sender;
if (CombatTimer.isInCombat(player.getUniqueId())) { if (CombatTimer.isInCombat(player.getUniqueId())) {
@@ -60,12 +60,6 @@ public class PvpToggleCommand {
message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other(); message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other();
} }
PluginMessages.sendMessage(sender, PluginMessages.parsePlayerName(player, message)); PluginMessages.sendMessage(sender, PluginMessages.parsePlayerName(player, message));
} else {
if (PreventStabbyPermission.COMMAND_TOGGLE_OTHERS.doesCommandSenderHave(sender)) {
PluginMessages.sendMessage(sender, "Try /pvp toggle <player>");
} else {
PluginMessages.sendMessage(sender, "Try /pvp toggle");
}
} }
}); });
} }
@@ -8,7 +8,9 @@ public enum PreventStabbyPermission {
COMMAND_TOGGLE("command.toggle"), COMMAND_TOGGLE("command.toggle"),
COMMAND_TOGGLE_OTHERS("command.toggle.others"), COMMAND_TOGGLE_OTHERS("command.toggle.others"),
COMMAND_RELOAD("command.reload"), COMMAND_RELOAD("command.reload"),
COMMAND_GLOBAL_TOGGLE("command.toggle.global"); COMMAND_GLOBAL_TOGGLE("command.toggle.global"),
COMMAND_HELP("command.help");
private final String permission; private final String permission;
PreventStabbyPermission(String permission) { PreventStabbyPermission(String permission) {
@@ -37,16 +37,24 @@ public class PlacoholderApiHook extends PlaceholderExpansion {
@Override @Override
public String onRequest(OfflinePlayer player, String params) { public String onRequest(OfflinePlayer player, String params) {
if (params.equalsIgnoreCase("combat_time")) { switch (params) {
return getCombatTimePlaceholder(player.getUniqueId()); case "pvp":
if (!player.isOnline()) return String.valueOf(false);
return String.valueOf(plugin.getPlayerManager().getPlayer(player.getUniqueId()).isPvpEnabled());
case "combat_time":
return getCombatTimePlaceholder(player.getUniqueId(), player);
case "in_combat":
if (!player.isOnline()) return String.valueOf(false);
return String.valueOf(plugin.getPlayerManager().getPlayer(player.getUniqueId()).isInCombat());
default:
return null;
} }
if (params.equalsIgnoreCase("in_combat")) {
return String.valueOf(plugin.getPlayerManager().getPlayer(player.getUniqueId()).isInCombat());
}
return null;
} }
private String getCombatTimePlaceholder(UUID uuid) { private String getCombatTimePlaceholder(UUID uuid, OfflinePlayer player) {
if (!player.isOnline()) {
return legacyComponentSerializer.serialize(PluginMessages.parseMessage(plugin.getConfigCache().getPlaceholder_not_in_combat()));
}
long seconds = plugin.getPlayerManager().getPlayer(uuid).getCombattime() - Instant.now().getEpochSecond(); long seconds = plugin.getPlayerManager().getPlayer(uuid).getCombattime() - Instant.now().getEpochSecond();
if (seconds > 0) { if (seconds > 0) {
String msg = plugin.getConfigCache().getPlaceholder_combat_time(); String msg = plugin.getConfigCache().getPlaceholder_combat_time();
+13
View File
@@ -22,15 +22,28 @@ permissions:
preventstabby.command: preventstabby.command:
default: true default: true
description: Allows usage of /pvp command description: Allows usage of /pvp command
preventstabby.command.help:
default: true
description: Allows usage of /pvp help command
children:
preventstabby.command: true
preventstabby.command.toggle: preventstabby.command.toggle:
default: true default: true
description: Allows usage of /pvp <toggle/enable/disable> command description: Allows usage of /pvp <toggle/enable/disable> command
children:
preventstabby.command: true
preventstabby.command.toggle.others: preventstabby.command.toggle.others:
default: op default: op
description: Allows usage of /pvp <toggle/enable/disable> <player> command description: Allows usage of /pvp <toggle/enable/disable> <player> command
children:
preventstabby.command: true
preventstabby.command.toggle.global: preventstabby.command.toggle.global:
default: op default: op
description: Allows usage of /pvp override <enabled/disabled/none> command description: Allows usage of /pvp override <enabled/disabled/none> command
children:
preventstabby.command: true
preventstabby.command.reload: preventstabby.command.reload:
default: op default: op
description: Allows usage of /pvp reload command description: Allows usage of /pvp reload command
children:
preventstabby.command: true