mirror of
https://github.com/Shiewk/SModeration.git
synced 2026-04-28 05:54:16 +02:00
Unmute and unban commands
This commit is contained in:
@@ -54,5 +54,15 @@ public final class SModeration extends JavaPlugin {
|
|||||||
assert logs != null;
|
assert logs != null;
|
||||||
logs.setExecutor(new ModLogsCommand());
|
logs.setExecutor(new ModLogsCommand());
|
||||||
logs.setTabCompleter(new ModLogsCommand());
|
logs.setTabCompleter(new ModLogsCommand());
|
||||||
|
|
||||||
|
final PluginCommand unmute = getCommand("unmute");
|
||||||
|
assert unmute != null;
|
||||||
|
unmute.setExecutor(new UnmuteCommand());
|
||||||
|
unmute.setTabCompleter(new UnmuteCommand());
|
||||||
|
|
||||||
|
final PluginCommand unban = getCommand("unban");
|
||||||
|
assert unban != null;
|
||||||
|
unban.setExecutor(new UnbanCommand());
|
||||||
|
unban.setTabCompleter(new UnbanCommand());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import de.shiewk.smoderation.punishments.PunishmentType;
|
|||||||
import de.shiewk.smoderation.util.PlayerUtil;
|
import de.shiewk.smoderation.util.PlayerUtil;
|
||||||
import de.shiewk.smoderation.util.TimeUtil;
|
import de.shiewk.smoderation.util.TimeUtil;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@@ -37,7 +38,7 @@ public class ModLogsCommand implements CommandExecutor, TabCompleter {
|
|||||||
uuid = PlayerUtil.offlinePlayerUUIDByName(playername);
|
uuid = PlayerUtil.offlinePlayerUUIDByName(playername);
|
||||||
}
|
}
|
||||||
if (uuid == null){
|
if (uuid == null){
|
||||||
sender.sendMessage(Component.text("This player was not found. Try running /%s with an UUID instead.".formatted(label)));
|
sender.sendMessage(Component.text("This player was not found. Try running /%s with an UUID instead.".formatted(label)).color(NamedTextColor.RED));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
name = PlayerUtil.offlinePlayerName(uuid);
|
name = PlayerUtil.offlinePlayerName(uuid);
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package de.shiewk.smoderation.command;
|
||||||
|
|
||||||
|
import de.shiewk.smoderation.SModeration;
|
||||||
|
import de.shiewk.smoderation.punishments.Punishment;
|
||||||
|
import de.shiewk.smoderation.punishments.PunishmentType;
|
||||||
|
import de.shiewk.smoderation.util.PlayerUtil;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import org.bukkit.command.*;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class UnbanCommand implements CommandExecutor, TabCompleter {
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||||
|
if (args.length < 1){
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
|
||||||
|
UUID senderUUID;
|
||||||
|
if (sender instanceof ConsoleCommandSender){
|
||||||
|
senderUUID = PlayerUtil.UUID_CONSOLE;
|
||||||
|
} else if (sender instanceof Player pl){
|
||||||
|
senderUUID = pl.getUniqueId();
|
||||||
|
} else if (sender instanceof BlockCommandSender){
|
||||||
|
sender.sendMessage(Component.text("Blocks can't execute this command.").color(NamedTextColor.RED));
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(Component.text("Your command sender type is unknown (%s).".formatted(sender.getClass().getName())).color(NamedTextColor.RED));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
String nameArg = args[0];
|
||||||
|
UUID uuid;
|
||||||
|
try {
|
||||||
|
uuid = UUID.fromString(nameArg);
|
||||||
|
} catch (IllegalArgumentException ignored){
|
||||||
|
uuid = PlayerUtil.offlinePlayerUUIDByName(nameArg);
|
||||||
|
}
|
||||||
|
if (uuid == null){
|
||||||
|
sender.sendMessage(Component.text("This player was not found. Try running /%s with an UUID instead.".formatted(label)).color(NamedTextColor.RED));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
UUID finalUuid = uuid;
|
||||||
|
final Punishment punishment = SModeration.container.find(p -> p.to.equals(finalUuid) && p.isActive() && p.type == PunishmentType.BAN);
|
||||||
|
if (punishment != null) {
|
||||||
|
punishment.cancel(senderUUID);
|
||||||
|
punishment.broadcastCancellation(SModeration.container);
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(Component.text("This player is not banned.").color(NamedTextColor.RED));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package de.shiewk.smoderation.command;
|
||||||
|
|
||||||
|
import de.shiewk.smoderation.SModeration;
|
||||||
|
import de.shiewk.smoderation.punishments.Punishment;
|
||||||
|
import de.shiewk.smoderation.punishments.PunishmentType;
|
||||||
|
import de.shiewk.smoderation.util.PlayerUtil;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import org.bukkit.command.*;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class UnmuteCommand implements CommandExecutor, TabCompleter {
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||||
|
if (args.length < 1){
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
|
||||||
|
UUID senderUUID;
|
||||||
|
if (sender instanceof ConsoleCommandSender){
|
||||||
|
senderUUID = PlayerUtil.UUID_CONSOLE;
|
||||||
|
} else if (sender instanceof Player pl){
|
||||||
|
senderUUID = pl.getUniqueId();
|
||||||
|
} else if (sender instanceof BlockCommandSender){
|
||||||
|
sender.sendMessage(Component.text("Blocks can't execute this command.").color(NamedTextColor.RED));
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(Component.text("Your command sender type is unknown (%s).".formatted(sender.getClass().getName())).color(NamedTextColor.RED));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
String nameArg = args[0];
|
||||||
|
UUID uuid;
|
||||||
|
try {
|
||||||
|
uuid = UUID.fromString(nameArg);
|
||||||
|
} catch (IllegalArgumentException ignored){
|
||||||
|
uuid = PlayerUtil.offlinePlayerUUIDByName(nameArg);
|
||||||
|
}
|
||||||
|
if (uuid == null){
|
||||||
|
sender.sendMessage(Component.text("This player was not found. Try running /%s with an UUID instead.".formatted(label)).color(NamedTextColor.RED));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
UUID finalUuid = uuid;
|
||||||
|
final Punishment punishment = SModeration.container.find(p -> p.to.equals(finalUuid) && p.isActive() && p.type == PunishmentType.MUTE);
|
||||||
|
if (punishment != null) {
|
||||||
|
punishment.cancel(senderUUID);
|
||||||
|
punishment.broadcastCancellation(SModeration.container);
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(Component.text("This player is not muted.").color(NamedTextColor.RED));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -40,6 +40,20 @@ commands:
|
|||||||
- smoderation
|
- smoderation
|
||||||
permission: smod.menu
|
permission: smod.menu
|
||||||
description: Shows the SModeration menu.
|
description: Shows the SModeration menu.
|
||||||
|
unmute:
|
||||||
|
usage: "§cUsage: /unmute <player|uuid>"
|
||||||
|
aliases:
|
||||||
|
- sunmute
|
||||||
|
permission: smod.unmute
|
||||||
|
description: Unmutes a muted player.
|
||||||
|
unban:
|
||||||
|
usage: "§cUsage: /unban <player|uuid>"
|
||||||
|
aliases:
|
||||||
|
- sunban
|
||||||
|
- pardon
|
||||||
|
- spardon
|
||||||
|
permission: smod.unban
|
||||||
|
description: Unbans a banned player.
|
||||||
permissions:
|
permissions:
|
||||||
smod.mute:
|
smod.mute:
|
||||||
default: op
|
default: op
|
||||||
|
|||||||
Reference in New Issue
Block a user