mirror of
https://github.com/DRE2N/DungeonsXL.git
synced 2024-11-02 17:00:19 +01:00
Fix command signs; resolves #827
This commit is contained in:
parent
9a45ab0b6c
commit
bd1d76b531
@ -81,7 +81,7 @@ public class CommandSign extends Windup {
|
||||
@Override
|
||||
public boolean validate() {
|
||||
script = ((DungeonsXL) api).getCommandScriptRegistry().get(getLine(1));
|
||||
return script != null;
|
||||
return script != null && !script.getCommands().isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -99,27 +99,30 @@ public class CommandSign extends Windup {
|
||||
|
||||
} else if (attributes.length == 2) {
|
||||
delay = NumberUtil.parseDouble(attributes[0]);
|
||||
double interval = NumberUtil.parseDouble(attributes[1], -1);
|
||||
interval = NumberUtil.parseDouble(attributes[1], -1);
|
||||
if (interval == -1) {
|
||||
interval = delay;
|
||||
executor = EnumUtil.getEnumIgnoreCase(Executor.class, attributes[1]);
|
||||
} else {
|
||||
this.interval = interval;
|
||||
}
|
||||
if (executor == null) {
|
||||
executor = Executor.DEFAULT;
|
||||
}
|
||||
|
||||
} else if (attributes.length == 1) {
|
||||
double delay = NumberUtil.parseDouble(attributes[0], -1);
|
||||
delay = NumberUtil.parseDouble(attributes[0], -1);
|
||||
if (delay == -1) {
|
||||
delay = 0;
|
||||
interval = 0;
|
||||
executor = EnumUtil.getEnumIgnoreCase(Executor.class, attributes[0]);
|
||||
} else {
|
||||
this.delay = delay;
|
||||
}
|
||||
if (executor == null) {
|
||||
executor = Executor.DEFAULT;
|
||||
}
|
||||
|
||||
} else if (attributes.length == 0) {
|
||||
executor = Executor.DEFAULT;
|
||||
}
|
||||
n = script.getCommands().size();
|
||||
|
||||
setRunnable(new CommandTask(this, Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")));
|
||||
|
||||
|
@ -53,17 +53,19 @@ public class CommandTask extends BukkitRunnable {
|
||||
sign.deactivate();
|
||||
return;
|
||||
}
|
||||
if (k >= script.getCommands().size()) {
|
||||
sign.deactivate();
|
||||
k = 0;
|
||||
}
|
||||
|
||||
String command = script.getCommands().get(k++).replace("%player%", sender.getName()).replace("%player_name%", sender.getName());
|
||||
String command = script.getCommands().get(k++)
|
||||
.replace("%player%", sender.getName()).replace("%player_name%", sender.getName())
|
||||
.replace("%world%", sign.getGameWorld().getWorld().getName()).replace("%world_name%", sign.getGameWorld().getWorld().getName());
|
||||
if (papi) {
|
||||
Bukkit.getServer().dispatchCommand(sender, PlaceholderAPI.setPlaceholders(player, command));
|
||||
} else {
|
||||
Bukkit.getServer().dispatchCommand(sender, command);
|
||||
}
|
||||
|
||||
if (k >= script.getCommands().size()) {
|
||||
sign.deactivate();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user