
net.minecraft.server.CommandPlaySound Maven / Gradle / Ivy
package net.minecraft.server;
import java.util.List;
public class CommandPlaySound extends CommandAbstract {
public CommandPlaySound() {
}
public String getCommand() {
return "playsound";
}
public int a() {
return 2;
}
public String getUsage(ICommandListener icommandlistener) {
return "commands.playsound.usage";
}
public void execute(ICommandListener icommandlistener, String[] astring) throws CommandException {
if (astring.length < 2) {
throw new ExceptionUsage(this.getUsage(icommandlistener));
} else {
byte b0 = 0;
int i = b0 + 1;
String s = astring[b0];
EntityPlayer entityplayer = a(icommandlistener, astring[i++]);
Vec3D vec3d = icommandlistener.getPositionVector();
double d0 = vec3d.a;
if (astring.length > i) {
d0 = b(d0, astring[i++], true);
}
double d1 = vec3d.b;
if (astring.length > i) {
d1 = b(d1, astring[i++], 0, 0, false);
}
double d2 = vec3d.c;
if (astring.length > i) {
d2 = b(d2, astring[i++], true);
}
double d3 = 1.0D;
if (astring.length > i) {
d3 = a(astring[i++], 0.0D, 3.4028234663852886E38D);
}
double d4 = 1.0D;
if (astring.length > i) {
d4 = a(astring[i++], 0.0D, 2.0D);
}
double d5 = 0.0D;
if (astring.length > i) {
d5 = a(astring[i], 0.0D, 1.0D);
}
double d6 = d3 > 1.0D ? d3 * 16.0D : 16.0D;
double d7 = entityplayer.getDistance(d0, d1, d2);
if (d7 > d6) {
if (d5 <= 0.0D) {
throw new CommandException("commands.playsound.playerTooFar", entityplayer.getName());
}
double d8 = d0 - entityplayer.locX;
double d9 = d1 - entityplayer.locY;
double d10 = d2 - entityplayer.locZ;
double d11 = Math.sqrt(d8 * d8 + d9 * d9 + d10 * d10);
if (d11 > 0.0D) {
d0 = entityplayer.locX + d8 / d11 * 2.0D;
d1 = entityplayer.locY + d9 / d11 * 2.0D;
d2 = entityplayer.locZ + d10 / d11 * 2.0D;
}
d3 = d5;
}
entityplayer.playerConnection.sendPacket(new PacketPlayOutNamedSoundEffect(s, d0, d1, d2, (float) d3, (float) d4));
a(icommandlistener, this, "commands.playsound.success", s, entityplayer.getName());
}
}
public List tabComplete(ICommandListener icommandlistener, String[] astring, BlockPosition blockposition) {
return astring.length == 2 ? a(astring, MinecraftServer.getServer().getPlayers()) : (astring.length > 2 && astring.length <= 5 ? a(astring, 2, blockposition) : null);
}
public boolean isListStart(String[] astring, int i) {
return i == 1;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy