13
0
geforkt von Mirrors/Paper

Account for relative coordinates in PlaySound. Fixes BUKKIT-4639

By: Wesley Wolfe <weswolf@aol.com>
Dieser Commit ist enthalten in:
Bukkit/Spigot 2013-08-02 20:26:55 -05:00
Ursprung 804827463e
Commit 47d09288b4
2 geänderte Dateien mit 16 neuen und 4 gelöschten Zeilen

Datei anzeigen

@ -29,7 +29,7 @@ public class PlaySoundCommand extends VanillaCommand {
final Player player = Bukkit.getPlayerExact(playerArg); final Player player = Bukkit.getPlayerExact(playerArg);
if (player == null) { if (player == null) {
sender.sendMessage(ChatColor.RED + "Can't find player %s" + playerArg); sender.sendMessage(ChatColor.RED + "Can't find player " + playerArg);
return false; return false;
} }
@ -51,11 +51,11 @@ public class PlaySoundCommand extends VanillaCommand {
case 6: case 6:
volume = getDouble(sender, args[5], 0.0D, Float.MAX_VALUE); volume = getDouble(sender, args[5], 0.0D, Float.MAX_VALUE);
case 5: case 5:
z = getDouble(sender, args[4]); z = getRelativeDouble(z, sender, args[4]);
case 4: case 4:
y = getDouble(sender, args[3]); y = getRelativeDouble(y, sender, args[3]);
case 3: case 3:
x = getDouble(sender, args[2]); x = getRelativeDouble(x, sender, args[2]);
case 2: case 2:
// Noop // Noop
} }

Datei anzeigen

@ -58,6 +58,18 @@ public abstract class VanillaCommand extends Command {
} }
} }
public static double getRelativeDouble(double original, CommandSender sender, String input) {
if (input.startsWith("~")) {
double value = getDouble(sender, input.substring(1));
if (value == MIN_COORD_MINUS_ONE) {
return MIN_COORD_MINUS_ONE;
}
return original + value;
} else {
return getDouble(sender, input);
}
}
public static double getDouble(CommandSender sender, String input) { public static double getDouble(CommandSender sender, String input) {
try { try {
return Double.parseDouble(input); return Double.parseDouble(input);