blob: 7f027bb6fb7357485a757895520c3d49dda07d80 [file] [log] [blame] [raw]
package net.glowstone.command;
import com.flowpowered.network.util.ByteBufUtils;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.glowstone.entity.GlowPlayer;
import net.glowstone.net.message.play.game.PluginMessage;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.defaults.BukkitCommand;
import org.bukkit.entity.Player;
import java.io.IOException;
import java.util.Collections;
public class StopsoundCommand extends BukkitCommand {
public StopsoundCommand() {
super("stopsound", "Stops sounds for a player.", "/stopsound <player> [source] [sound]", Collections.<String>emptyList());
setPermission("glowstone.command.stopsound");
}
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
if (args.length == 0) {
sender.sendMessage(usageMessage);
return false;
}
Player player = Bukkit.getServer().getPlayer(args[0]);
if (player == null) {
sender.sendMessage(ChatColor.RED + "The player '" + args[0] + "' is not online, or does not exist.");
return false;
}
String source = "", sound = "";
String message = "Stopped all sounds for player '" + player.getName() + "'.";
if (args.length > 1) {
source = args[1];
message = "Stopped sounds from source " + source + " for player '" + player.getName() + "'.";
}
if (args.length > 2) {
sound = args[2];
message = "Stopped sound '" + sound + "' for player '" + player.getName() + "'.";
}
ByteBuf buffer = Unpooled.buffer();
try {
ByteBufUtils.writeUTF8(buffer, source);
ByteBufUtils.writeUTF8(buffer, sound);
((GlowPlayer) player).getSession().send(new PluginMessage("MC|StopSound", buffer.array()));
buffer.release();
} catch (IOException e) {
e.printStackTrace();
return false;
}
sender.sendMessage(message);
return true;
}
}