From 0589ebcf480b032f536697efd8b72542795cc40e Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Fri, 7 Dec 2012 19:37:27 -0500 Subject: [PATCH] Added /deafen --- .../Commands/Command_deafen.java | 48 +++++++++++++++++++ src/plugin.yml | 3 ++ 2 files changed, 51 insertions(+) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_deafen.java diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_deafen.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_deafen.java new file mode 100644 index 00000000..400aba9f --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_deafen.java @@ -0,0 +1,48 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import java.util.Random; +import org.bukkit.Location; +import org.bukkit.Sound; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.BOTH, block_host_console = true, ignore_permissions = false) +public class Command_deafen extends TFM_Command +{ + private static final Random random = new Random(); + public static final double STEPS = 10.0; + + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + for (final Player p : server.getOnlinePlayers()) + { + for (double percent = 0.0; percent <= 1.0; percent += (1.0 / STEPS)) + { + final float pitch = (float) (percent * 2.0); + + server.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() + { + @Override + public void run() + { + p.playSound(randomOffset(p.getLocation(), 5.0), Sound.values()[random.nextInt(Sound.values().length)], 100.0f, pitch); + } + }, Math.round(20.0 * percent * 2.0)); + } + } + + return true; + } + + private static Location randomOffset(Location a, double magnitude) + { + return a.clone().add(randomDoubleRange(-1.0, 1.0) * magnitude, randomDoubleRange(-1.0, 1.0) * magnitude, randomDoubleRange(-1.0, 1.0) * magnitude); + } + + private static Double randomDoubleRange(double min, double max) + { + return min + (random.nextDouble() * ((max - min) + 1.0)); + } +} diff --git a/src/plugin.yml b/src/plugin.yml index dc6fcb55..1c443133 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -31,6 +31,9 @@ commands: csay: description: Telnet command - Send a chat message with chat formatting over telnet. usage: / + deafen: + description: Senior Command - Make some noise. + usage: / deop: description: Superadmin command - Deop a player usage: /