mirror of
https://github.com/YouHaveTrouble/PreventStabby.git
synced 2026-05-12 13:26:56 +00:00
implement pvp state override command and api
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
package me.youhavetrouble.preventstabby.commands;
|
||||
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import me.youhavetrouble.preventstabby.config.PreventStabbyPermission;
|
||||
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||
import me.youhavetrouble.preventstabby.util.PvpState;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class GlobalToggleCommand {
|
||||
public static void globalToggle(CommandSender sender, String[] args) {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
|
||||
if (!PreventStabbyPermission.COMMAND_GLOBAL_TOGGLE.doesCommandSenderHave(sender)) {
|
||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission());
|
||||
return;
|
||||
}
|
||||
|
||||
if (args.length != 2) {
|
||||
PluginMessages.sendMessage(sender, "Try /pvp override <enabled/disabled/none>");
|
||||
return;
|
||||
}
|
||||
|
||||
PvpState pvpState = PvpState.valueOf(args[1].toUpperCase(Locale.ROOT));
|
||||
|
||||
switch (pvpState) {
|
||||
case ENABLED:
|
||||
PreventStabby.getPlugin().getPlayerManager().setForcedPvpState(PvpState.ENABLED);
|
||||
PluginMessages.broadcastMessage(PreventStabby.getPlugin().getConfigCache().getForce_pvp_on());
|
||||
break;
|
||||
case DISABLED:
|
||||
PreventStabby.getPlugin().getPlayerManager().setForcedPvpState(PvpState.DISABLED);
|
||||
PluginMessages.broadcastMessage(PreventStabby.getPlugin().getConfigCache().getForce_pvp_off());
|
||||
break;
|
||||
case NONE:
|
||||
PreventStabby.getPlugin().getPlayerManager().setForcedPvpState(PvpState.NONE);
|
||||
PluginMessages.broadcastMessage(PreventStabby.getPlugin().getConfigCache().getForce_pvp_none());
|
||||
break;
|
||||
default:
|
||||
PluginMessages.sendMessage(sender, "Try /pvp override <enabled/disabled/none>");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -26,6 +27,7 @@ public class MainCommand implements TabExecutor {
|
||||
subCommands.put("off", PreventStabbyPermission.COMMAND_TOGGLE);
|
||||
subCommands.put("disable", PreventStabbyPermission.COMMAND_TOGGLE);
|
||||
subCommands.put("reload", PreventStabbyPermission.COMMAND_RELOAD);
|
||||
subCommands.put("override", PreventStabbyPermission.COMMAND_GLOBAL_TOGGLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -53,6 +55,9 @@ public class MainCommand implements TabExecutor {
|
||||
case "reload":
|
||||
ReloadCommand.reload(sender);
|
||||
break;
|
||||
case "override":
|
||||
GlobalToggleCommand.globalToggle(sender, args);
|
||||
break;
|
||||
default:
|
||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_such_command());
|
||||
break;
|
||||
@@ -74,7 +79,7 @@ public class MainCommand implements TabExecutor {
|
||||
commands.add(entry.getKey());
|
||||
}
|
||||
return commands;
|
||||
} else if (args.length == 2 && PreventStabbyPermission.COMMAND_TOGGLE.doesCommandSenderHave(sender)) {
|
||||
} else if (args.length == 2) {
|
||||
switch (args[0].toLowerCase()) {
|
||||
default:
|
||||
break;
|
||||
@@ -83,12 +88,19 @@ public class MainCommand implements TabExecutor {
|
||||
case "enable":
|
||||
case "off":
|
||||
case "disable":
|
||||
if (!PreventStabbyPermission.COMMAND_TOGGLE_OTHERS.doesCommandSenderHave(sender)) break;
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
commands.add(player.getName());
|
||||
}
|
||||
break;
|
||||
case "override":
|
||||
if (!PreventStabbyPermission.COMMAND_GLOBAL_TOGGLE.doesCommandSenderHave(sender)) break;
|
||||
commands.add("enabled");
|
||||
commands.add("disabled");
|
||||
commands.add("none");
|
||||
break;
|
||||
}
|
||||
return commands;
|
||||
return StringUtil.copyPartialMatches(args[1], commands, new ArrayList<>());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ public class PvpToggleCommand {
|
||||
public static void toggle(CommandSender sender, String[] args) {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
|
||||
if (!PreventStabbyPermission.COMMAND_TOGGLE.doesCommandSenderHave(sender)) {
|
||||
PluginMessages.parseMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission());
|
||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getNo_permission());
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user