diff --git a/src/de/anura/core/Setup.java b/src/de/anura/core/Setup.java index e1b9bdc..be27860 100644 --- a/src/de/anura/core/Setup.java +++ b/src/de/anura/core/Setup.java @@ -210,6 +210,9 @@ public class Setup { Core.getMainClass().getCommand("warplist").setExecutor(tc); Core.getMainClass().getCommand("addInvItems").setExecutor(oc); Core.getMainClass().getCommand("villager").setExecutor(ac); + Core.getMainClass().getCommand("i").setExecutor(tc); + Core.getMainClass().getCommand("mute").setExecutor(tc); + Core.getMainClass().getCommand("unmute").setExecutor(tc); } private static void setupInventories() { diff --git a/src/de/anura/core/commands/TeamCommands.java b/src/de/anura/core/commands/TeamCommands.java index bb7aa12..cfe8bd5 100644 --- a/src/de/anura/core/commands/TeamCommands.java +++ b/src/de/anura/core/commands/TeamCommands.java @@ -326,10 +326,49 @@ public class TeamCommands implements CommandExecutor { Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + P.getName() + " {color:\"" + (rs.getBoolean("userWarp") ? "green" : "blue") + "\",text:\"" + rs.getString("name") + "\",clickEvent:{action:run_command,value:\"/warp " + rs.getString("name") + "\"}}"); } return true; + } else if (cmd.getName().equalsIgnoreCase("i")) { + if (P != null && P.hasPermission("core.commands.i")) { + if (args.length == 0) return false; + String item = args[0]; + boolean d = args.length == 2 && Core.isInteger(args[1]); + short dam = d ? Short.valueOf(args[1]) : 0; + if (Core.isInteger(item)) { + P.getInventory().addItem(new ItemStack(Integer.valueOf(item), 1, dam)); + } else { + Material m = Material.matchMaterial(item); + if (m == null) return true; + P.getInventory().addItem(new ItemStack(m, 1, dam)); + } + return true; + } + } else if (cmd.getName().equalsIgnoreCase("mute")) { + if (sender.hasPermission("core.commands.mute")) { + if (args.length == 0) return false; + Player p = Bukkit.getPlayer(args[0]); + if (p == null) { + sender.sendMessage("Spieler ist nicht online!"); + return true; + } + Core.getMySql().querySelect("UPDATE players SET muted = 1 WHERE uuid = '"+p.getUniqueId().toString()+"'"); + sender.sendMessage("Spieler gemutet!"); + return true; + } + } else if (cmd.getName().equalsIgnoreCase("unmute")) { + if (sender.hasPermission("core.commands.mute")) { + if (args.length == 0) return false; + Player p = Bukkit.getPlayer(args[0]); + if (p == null) { + sender.sendMessage("Spieler ist nicht online!"); + return true; + } + Core.getMySql().querySelect("UPDATE players SET muted = 0 WHERE uuid = '"+p.getUniqueId().toString()+"'"); + sender.sendMessage("Spieler entmutet!"); + return true; + } } } catch(Throwable e) { - Errors.reportException(e); - } + Errors.reportException(e); + } return false; } } diff --git a/src/de/anura/core/events/PlayerChat.java b/src/de/anura/core/events/PlayerChat.java index 1ba65c2..3c39932 100644 --- a/src/de/anura/core/events/PlayerChat.java +++ b/src/de/anura/core/events/PlayerChat.java @@ -1,7 +1,10 @@ package de.anura.core.events; +import de.anura.core.API.Core; import de.anura.core.API.Errors; import de.anura.core.AnuraCore; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.IllegalFormatException; import org.bukkit.ChatColor; import org.bukkit.event.EventHandler; @@ -17,10 +20,17 @@ public class PlayerChat implements Listener { @EventHandler public void onPlayerChat(AsyncPlayerChatEvent event) { try { + ResultSet rs = Core.getMySql().querySelect("SELECT mute FROM players WHERE uuid = '"+event.getPlayer().getUniqueId().toString()+"'"); + rs.first(); + if (rs.getBoolean("mute")) { + event.setCancelled(true); + Core.statusMsg(event.getPlayer(), "you_are_muted", false); + return; + } if (event.isAsynchronous()) { event.setFormat("%s" + ChatColor.GRAY + ":" + ChatColor.WHITE + " %s"); } - } catch(IllegalFormatException | NullPointerException e) { + } catch(IllegalFormatException | NullPointerException | SQLException e) { Errors.reportException(e); } } diff --git a/src/plugin.yml b/src/plugin.yml index 583873d..03fa44b 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -99,4 +99,13 @@ commands: usage: / [player] villager: description: Anura-Villager commands - usage: / (remove)|(create double_jump|boat) \ No newline at end of file + usage: / (remove)|(create double_jump|boat) + i: + description: Such i + usage: / [damage] + mute: + description: Mute a player + usage: / + unmute: + description: Unmute a player + usage: / \ No newline at end of file