Fix StopCommand for Console Signed-off-by: yoyosource <yoyosource@nidido.de>
Dieser Commit ist enthalten in:
Ursprung
340beff8a5
Commit
72652d95f8
@ -578,8 +578,15 @@ SIMULATOR_TNT_SPAWN_POSITION_Z = §7z-Position §8- §e{0}
|
||||
SIMULATOR_TNT_SPAWN_ACTIVATED_WITH = §7Gezündet durch §8- §e{0}
|
||||
SIMULATOR_TNT_SPAWN_ACTIVATED_WITH_COMPARATOR = Comparator
|
||||
SIMULATOR_TNT_SPAWN_ACTIVATED_WITH_REPEATER = Repeater
|
||||
SIMULATOR_TNT_SPAWN_MATERIAL = §eMaterial
|
||||
SIMULATOR_TNT_SPAWN_MATERIAL_LORE_1 = §7Jetziges Material§8: §e{0}
|
||||
SIMULATOR_TNT_SPAWN_MATERIAL_LORE_2 = §eLink-Click §7Zum ändern
|
||||
SIMULATOR_TNT_SPAWN_MATERIAL_LORE_3 = §eRechts-Click §7Zum zurücksetzten
|
||||
SIMULATOR_MATERIAL_GUI_NAME = Material ändern
|
||||
SIMULATOR_MATERIAL_NAME = §e{0}
|
||||
SIMULATOR_MATERIAL_CLICK = §eClicken zum wählen
|
||||
SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE = §eZündphase hinzufügen
|
||||
SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE_SHIFT = §eZündphase hinzufügen und +1 Tick Offset
|
||||
SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE_SHIFT = §eShift-Click§8: §7Zündphase hinzufügen und +1 Tick Offset
|
||||
SIMULATOR_TNT_SPAWN_ADD_TNT = §eTNT hinzufügen
|
||||
SIMULATOR_TNT_SPAWN_REMOVE_TNT = §cEntfernen
|
||||
SIMULATOR_TNT_SPAWN_POSITION_ANVIL_GUI_NAME = Position
|
||||
|
@ -63,6 +63,14 @@ public class TNTSimulator {
|
||||
private static final World WORLD = Bukkit.getWorlds().get(0);
|
||||
private static final List<TNTSpawn> EMPTY = new ArrayList<>();
|
||||
|
||||
private static final List<Material> MATERIALS = new ArrayList<>();
|
||||
static {
|
||||
Arrays.stream(Material.values())
|
||||
.filter(Material::isItem)
|
||||
.filter(material -> !material.isLegacy())
|
||||
.forEach(MATERIALS::add);
|
||||
}
|
||||
|
||||
public static ItemStack getWand(Player p) {
|
||||
ItemStack itemStack = new SWItem(Material.BLAZE_ROD, BauSystem.MESSAGE.parse("SIMULATOR_WAND_NAME", p), Arrays.asList(BauSystem.MESSAGE.parse("SIMULATOR_WAND_LORE_1", p), BauSystem.MESSAGE.parse("SIMULATOR_WAND_LORE_2", p), BauSystem.MESSAGE.parse("SIMULATOR_WAND_LORE_3", p), BauSystem.MESSAGE.parse("SIMULATOR_WAND_LORE_4", p)), false, null).getItemStack();
|
||||
ItemUtils.setItem(itemStack, "simulator");
|
||||
@ -225,7 +233,7 @@ public class TNTSimulator {
|
||||
lore.add(BauSystem.MESSAGE.parse("SIMULATOR_GUI_TNT_SPAWN_LORE_4", player, spawn.position.getX()));
|
||||
lore.add(BauSystem.MESSAGE.parse("SIMULATOR_GUI_TNT_SPAWN_LORE_5", player, spawn.position.getY()));
|
||||
lore.add(BauSystem.MESSAGE.parse("SIMULATOR_GUI_TNT_SPAWN_LORE_6", player, spawn.position.getZ()));
|
||||
SWItem swItem = new SWItem(Material.TNT, BauSystem.MESSAGE.parse("SIMULATOR_GUI_TNT_SPAWN_NAME", player), lore, false, null);
|
||||
SWItem swItem = new SWItem(spawn.material, BauSystem.MESSAGE.parse("SIMULATOR_GUI_TNT_SPAWN_NAME", player), lore, false, null);
|
||||
swItem.getItemStack().setAmount(spawn.count);
|
||||
return new SWListInv.SWListEntry<>(swItem, spawn);
|
||||
}).sorted(Comparator.comparing(SWListInv.SWListEntry::getObject)).collect(Collectors.toList());
|
||||
@ -399,6 +407,7 @@ public class TNTSimulator {
|
||||
private boolean yVelocity = false;
|
||||
private boolean zVelocity = false;
|
||||
private boolean comparator = false;
|
||||
private Material material = Material.TNT;
|
||||
|
||||
private TNTSpawn(Vector position, AbstractSimulatorEntity entity) {
|
||||
this.position = position;
|
||||
@ -407,7 +416,6 @@ public class TNTSimulator {
|
||||
editTNT(spawns);
|
||||
}
|
||||
|
||||
// TODO: Add Material to UI!
|
||||
private TNTSpawn(YAPIONObject yapionObject) {
|
||||
this.position = new Vector(yapionObject.getPlainValueOrDefault("positionX", 0.0), yapionObject.getPlainValueOrDefault("positionY", 0.0), yapionObject.getPlainValueOrDefault("positionZ", 0.0));
|
||||
this.entity = SimulatorEntityShowMode.createEntity(player, position, false);
|
||||
@ -418,6 +426,7 @@ public class TNTSimulator {
|
||||
this.yVelocity = yapionObject.getPlainValue("yVelocity");
|
||||
this.zVelocity = yapionObject.getPlainValue("zVelocity");
|
||||
this.comparator = yapionObject.getPlainValue("comparator");
|
||||
this.material = Material.getMaterial(yapionObject.getPlainValueOrDefault("material", "TNT"));
|
||||
}
|
||||
|
||||
private YAPIONObject output() {
|
||||
@ -432,6 +441,7 @@ public class TNTSimulator {
|
||||
yapionObject.add("yVelocity", yVelocity);
|
||||
yapionObject.add("zVelocity", zVelocity);
|
||||
yapionObject.add("comparator", comparator);
|
||||
yapionObject.add("material", material.name());
|
||||
return yapionObject;
|
||||
}
|
||||
|
||||
@ -627,12 +637,30 @@ public class TNTSimulator {
|
||||
comparator = !comparator;
|
||||
editTNT(tntSpawns);
|
||||
}));
|
||||
swInventory.setItem(41, new SWItem(material, BauSystem.MESSAGE.parse("SIMULATOR_TNT_SPAWN_MATERIAL", player), Arrays.asList(BauSystem.MESSAGE.parse("SIMULATOR_TNT_SPAWN_MATERIAL_LORE_1", player, material.name().toLowerCase()), BauSystem.MESSAGE.parse("SIMULATOR_TNT_SPAWN_MATERIAL_LORE_2", player), BauSystem.MESSAGE.parse("SIMULATOR_TNT_SPAWN_MATERIAL_LORE_3", player)), false, clickType -> {
|
||||
if (clickType.isLeftClick()) {
|
||||
List<SWListInv.SWListEntry<Material>> swListEntries = new ArrayList<>();
|
||||
MATERIALS.forEach(current -> {
|
||||
swListEntries.add(new SWListInv.SWListEntry<>(new SWItem(current, BauSystem.MESSAGE.parse("SIMULATOR_MATERIAL_NAME", player, current.name().toLowerCase()), Arrays.asList(BauSystem.MESSAGE.parse("SIMULATOR_MATERIAL_CLICK", player)), false, ignored -> {
|
||||
}), current));
|
||||
});
|
||||
SWListInv<Material> swListInv = new SWListInv<>(player, BauSystem.MESSAGE.parse("SIMULATOR_MATERIAL_GUI_NAME", player), false, swListEntries, (invClickType, material) -> {
|
||||
TNTSpawn.this.material = material;
|
||||
editTNT(tntSpawns);
|
||||
});
|
||||
swListInv.open();
|
||||
} else {
|
||||
material = Material.TNT;
|
||||
editTNT(tntSpawns);
|
||||
}
|
||||
}));
|
||||
|
||||
swInventory.setItem(33, new SWItem(Material.TNT, BauSystem.MESSAGE.parse("SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE", player), Arrays.asList(BauSystem.MESSAGE.parse("SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE_SHIFT", player)), false, clickType -> {
|
||||
TNTSpawn tntSpawn = new TNTSpawn(position, entity);
|
||||
if (clickType.isShiftClick()) {
|
||||
tntSpawn.setTickOffset(tickOffset + 1);
|
||||
}
|
||||
tntSpawn.material = material;
|
||||
spawns.add(tntSpawn);
|
||||
}));
|
||||
|
||||
|
@ -30,6 +30,7 @@ import de.steamwar.command.GuardResult;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.sql.SteamwarUser;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@Linked(LinkageType.COMMAND)
|
||||
@ -40,14 +41,17 @@ public class StopCommand extends SWCommand {
|
||||
}
|
||||
|
||||
@Register(description = "STOP_HELP")
|
||||
public void genericCommand(@Guard Player p) {
|
||||
public void genericCommand(@Guard CommandSender sender) {
|
||||
SWUtils.message(current -> BauSystem.MESSAGE.parsePrefixed("STOP_MESSAGE", current));
|
||||
Bukkit.getServer().shutdown();
|
||||
}
|
||||
|
||||
@ClassGuard(value = Player.class, local = true)
|
||||
@ClassGuard(value = CommandSender.class, local = true)
|
||||
public GuardChecker stopGuard() {
|
||||
return (commandSender, guardCheckType, strings, s) -> {
|
||||
if (!(commandSender instanceof Player)) {
|
||||
return GuardResult.ALLOWED;
|
||||
}
|
||||
Player player = (Player) commandSender;
|
||||
if (Permission.hasPermission(player, Permission.WORLD)) {
|
||||
return GuardResult.ALLOWED;
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren