Update BauSystem to new CommandFramework #217
@ -21,7 +21,6 @@ package de.steamwar.bausystem;
|
||||
|
||||
import de.steamwar.bausystem.commands.*;
|
||||
import de.steamwar.bausystem.world.*;
|
||||
import de.steamwar.core.CommandRemover;
|
||||
import de.steamwar.core.Core;
|
||||
import de.steamwar.core.VersionedRunnable;
|
||||
import de.steamwar.scoreboard.SWScoreboard;
|
||||
@ -44,7 +43,6 @@ import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class BauSystem extends JavaPlugin implements Listener {
|
||||
private static BauSystem plugin;
|
||||
@ -63,47 +61,36 @@ public class BauSystem extends JavaPlugin implements Listener {
|
||||
owner = null;
|
||||
}
|
||||
|
||||
try {
|
||||
CommandRemover.removeAll("tp", "gamemode", "time", "clear");
|
||||
CommandInjector.injectCommand(new CommandTeleport());
|
||||
CommandInjector.injectCommand(new CommandGamemode());
|
||||
CommandInjector.injectCommand(new CommandTime());
|
||||
CommandInjector.injectCommand(new CommandClear());
|
||||
} catch (Exception e) {
|
||||
getLogger().log(Level.SEVERE, "Failed to replace commands", e);
|
||||
Bukkit.shutdown();
|
||||
return;
|
||||
}
|
||||
Mapper.init();
|
||||
|
||||
getCommand("trace").setExecutor(new CommandTrace());
|
||||
getCommand("trace").setTabCompleter(new CommandTraceTabCompleter());
|
||||
getCommand("tpslimit").setExecutor(new CommandTPSLimiter());
|
||||
getCommand("tpslimit").setTabCompleter(new CommandTPSLimiterTabComplete());
|
||||
getCommand("nightvision").setExecutor(new CommandNV());
|
||||
getCommand("reset").setExecutor(new CommandReset());
|
||||
getCommand("speed").setExecutor(new CommandSpeed());
|
||||
getCommand("tnt").setExecutor(new CommandTNT());
|
||||
getCommand("tnt").setTabCompleter(new CommandTNTTabComplete());
|
||||
getCommand("fire").setExecutor(new CommandFire());
|
||||
getCommand("freeze").setExecutor(new CommandFreeze());
|
||||
getCommand("testblock").setExecutor(new CommandTestblock());
|
||||
getCommand("bau").setExecutor(new CommandBau());
|
||||
getCommand("bauinfo").setExecutor(new CommandInfo());
|
||||
getCommand("protect").setExecutor(new CommandProtect());
|
||||
getCommand("skull").setExecutor(new CommandSkull());
|
||||
getCommand("loader").setExecutor(new CommandLoader());
|
||||
getCommand("lockschem").setExecutor(new CommandLockschem());
|
||||
getCommand("debugstick").setExecutor(new CommandDebugStick());
|
||||
getCommand("watervision").setExecutor(new CommandGills());
|
||||
getCommand("detonator").setExecutor(new CommandDetonator());
|
||||
getCommand("detonator").setTabCompleter(new CommandDetonatorTabCompleter());
|
||||
getCommand("script").setExecutor(new CommandScript());
|
||||
getCommand("scriptvars").setExecutor(new CommandScriptVars());
|
||||
getCommand("scriptvars").setTabCompleter(new CommandScriptVarsTabCompleter());
|
||||
getCommand("simulator").setExecutor(new CommandSimulator());
|
||||
getCommand("simulator").setTabCompleter(new CommandSimulatorTabCompleter());
|
||||
getCommand("redstonetester").setExecutor(new CommandRedstoneTester());
|
||||
getCommand("gui").setExecutor(new CommandGUI());
|
||||
new CommandTrace();
|
||||
new CommandTPSLimiter();
|
||||
new CommandNV();
|
||||
new CommandReset();
|
||||
new CommandSpeed();
|
||||
new CommandTNT();
|
||||
new CommandBau();
|
||||
new CommandGamemode();
|
||||
new CommandClear();
|
||||
new CommandTime();
|
||||
new CommandTeleport();
|
||||
new CommandFire();
|
||||
new CommandFreeze();
|
||||
new CommandTestblock();
|
||||
new CommandInfo();
|
||||
new CommandProtect();
|
||||
new CommandSkull();
|
||||
new CommandLoader();
|
||||
new CommandLockschem();
|
||||
new CommandDebugStick();
|
||||
new CommandGills();
|
||||
new CommandDetonator();
|
||||
new CommandScript();
|
||||
new CommandScriptVars();
|
||||
new CommandSimulator();
|
||||
new CommandRedstoneTester();
|
||||
new CommandGUI();
|
||||
new CommandWorldSpawn();
|
||||
|
||||
Bukkit.getPluginManager().registerEvents(this, this);
|
||||
Bukkit.getPluginManager().registerEvents(new RegionListener(), this);
|
||||
|
86
BauSystem_Main/src/de/steamwar/bausystem/Mapper.java
Normale Datei
86
BauSystem_Main/src/de/steamwar/bausystem/Mapper.java
Normale Datei
@ -0,0 +1,86 @@
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem;
|
||||
|
||||
import de.steamwar.bausystem.tracer.show.ShowModeParameterType;
|
||||
import de.steamwar.command.SWCommandUtils;
|
||||
import de.steamwar.command.TypeMapper;
|
||||
import de.steamwar.sql.BauweltMember;
|
||||
import de.steamwar.sql.SteamwarUser;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
public class Mapper {
|
||||
|
||||
private Mapper() {
|
||||
throw new IllegalStateException("Utility Class");
|
||||
}
|
||||
|
||||
public static void init() {
|
||||
SWCommandUtils.addMapper(ShowModeParameterType.class, showModeParameterTypesTypeMapper());
|
||||
SWCommandUtils.addMapper(BauweltMember.class, bauweltMemberTypeMapper());
|
||||
}
|
||||
|
||||
private static TypeMapper<ShowModeParameterType> showModeParameterTypesTypeMapper() {
|
||||
Map<String, ShowModeParameterType> showModeParameterTypesMap = new HashMap<>();
|
||||
showModeParameterTypesMap.put("-water", ShowModeParameterType.WATER);
|
||||
|
||||
showModeParameterTypesMap.put("-interpolatey", ShowModeParameterType.INTERPOLATE_Y);
|
||||
showModeParameterTypesMap.put("-interpolate-y", ShowModeParameterType.INTERPOLATE_Y);
|
||||
showModeParameterTypesMap.put("-interpolate_y", ShowModeParameterType.INTERPOLATE_Y);
|
||||
showModeParameterTypesMap.put("-y", ShowModeParameterType.INTERPOLATE_Y);
|
||||
|
||||
showModeParameterTypesMap.put("-interpolatex", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
showModeParameterTypesMap.put("-interpolate-x", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
showModeParameterTypesMap.put("-interpolate_x", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
showModeParameterTypesMap.put("-x", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
|
||||
showModeParameterTypesMap.put("-interpolatez", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
showModeParameterTypesMap.put("-interpolate-z", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
showModeParameterTypesMap.put("-interpolate_z", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
showModeParameterTypesMap.put("-z", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
|
||||
showModeParameterTypesMap.put("-interpolatexz", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
showModeParameterTypesMap.put("-interpolate-xz", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
showModeParameterTypesMap.put("-interpolate_xz", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
showModeParameterTypesMap.put("-xz", ShowModeParameterType.INTERPOLATE_XZ);
|
||||
|
||||
showModeParameterTypesMap.put("-advanced", ShowModeParameterType.ADVANCED);
|
||||
showModeParameterTypesMap.put("advanced", ShowModeParameterType.ADVANCED);
|
||||
showModeParameterTypesMap.put("a", ShowModeParameterType.ADVANCED);
|
||||
|
||||
List<String> tabCompletes = new ArrayList<>(showModeParameterTypesMap.keySet());
|
||||
return SWCommandUtils.createMapper(s -> showModeParameterTypesMap.getOrDefault(s, null), s -> tabCompletes);
|
||||
}
|
||||
|
||||
private static TypeMapper<BauweltMember> bauweltMemberTypeMapper() {
|
||||
return SWCommandUtils.createMapper(s -> BauweltMember.getMembers(BauSystem.getOwnerID())
|
||||
.stream()
|
||||
.filter(m -> SteamwarUser.get(m.getMemberID()).getUserName().equals(s)).findFirst().orElse(null),
|
||||
s -> BauweltMember.getMembers(BauSystem.getOwnerID())
|
||||
.stream()
|
||||
.map(m -> SteamwarUser.get(m.getMemberID()).getUserName())
|
||||
.collect(Collectors.toList()));
|
||||
}
|
||||
}
|
@ -1,37 +1,79 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.command.SWCommandUtils;
|
||||
import de.steamwar.command.TypeMapper;
|
||||
import de.steamwar.sql.BauweltMember;
|
||||
import de.steamwar.sql.SteamwarUser;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import java.util.stream.Collectors;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CommandBau implements CommandExecutor {
|
||||
|
||||
private void onToggleBD(Player p, String arg) {
|
||||
SteamwarUser id = SteamwarUser.get(arg);
|
||||
public class CommandBau extends SWCommand {
|
||||
|
||||
public CommandBau() {
|
||||
super("bau", "b", "gs");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§ebau togglebuild §8[§7Player§8] §8- §7Editiere die Bau Rechte eines Spielers");
|
||||
p.sendMessage("§8/§ebau togglewe §8[§7Player§8] §8- §7Editiere die WorldEdit Rechte eines Spielers");
|
||||
p.sendMessage("§8/§ebau toggleworld §8[§7Player§8] §8- §7Editiere die Werlt Rechte eines Spielers");
|
||||
}
|
||||
|
||||
@Register("info")
|
||||
public void infoCommand(Player p) {
|
||||
CommandInfo.sendBauInfo(p);
|
||||
}
|
||||
|
||||
@Register("togglebuild")
|
||||
public void toggleBuildCommand(Player p, SteamwarUser user) {
|
||||
if (!permissionCheck(p)) {
|
||||
return;
|
||||
}
|
||||
onToggleBD(p, user);
|
||||
}
|
||||
|
||||
@Register("togglewe")
|
||||
public void toggleWECommand(Player p, SteamwarUser user) {
|
||||
if (!permissionCheck(p)) {
|
||||
return;
|
||||
}
|
||||
onToggleWE(p, user);
|
||||
}
|
||||
|
||||
@Register("toggleworld")
|
||||
public void toggleWorldCommand(Player p, SteamwarUser user) {
|
||||
if (!permissionCheck(p)) {
|
||||
return;
|
||||
}
|
||||
onToggleWorld(p, user);
|
||||
}
|
||||
|
||||
|
||||
private void onToggleBD(Player p, SteamwarUser id) {
|
||||
if (negativeToggleCheck(p, id)) {
|
||||
return;
|
||||
}
|
||||
@ -40,8 +82,7 @@ public class CommandBau implements CommandExecutor {
|
||||
Welt.toggleBuild(p, target);
|
||||
}
|
||||
|
||||
private void onToggleWE(Player p, String arg) {
|
||||
SteamwarUser id = SteamwarUser.get(arg);
|
||||
private void onToggleWE(Player p, SteamwarUser id) {
|
||||
if (negativeToggleCheck(p, id)) {
|
||||
return;
|
||||
}
|
||||
@ -50,8 +91,7 @@ public class CommandBau implements CommandExecutor {
|
||||
Welt.toggleWE(p, target);
|
||||
}
|
||||
|
||||
private void onToggleWorld(Player p, String arg) {
|
||||
SteamwarUser id = SteamwarUser.get(arg);
|
||||
private void onToggleWorld(Player p, SteamwarUser id) {
|
||||
if (negativeToggleCheck(p, id)) {
|
||||
return;
|
||||
}
|
||||
@ -74,23 +114,34 @@ public class CommandBau implements CommandExecutor {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
if (!BauSystem.getOwner().equals(player.getUniqueId())) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDies ist nicht deine Welt!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("togglebuild")) {
|
||||
onToggleBD(player, args[1]);
|
||||
} else if (args[0].equalsIgnoreCase("togglewe")) {
|
||||
onToggleWE(player, args[1]);
|
||||
} else if (args[0].equalsIgnoreCase("toggleworld")) {
|
||||
onToggleWorld(player, args[1]);
|
||||
private boolean permissionCheck(Player p) {
|
||||
if (!BauSystem.getOwner().equals(p.getUniqueId())) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cDies ist nicht deine Welt!");
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ClassMapper(value = SteamwarUser.class, local = true)
|
||||
private TypeMapper<SteamwarUser> steamwarUserTypeMapper() {
|
||||
return SWCommandUtils.createMapper(s -> BauweltMember.getMembers(BauSystem.getOwnerID())
|
||||
.stream()
|
||||
.map(m -> SteamwarUser.get(m.getMemberID()))
|
||||
.filter(u -> u.getUserName().equals(s))
|
||||
.findFirst()
|
||||
.orElse(null),
|
||||
(c, s) -> {
|
||||
if (!(c instanceof Player)) {
|
||||
return null;
|
||||
}
|
||||
Player p = (Player) c;
|
||||
return BauweltMember.getMembers(SteamwarUser.get(p.getUniqueId()).getId())
|
||||
.stream()
|
||||
.map(m -> SteamwarUser.get(m.getMemberID()).getUserName())
|
||||
.collect(Collectors.toList());
|
||||
});
|
||||
}
|
||||
}
|
@ -1,66 +1,64 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import org.bukkit.Bukkit;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.defaults.BukkitCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class CommandClear extends BukkitCommand {
|
||||
public class CommandClear extends SWCommand {
|
||||
|
||||
public CommandClear() {
|
||||
super("clear");
|
||||
description = "Leere dein Inventar oder das eines anderen Spielers.";
|
||||
usageMessage = "/clear [Spieler]";
|
||||
}
|
||||
|
||||
public boolean execute(CommandSender sender, String currentAlias, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
if (args.length == 0) {
|
||||
clear(player);
|
||||
player.sendMessage(BauSystem.PREFIX + "Dein Inventar wurde geleert.");
|
||||
return true;
|
||||
}
|
||||
// check if admin
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§eclear §8- §7Leere dein Inventar");
|
||||
p.sendMessage("§8/§ebau clear §8[§7Player§8] §8- §7Leere ein Spieler Inventar");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericClearCommand(Player p) {
|
||||
clear(p);
|
||||
p.sendMessage(BauSystem.PREFIX + "Dein Inventar wurde geleert.");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void clearPlayerCommand(Player p, Player target) {
|
||||
if (!permissionCheck(p)) return;
|
||||
clear(target);
|
||||
target.sendMessage(BauSystem.PREFIX + "Dein Inventar wurde von" + p.getDisplayName() + " §7geleert.");
|
||||
p.sendMessage(BauSystem.PREFIX + "Das Inventar von " + target.getDisplayName() + " §7wurde geleert.");
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
if (Welt.noPermission(player, Permission.world)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "$cDu darfst hier keine fremden Inventare leeren.");
|
||||
return false;
|
||||
}
|
||||
Player target = Bukkit.getPlayerExact(args[0]);
|
||||
if (!(target instanceof Player)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDas ist kein Spieler.");
|
||||
return false;
|
||||
}
|
||||
clear(target);
|
||||
target.sendMessage(BauSystem.PREFIX + "Dein Inventar wurde von" + player.getDisplayName() + " §7geleert.");
|
||||
player.sendMessage(BauSystem.PREFIX + "Das Inventar von " + target.getDisplayName() + " §7wurde geleert.");
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
private void clear(Player player) {
|
||||
@ -70,4 +68,4 @@ public class CommandClear extends BukkitCommand {
|
||||
player.getInventory().setLeggings(new ItemStack(Material.AIR));
|
||||
player.getInventory().setBoots(new ItemStack(Material.AIR));
|
||||
}
|
||||
}
|
||||
}
|
@ -1,49 +1,49 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.core.VersionedRunnable;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CommandDebugStick implements CommandExecutor {
|
||||
public class CommandDebugStick extends SWCommand {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (Welt.noPermission(player, Permission.build)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cKein Debugstick für dich hier.");
|
||||
return false;
|
||||
}
|
||||
|
||||
VersionedRunnable.call(new VersionedRunnable(() -> player.sendMessage(BauSystem.PREFIX + "§cDen Debugstick gibt es nicht in der 1.12."), 8),
|
||||
new VersionedRunnable(() -> CommandDebugStick_15.giveStick(player), 15));
|
||||
return false;
|
||||
public CommandDebugStick() {
|
||||
super("debugstick");
|
||||
}
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§edebugstick §8- §7Erhalte einen DebugStick");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p) {
|
||||
if (Welt.noPermission(p, Permission.build)) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cKein Debugstick für dich hier.");
|
||||
} else {
|
||||
VersionedRunnable.call(new VersionedRunnable(() -> p.sendMessage(BauSystem.PREFIX + "§cDen Debugstick gibt es nicht in der 1.12."), 8),
|
||||
new VersionedRunnable(() -> CommandDebugStick_15.giveStick(p), 15));
|
||||
}
|
||||
}
|
||||
}
|
@ -1,21 +1,21 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
@ -24,18 +24,84 @@ import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.SWUtils;
|
||||
import de.steamwar.bausystem.world.Detonator;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CommandDetonator implements CommandExecutor {
|
||||
public class CommandDetonator extends SWCommand {
|
||||
|
||||
private void help(Player player) {
|
||||
player.sendMessage("§8/§edetonator wand §8- §7Legt den Fernzünder ins Inventar");
|
||||
player.sendMessage("§8/§edetonator detonate §8- §7Benutzt den nächst besten Fernzünder");
|
||||
player.sendMessage("§8/§edetonator reset §8- §7Löscht alle markierten Positionen");
|
||||
player.sendMessage("§8/§edetonator remove §8- §7Entfernt den Fernzünder");
|
||||
public CommandDetonator() {
|
||||
super ("detonator", "dt");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§edetonator wand §8- §7Legt den Fernzünder ins Inventar");
|
||||
p.sendMessage("§8/§edetonator detonate §8- §7Benutzt den nächst besten Fernzünder");
|
||||
p.sendMessage("§8/§edetonator reset §8- §7Löscht alle markierten Positionen");
|
||||
p.sendMessage("§8/§edetonator remove §8- §7Entfernt den Fernzünder");
|
||||
}
|
||||
|
||||
@Register("wand")
|
||||
public void wandCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
SWUtils.giveItemToPlayer(p, Detonator.WAND);
|
||||
}
|
||||
|
||||
@Register("detonator")
|
||||
public void detonatorCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
SWUtils.giveItemToPlayer(p, Detonator.WAND);
|
||||
}
|
||||
|
||||
@Register("item")
|
||||
public void itemCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
SWUtils.giveItemToPlayer(p, Detonator.WAND);
|
||||
}
|
||||
|
||||
|
||||
@Register("remove")
|
||||
public void removeCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
p.getInventory().removeItem(Detonator.WAND);
|
||||
}
|
||||
|
||||
|
||||
@Register("detonate")
|
||||
public void detonateCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Detonator.execute(p);
|
||||
}
|
||||
|
||||
@Register("click")
|
||||
public void clickCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Detonator.execute(p);
|
||||
}
|
||||
|
||||
@Register("use")
|
||||
public void useCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Detonator.execute(p);
|
||||
}
|
||||
|
||||
|
||||
@Register("clear")
|
||||
public void clearCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
p.getInventory().setItemInMainHand(Detonator.clearDetonator(p.getInventory().getItemInMainHand()));
|
||||
}
|
||||
|
||||
@Register("delete")
|
||||
public void deleteCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
p.getInventory().setItemInMainHand(Detonator.clearDetonator(p.getInventory().getItemInMainHand()));
|
||||
}
|
||||
|
||||
@Register("reset")
|
||||
public void resetCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
p.getInventory().setItemInMainHand(Detonator.clearDetonator(p.getInventory().getItemInMainHand()));
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
@ -45,44 +111,4 @@ public class CommandDetonator implements CommandExecutor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (args.length == 0) {
|
||||
help(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!permissionCheck(player)) return false;
|
||||
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "wand":
|
||||
case "detonator":
|
||||
case "item":
|
||||
SWUtils.giveItemToPlayer(player, Detonator.WAND);
|
||||
player.updateInventory();
|
||||
break;
|
||||
case "remove":
|
||||
player.getInventory().removeItem(Detonator.WAND);
|
||||
break;
|
||||
case "detonate":
|
||||
case "click":
|
||||
case "use":
|
||||
Detonator.execute(player);
|
||||
break;
|
||||
case "clear":
|
||||
case "delete":
|
||||
case "reset":
|
||||
player.getInventory().setItemInMainHand(Detonator.clearDetonator(player.getInventory().getItemInMainHand()));
|
||||
break;
|
||||
default:
|
||||
help(player);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.SWUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandDetonatorTabCompleter implements TabCompleter {
|
||||
|
||||
private List<String> arguments = new ArrayList<>(Arrays.asList("wand", "reset", "detonate", "remove"));
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
|
||||
if(!(sender instanceof Player)) return new ArrayList<>();
|
||||
if (args.length != 1) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return SWUtils.manageList(arguments, args);
|
||||
}
|
||||
}
|
@ -19,34 +19,66 @@
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.Region;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockBurnEvent;
|
||||
import org.bukkit.event.block.BlockSpreadEvent;
|
||||
|
||||
public class CommandFire extends RegionToggleCommand {
|
||||
public class CommandFire extends SWCommand implements Listener {
|
||||
|
||||
@Override
|
||||
String getNoPermMessage() {
|
||||
public CommandFire() {
|
||||
super("fire");
|
||||
Bukkit.getPluginManager().registerEvents(this, BauSystem.getPlugin());
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§efire §8- §7Toggle Feuerschaden");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void toggleCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Region region = Region.getRegion(p.getLocation());
|
||||
if (toggle(region)) {
|
||||
RegionUtils.actionBar(region, getEnableMessage());
|
||||
} else {
|
||||
RegionUtils.actionBar(region, getDisableMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private String getNoPermMessage() {
|
||||
return "§cDu darfst hier nicht Feuerschaden (de-)aktivieren";
|
||||
}
|
||||
|
||||
@Override
|
||||
String getEnableMessage() {
|
||||
return "§cFeuerschaden deaktiviert";
|
||||
private String getEnableMessage() {
|
||||
return "§cRegions Feuerschaden deaktiviert";
|
||||
}
|
||||
|
||||
@Override
|
||||
String getDisableMessage() {
|
||||
return "§aFeuerschaden aktiviert";
|
||||
private String getDisableMessage() {
|
||||
return "§aRegions Feuerschaden aktiviert";
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean toggle(Region region) {
|
||||
private boolean toggle(Region region) {
|
||||
region.setFire(!region.isFire());
|
||||
return region.isFire();
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
if (Welt.noPermission(player, Permission.world)) {
|
||||
player.sendMessage(BauSystem.PREFIX + getNoPermMessage());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onFireDamage(BlockBurnEvent e) {
|
||||
if (Region.getRegion(e.getBlock().getLocation()).isFire()) e.setCancelled(true);
|
||||
|
@ -20,38 +20,70 @@
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.Region;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.core.Core;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.*;
|
||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||
import org.bukkit.event.entity.EntitySpawnEvent;
|
||||
import org.bukkit.event.inventory.InventoryMoveItemEvent;
|
||||
|
||||
public class CommandFreeze extends RegionToggleCommand {
|
||||
public class CommandFreeze extends SWCommand implements Listener {
|
||||
|
||||
@Override
|
||||
String getNoPermMessage() {
|
||||
public CommandFreeze() {
|
||||
super("freeze", "stoplag");
|
||||
Bukkit.getPluginManager().registerEvents(this, BauSystem.getPlugin());
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§efreeze §8- §7Toggle Freeze");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void toggleCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Region region = Region.getRegion(p.getLocation());
|
||||
if (toggle(region)) {
|
||||
RegionUtils.actionBar(region, getEnableMessage());
|
||||
} else {
|
||||
RegionUtils.actionBar(region, getDisableMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private String getNoPermMessage() {
|
||||
return "§cDu darfst diese Welt nicht einfrieren";
|
||||
}
|
||||
@Override
|
||||
String getEnableMessage(){
|
||||
return "§cWelt eingefroren";
|
||||
}
|
||||
@Override
|
||||
String getDisableMessage(){
|
||||
return "§aWelt aufgetaut";
|
||||
|
||||
private String getEnableMessage(){
|
||||
return "§cRegion eingefroren";
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean toggle(Region region) {
|
||||
private String getDisableMessage(){
|
||||
return "§aRegion aufgetaut";
|
||||
}
|
||||
|
||||
private boolean toggle(Region region) {
|
||||
region.setFreeze(!region.isFreeze());
|
||||
return region.isFreeze();
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
if (Welt.noPermission(player, Permission.world)) {
|
||||
player.sendMessage(BauSystem.PREFIX + getNoPermMessage());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onEntitySpawn(EntitySpawnEvent e) {
|
||||
if (!Region.getRegion(e.getLocation()).isFreeze()) return;
|
||||
|
@ -1,3 +1,22 @@
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
@ -6,6 +25,7 @@ import de.steamwar.bausystem.SWUtils;
|
||||
import de.steamwar.bausystem.tracer.record.RecordStateMachine;
|
||||
import de.steamwar.bausystem.tracer.show.TraceShowManager;
|
||||
import de.steamwar.bausystem.world.*;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.core.Core;
|
||||
import de.steamwar.inventory.SWAnvilInv;
|
||||
import de.steamwar.inventory.SWInventory;
|
||||
@ -19,9 +39,6 @@ import net.md_5.bungee.api.chat.HoverEvent;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -34,7 +51,7 @@ import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class CommandGUI implements CommandExecutor, Listener {
|
||||
public class CommandGUI extends SWCommand implements Listener {
|
||||
|
||||
private static final Set<Player> OPEN_INVS = new HashSet<>();
|
||||
private static final Set<Player> OPEN_TRACER_INVS = new HashSet<>();
|
||||
@ -42,9 +59,27 @@ public class CommandGUI implements CommandExecutor, Listener {
|
||||
private static boolean isRefreshing = false;
|
||||
|
||||
public CommandGUI() {
|
||||
super("gui");
|
||||
Bukkit.getScheduler().runTaskTimerAsynchronously(BauSystem.getPlugin(), LAST_F_PLAYER::clear, 0, 20);
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§egui §8- §7Öffne die GUI");
|
||||
p.sendMessage("§8/§egui item §8- §7Gebe das GUI item");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p) {
|
||||
openBauGui(p);
|
||||
OPEN_INVS.add(p);
|
||||
}
|
||||
|
||||
@Register({"item"})
|
||||
public void itemCommand(Player p) {
|
||||
SWUtils.giveItemToPlayer(p, new ItemStack(Material.NETHER_STAR));
|
||||
}
|
||||
|
||||
public static void openBauGui(Player player) {
|
||||
Region region = Region.getRegion(player.getLocation());
|
||||
SWInventory inv = new SWInventory(player, 5 * 9, SteamwarUser.get(BauSystem.getOwner()).getUserName() + "s Bau");
|
||||
@ -584,20 +619,6 @@ public class CommandGUI implements CommandExecutor, Listener {
|
||||
return base;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
|
||||
if (!(commandSender instanceof Player))
|
||||
return false;
|
||||
Player player = ((Player) commandSender);
|
||||
if (strings.length == 0) {
|
||||
openBauGui(player);
|
||||
OPEN_INVS.add(player);
|
||||
} else if ("item".equalsIgnoreCase(strings[0])) {
|
||||
SWUtils.giveItemToPlayer(player, new ItemStack(Material.NETHER_STAR));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerInteract(PlayerInteractEvent event) {
|
||||
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
||||
|
@ -1,60 +1,58 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.sql.BauweltMember;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.defaults.BukkitCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandGamemode extends BukkitCommand {
|
||||
private static final List<String> GAMEMODE_NAMES = ImmutableList.of("adventure", "creative", "survival",
|
||||
"spectator");
|
||||
public class CommandGamemode extends SWCommand {
|
||||
|
||||
public CommandGamemode() {
|
||||
super("gamemode");
|
||||
List<String> aliases = new ArrayList<>();
|
||||
aliases.add("gm");
|
||||
this.setAliases(aliases);
|
||||
this.description = "Ändert den Spielmodus eines Spielers";
|
||||
this.usageMessage = "/gm [Spielmodus]";
|
||||
super("gamemode", "gm", "g");
|
||||
}
|
||||
|
||||
public boolean execute(CommandSender sender, String currentAlias, String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return false;
|
||||
} else if (args.length == 0) {
|
||||
sender.sendMessage(BauSystem.PREFIX + this.usageMessage);
|
||||
return false;
|
||||
@Register(help = true)
|
||||
public void gamemodeHelp(Player p, String... args) {
|
||||
p.sendMessage("§cUnbekannter Spielmodus");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
if (p.getGameMode() == GameMode.CREATIVE) {
|
||||
p.setGameMode(GameMode.SPECTATOR);
|
||||
} else {
|
||||
p.setGameMode(GameMode.CREATIVE);
|
||||
}
|
||||
}
|
||||
|
||||
Player p = (Player) sender;
|
||||
@Register
|
||||
public void gamemodeCommand(Player p, GameMode gameMode) {
|
||||
if (!permissionCheck(p)) return;
|
||||
p.setGameMode(gameMode);
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player p) {
|
||||
if (!p.getUniqueId().equals(BauSystem.getOwner())) {
|
||||
BauweltMember member = BauweltMember.getBauMember(BauSystem.getOwner(), p.getUniqueId());
|
||||
if (member == null || !member.isBuild()) {
|
||||
@ -62,47 +60,6 @@ public class CommandGamemode extends BukkitCommand {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
GameMode mode = createMode(args[0]);
|
||||
|
||||
if (mode == null) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cUnbekannter Spielmodus");
|
||||
return false;
|
||||
}
|
||||
|
||||
p.setGameMode(mode);
|
||||
return true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private GameMode createMode(String modeArg) {
|
||||
try {
|
||||
return GameMode.getByValue(Integer.parseInt(modeArg));
|
||||
} catch (NumberFormatException ignored) {
|
||||
if ((modeArg.equalsIgnoreCase("creative")) || (modeArg.equalsIgnoreCase("c")))
|
||||
return GameMode.CREATIVE;
|
||||
else if ((modeArg.equalsIgnoreCase("adventure")) || (modeArg.equalsIgnoreCase("a")))
|
||||
return GameMode.ADVENTURE;
|
||||
else if ((modeArg.equalsIgnoreCase("spectator")) || (modeArg.equalsIgnoreCase("sp")))
|
||||
return GameMode.SPECTATOR;
|
||||
else if ((modeArg.equalsIgnoreCase("survival")) || (modeArg.equalsIgnoreCase("s")))
|
||||
return GameMode.SURVIVAL;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> tabComplete(CommandSender sender, String alias, String[] args) {
|
||||
Validate.notNull(sender, "Sender cannot be null");
|
||||
Validate.notNull(args, "Arguments cannot be null");
|
||||
Validate.notNull(alias, "Alias cannot be null");
|
||||
|
||||
if (args.length == 1)
|
||||
return StringUtil.copyPartialMatches(args[0], GAMEMODE_NAMES,
|
||||
new ArrayList<>(GAMEMODE_NAMES.size()));
|
||||
if (args.length == 2) {
|
||||
return super.tabComplete(sender, alias, args);
|
||||
}
|
||||
return ImmutableList.of();
|
||||
}
|
||||
}
|
||||
}
|
@ -20,22 +20,25 @@
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
public class CommandGills implements CommandExecutor {
|
||||
public class CommandGills extends SWCommand {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
toggleGills(player);
|
||||
return false;
|
||||
public CommandGills() {
|
||||
super("watervision", "wv");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§ewatervision §8- §7Toggle WaterBreathing");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p) {
|
||||
toggleGills(p);
|
||||
}
|
||||
|
||||
public static void toggleGills(Player player) {
|
||||
|
@ -22,30 +22,36 @@ package de.steamwar.bausystem.commands;
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.world.Region;
|
||||
import de.steamwar.bausystem.world.TPSUtils;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.core.TPSWatcher;
|
||||
import de.steamwar.sql.BauweltMember;
|
||||
import de.steamwar.sql.SteamwarUser;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static de.steamwar.bausystem.world.TPSUtils.getTps;
|
||||
|
||||
public class CommandInfo implements CommandExecutor {
|
||||
public class CommandInfo extends SWCommand {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return false;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
public CommandInfo() {
|
||||
super("bauinfo");
|
||||
}
|
||||
|
||||
sender.sendMessage(BauSystem.PREFIX + "Besitzer: §e" + SteamwarUser.get(BauSystem.getOwnerID()).getUserName());
|
||||
Region region = Region.getRegion(player.getLocation());
|
||||
sender.sendMessage(BauSystem.PREFIX + "§eTNT§8: " + region.getTntMode().getName() + " §eFire§8: " + (region.isFire() ? "§aAUS" : "§cAN") + " §eFreeze§8: " + (region.isFreeze() ? "§aAN" : "§cAUS"));
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§ebauinfo §8- §7Gibt Informationen über den Bau");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p) {
|
||||
CommandInfo.sendBauInfo(p);
|
||||
}
|
||||
|
||||
public static void sendBauInfo(Player p) {
|
||||
p.sendMessage(BauSystem.PREFIX + "Besitzer: §e" + SteamwarUser.get(BauSystem.getOwnerID()).getUserName());
|
||||
Region region = Region.getRegion(p.getLocation());
|
||||
p.sendMessage(BauSystem.PREFIX + "§eTNT§8: " + region.getTntMode().getName() + " §eFire§8: " + (region.isFire() ? "§aAUS" : "§cAN") + " §eFreeze§8: " + (region.isFreeze() ? "§aAN" : "§cAUS"));
|
||||
|
||||
List<BauweltMember> members = BauweltMember.getMembers(BauSystem.getOwnerID());
|
||||
StringBuilder membermessage = new StringBuilder().append(BauSystem.PREFIX).append("Mitglieder: ");
|
||||
@ -56,7 +62,7 @@ public class CommandInfo implements CommandExecutor {
|
||||
membermessage.append(member.isWorldEdit() ? "§a" : "§c").append("WE").append("§8,");
|
||||
membermessage.append(member.isWorld() ? "§a" : "§c").append("W").append("§8]").append(" ");
|
||||
}
|
||||
sender.sendMessage(membermessage.toString());
|
||||
p.sendMessage(membermessage.toString());
|
||||
|
||||
StringBuilder tpsMessage = new StringBuilder();
|
||||
tpsMessage.append(BauSystem.PREFIX).append("TPS:§e");
|
||||
@ -67,8 +73,6 @@ public class CommandInfo implements CommandExecutor {
|
||||
tpsMessage.append(" ").append(TPSWatcher.getTPS(TPSWatcher.TPSType.FIVE_MINUTES));
|
||||
tpsMessage.append(" ").append(TPSWatcher.getTPS(TPSWatcher.TPSType.TEN_MINUTES));
|
||||
}
|
||||
sender.sendMessage(tpsMessage.toString());
|
||||
return false;
|
||||
p.sendMessage(tpsMessage.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,43 +0,0 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.SimpleCommandMap;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
public class CommandInjector {
|
||||
|
||||
private CommandInjector() {
|
||||
}
|
||||
|
||||
private static final String PACKAGE_NAME = Bukkit.getServer().getClass().getPackage().getName();
|
||||
private static final String VERSION = PACKAGE_NAME.substring(PACKAGE_NAME.lastIndexOf('.') + 1);
|
||||
|
||||
public static void injectCommand(Command cmd) throws Exception {
|
||||
Class serverClass = Class.forName("org.bukkit.craftbukkit." + VERSION + ".CraftServer");
|
||||
Field f1 = serverClass.getDeclaredField("commandMap");
|
||||
f1.setAccessible(true);
|
||||
SimpleCommandMap commandMap = (SimpleCommandMap) f1.get(Bukkit.getServer());
|
||||
commandMap.register("BauSystem", cmd);
|
||||
}
|
||||
}
|
@ -23,62 +23,68 @@ import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.AutoLoader;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CommandLoader implements CommandExecutor {
|
||||
public class CommandLoader extends SWCommand {
|
||||
|
||||
private void help(Player player) {
|
||||
player.sendMessage("§8/§eloader setup §8- §7Startet die Aufnahme der Aktionen");
|
||||
player.sendMessage("§8/§7loader undo §8- §7Entfernt die zuletzt aufgenommene Aktion");
|
||||
player.sendMessage("§8/§eloader start §8- §7Spielt die zuvor aufgenommenen Aktionen ab");
|
||||
player.sendMessage("§8/§7loader wait §8[§7Ticks§8] - §7Setzt die Wartezeit zwischen Schüssen");
|
||||
player.sendMessage("§8/§7loader speed §8[§7Ticks§8] - §7Setzt die Wartezeit zwischen Aktionen");
|
||||
player.sendMessage("§8/§eloader stop §8- §7Stoppt die Aufnahme bzw. das Abspielen");
|
||||
player.sendMessage("§7Der AutoLader arbeitet mit §eIngame§8-§eTicks §8(20 Ticks pro Sekunde)");
|
||||
public CommandLoader() {
|
||||
super("loader");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§eloader setup §8- §7Startet die Aufnahme der Aktionen");
|
||||
p.sendMessage("§8/§7loader undo §8- §7Entfernt die zuletzt aufgenommene Aktion");
|
||||
p.sendMessage("§8/§eloader start §8- §7Spielt die zuvor aufgenommenen Aktionen ab");
|
||||
p.sendMessage("§8/§7loader wait §8[§7Ticks§8] - §7Setzt die Wartezeit zwischen Schüssen");
|
||||
p.sendMessage("§8/§7loader speed §8[§7Ticks§8] - §7Setzt die Wartezeit zwischen Aktionen");
|
||||
p.sendMessage("§8/§eloader stop §8- §7Stoppt die Aufnahme bzw. das Abspielen");
|
||||
p.sendMessage("§7Der AutoLader arbeitet mit §eIngame§8-§eTicks §8(20 Ticks pro Sekunde)");
|
||||
}
|
||||
|
||||
@Register({"setup"})
|
||||
public void setupCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
setup(p);
|
||||
}
|
||||
|
||||
@Register({"undo"})
|
||||
public void undoCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
undo(p);
|
||||
}
|
||||
|
||||
@Register({"start"})
|
||||
public void startCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
start(p);
|
||||
}
|
||||
|
||||
@Register({"stop"})
|
||||
public void stopCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
stop(p);
|
||||
}
|
||||
|
||||
@Register({"wait"})
|
||||
public void waitCommand(Player p, int time) {
|
||||
if (!permissionCheck(p)) return;
|
||||
wait(p, time);
|
||||
}
|
||||
|
||||
@Register({"speed"})
|
||||
public void speedCommand(Player p, int time) {
|
||||
if (!permissionCheck(p)) return;
|
||||
speed(p, time);
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
if (Welt.noPermission(player, Permission.build)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den AutoLader verwenden");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args.length == 0) {
|
||||
help(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "setup":
|
||||
setup(player);
|
||||
break;
|
||||
case "undo":
|
||||
undo(player);
|
||||
break;
|
||||
case "start":
|
||||
start(player);
|
||||
break;
|
||||
case "stop":
|
||||
stop(player);
|
||||
break;
|
||||
case "wait":
|
||||
wait(player, args);
|
||||
break;
|
||||
case "speed":
|
||||
speed(player, args);
|
||||
break;
|
||||
default:
|
||||
help(player);
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
private void setup(Player player) {
|
||||
@ -114,43 +120,26 @@ public class CommandLoader implements CommandExecutor {
|
||||
AutoLoader.getLoader(player).stop();
|
||||
}
|
||||
|
||||
private void wait(Player player, String[] args) {
|
||||
if (args.length != 2) {
|
||||
help(player);
|
||||
return;
|
||||
}
|
||||
|
||||
private void wait(Player player, int time) {
|
||||
AutoLoader loader = loader(player);
|
||||
if (loader == null)
|
||||
if (loader == null) {
|
||||
loader = AutoLoader.getLoader(player);
|
||||
|
||||
try {
|
||||
loader.wait(Integer.parseInt(args[1]));
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Ganzzahl an");
|
||||
}
|
||||
loader.wait(time);
|
||||
}
|
||||
|
||||
private void speed(Player player, String[] args) {
|
||||
if (args.length != 2) {
|
||||
help(player);
|
||||
return;
|
||||
}
|
||||
|
||||
private void speed(Player player, int time) {
|
||||
AutoLoader loader = loader(player);
|
||||
if (loader == null)
|
||||
if (loader == null) {
|
||||
loader = AutoLoader.getLoader(player);
|
||||
|
||||
try {
|
||||
loader.blockWait(Integer.parseInt(args[1]));
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Ganzzahl an");
|
||||
}
|
||||
loader.blockWait(time);
|
||||
}
|
||||
|
||||
private AutoLoader loader(Player player) {
|
||||
if (AutoLoader.hasLoader(player))
|
||||
if (AutoLoader.hasLoader(player)) {
|
||||
return AutoLoader.getLoader(player);
|
||||
}
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu hast keinen aktiven AutoLader");
|
||||
player.sendMessage(BauSystem.PREFIX + "§7Es wird ein neuer AutoLader gestartet");
|
||||
setup(player);
|
||||
|
@ -20,54 +20,63 @@
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.sql.Schematic;
|
||||
import de.steamwar.sql.SchematicType;
|
||||
import de.steamwar.sql.SteamwarUser;
|
||||
import de.steamwar.sql.UserGroup;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CommandLockschem implements CommandExecutor {
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
public class CommandLockschem extends SWCommand {
|
||||
|
||||
SteamwarUser steamwarUser = SteamwarUser.get(player.getUniqueId());
|
||||
public CommandLockschem() {
|
||||
super("lockschem");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
SteamwarUser steamwarUser = SteamwarUser.get(p.getUniqueId());
|
||||
UserGroup userGroup = steamwarUser.getUserGroup();
|
||||
|
||||
if (userGroup != UserGroup.Admin &&
|
||||
userGroup != UserGroup.Developer &&
|
||||
userGroup != UserGroup.Moderator &&
|
||||
userGroup != UserGroup.Supporter)
|
||||
return false;
|
||||
|
||||
if (args.length != 2) {
|
||||
sendHelp(player);
|
||||
return false;
|
||||
userGroup != UserGroup.Supporter) {
|
||||
return;
|
||||
}
|
||||
|
||||
SteamwarUser schemOwner = SteamwarUser.get(args[0]);
|
||||
sendHelp(p);
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p, String owner, String schematicName) {
|
||||
SteamwarUser steamwarUser = SteamwarUser.get(p.getUniqueId());
|
||||
UserGroup userGroup = steamwarUser.getUserGroup();
|
||||
|
||||
if (userGroup != UserGroup.Admin &&
|
||||
userGroup != UserGroup.Developer &&
|
||||
userGroup != UserGroup.Moderator &&
|
||||
userGroup != UserGroup.Supporter) {
|
||||
return;
|
||||
}
|
||||
|
||||
SteamwarUser schemOwner = SteamwarUser.get(owner);
|
||||
if (schemOwner == null) {
|
||||
player.sendMessage(BauSystem.PREFIX + "Dieser Spieler existiert nicht!");
|
||||
return false;
|
||||
p.sendMessage(BauSystem.PREFIX + "Dieser Spieler existiert nicht!");
|
||||
return;
|
||||
}
|
||||
Schematic schematic = Schematic.getSchemFromDB(args[1], schemOwner.getUUID());
|
||||
Schematic schematic = Schematic.getSchemFromDB(schematicName, schemOwner.getUUID());
|
||||
if (schematic == null) {
|
||||
player.sendMessage(BauSystem.PREFIX + "Dieser Spieler besitzt keine Schematic mit diesem Namen!");
|
||||
return false;
|
||||
p.sendMessage(BauSystem.PREFIX + "Dieser Spieler besitzt keine Schematic mit diesem Namen!");
|
||||
return;
|
||||
}
|
||||
player.sendMessage(BauSystem.PREFIX + "Schematic " + schematic.getSchemName() + " von " +
|
||||
p.sendMessage(BauSystem.PREFIX + "Schematic " + schematic.getSchemName() + " von " +
|
||||
SteamwarUser.get(schematic.getSchemOwner()).getUserName() + " von " + schematic.getSchemType().toString() +
|
||||
" auf NORMAL zurückgesetzt!");
|
||||
schematic.setSchemType(SchematicType.Normal);
|
||||
return false;
|
||||
}
|
||||
|
||||
private void sendHelp(Player player) {
|
||||
player.sendMessage(BauSystem.PREFIX + "/schemlock [OWNER] [SCHEM NAME]");
|
||||
player.sendMessage("§8/§eschemlock §8[§7Owner§8] §8[§7Schematic§8] §8- §7 Sperre eine Schematic");
|
||||
}
|
||||
}
|
||||
|
@ -20,22 +20,25 @@
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
public class CommandNV implements CommandExecutor {
|
||||
public class CommandNV extends SWCommand {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
toggleNightvision(player);
|
||||
return false;
|
||||
public CommandNV() {
|
||||
super("nightvision", "nv");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§enightvision §8- §7Toggle NightVision");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p) {
|
||||
toggleNightvision(p);
|
||||
}
|
||||
|
||||
public static void toggleNightvision(Player player) {
|
||||
|
@ -23,48 +23,73 @@ import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.Region;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.sql.Schematic;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class CommandProtect implements CommandExecutor {
|
||||
public class CommandProtect extends SWCommand {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
public CommandProtect() {
|
||||
super("protect");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§eprotect §8- §7Schütze die Region");
|
||||
p.sendMessage("§8/§eprotect §8[§7Schematic§8] §8- §7Schütze die Region mit einer Schematic");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericTestblockCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Region region = regionCheck(p);
|
||||
if (region == null) return;
|
||||
try {
|
||||
region.protect(null);
|
||||
p.sendMessage(BauSystem.PREFIX + "§7Boden geschützt");
|
||||
} catch (IOException e) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Schützen der Region");
|
||||
Bukkit.getLogger().log(Level.WARNING, "Failed protect", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Register
|
||||
public void schematicTestblockCommand(Player p, String s) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Region region = regionCheck(p);
|
||||
if (region == null) return;
|
||||
Schematic schem = Schematic.getSchemFromDB(s, p.getUniqueId());
|
||||
if (schem == null) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cSchematic nicht gefunden");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
region.protect(null);
|
||||
p.sendMessage(BauSystem.PREFIX + "§7Boden geschützt");
|
||||
} catch (IOException e) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Schützen der Region");
|
||||
Bukkit.getLogger().log(Level.WARNING, "Failed protect", e);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
if (Welt.noPermission(player, Permission.worldedit)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den Boden schützen");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private Region regionCheck(Player player) {
|
||||
Region region = Region.getRegion(player.getLocation());
|
||||
if (region == null || !region.hasProtection()) {
|
||||
if (!region.hasProtection()) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu befindest dich derzeit in keiner (M)WG-Region");
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
Schematic schem = null;
|
||||
if (args.length > 0) {
|
||||
schem = Schematic.getSchemFromDB(args[0], player.getUniqueId());
|
||||
if (schem == null) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cSchematic nicht gefunden");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
region.protect(schem);
|
||||
player.sendMessage(BauSystem.PREFIX + "§7Boden geschützt");
|
||||
} catch (Exception e) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cFehler beim Schützen der Region");
|
||||
Bukkit.getLogger().log(Level.WARNING, "Failed protect", e);
|
||||
}
|
||||
return false;
|
||||
return region;
|
||||
}
|
||||
}
|
||||
|
@ -24,13 +24,32 @@ import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.SWUtils;
|
||||
import de.steamwar.bausystem.world.RedstoneListener;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.core.VersionedRunnable;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CommandRedstoneTester implements CommandExecutor {
|
||||
public class CommandRedstoneTester extends SWCommand {
|
||||
|
||||
public CommandRedstoneTester() {
|
||||
super("redstonetester", "rt");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§eredstonetester §8- §7Gibt den RedstoneTester");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p) {
|
||||
VersionedRunnable.call(new VersionedRunnable(() -> {
|
||||
p.sendMessage(BauSystem.PREFIX + "Der RedstoneTester ist nicht in der 1.12 verfügbar");
|
||||
}, 8), new VersionedRunnable(() -> {
|
||||
if (!permissionCheck(p)) return;
|
||||
p.sendMessage(BauSystem.PREFIX + "Messe die Zeit zwischen der Aktivierung zweier Redstone Komponenten");
|
||||
SWUtils.giveItemToPlayer(p, RedstoneListener.WAND);
|
||||
}, 15));
|
||||
}
|
||||
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
if (Welt.noPermission(player, Permission.build)) {
|
||||
@ -40,21 +59,4 @@ public class CommandRedstoneTester implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) {
|
||||
if (!(commandSender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) commandSender;
|
||||
VersionedRunnable.call(new VersionedRunnable(() -> {
|
||||
player.sendMessage(BauSystem.PREFIX + "Der RedstoneTester ist nicht in der 1.12 verfügbar");
|
||||
}, 8), new VersionedRunnable(() -> {
|
||||
if (!permissionCheck(player)) {
|
||||
return;
|
||||
}
|
||||
player.sendMessage(BauSystem.PREFIX + "Messe die Zeit zwischen der Aktivierung zweier Redstone Komponenten");
|
||||
SWUtils.giveItemToPlayer(player, RedstoneListener.WAND);
|
||||
}, 15));
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -23,49 +23,73 @@ import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.Region;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.sql.Schematic;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class CommandReset implements CommandExecutor {
|
||||
public class CommandReset extends SWCommand {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
public CommandReset() {
|
||||
super("reset");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§ereset §8- §7Setzte die Region zurück");
|
||||
p.sendMessage("§8/§ereset §8[§7Schematic§8] §8- §7Setzte die Region mit einer Schematic zurück");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericResetCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Region region = regionCheck(p);
|
||||
if (region == null) return;
|
||||
try {
|
||||
region.reset(null);
|
||||
p.sendMessage(BauSystem.PREFIX + "§7Region zurückgesetzt");
|
||||
} catch (IOException e) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen der Region");
|
||||
Bukkit.getLogger().log(Level.WARNING, "Failed testblock", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Register
|
||||
public void schematicResetCommand(Player p, String s) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Region region = regionCheck(p);
|
||||
if (region == null) return;
|
||||
Schematic schem = Schematic.getSchemFromDB(s, p.getUniqueId());
|
||||
if (schem == null) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cSchematic nicht gefunden");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
region.reset(null);
|
||||
p.sendMessage(BauSystem.PREFIX + "§7Region zurückgesetzt");
|
||||
} catch (IOException e) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen der Region");
|
||||
Bukkit.getLogger().log(Level.WARNING, "Failed reset", e);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
if (Welt.noPermission(player, Permission.world)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht die Region zurücksetzen");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private Region regionCheck(Player player) {
|
||||
Region region = Region.getRegion(player.getLocation());
|
||||
if (region == Region.GlobalRegion.getInstance()) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu befindest dich derzeit in keiner Region");
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
if (args.length > 0) {
|
||||
Schematic schem = Schematic.getSchemFromDB(args[0], player.getUniqueId());
|
||||
if (schem == null) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cSchematic nicht gefunden");
|
||||
return false;
|
||||
}
|
||||
region.reset(schem);
|
||||
} else {
|
||||
region.fastreset();
|
||||
}
|
||||
player.sendMessage(BauSystem.PREFIX + "§7Region zurückgesetzt");
|
||||
} catch (Exception e) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen der Region");
|
||||
Bukkit.getLogger().log(Level.WARNING, "Failed reset", e);
|
||||
}
|
||||
return false;
|
||||
return region;
|
||||
}
|
||||
}
|
||||
|
@ -22,10 +22,8 @@
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.SWUtils;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BookMeta;
|
||||
@ -33,7 +31,11 @@ import org.bukkit.inventory.meta.BookMeta;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandScript implements CommandExecutor {
|
||||
public class CommandScript extends SWCommand {
|
||||
|
||||
public CommandScript() {
|
||||
super("script");
|
||||
}
|
||||
|
||||
public static final ItemStack BOOK = new ItemStack(Material.WRITTEN_BOOK, 1);
|
||||
|
||||
@ -79,13 +81,14 @@ public class CommandScript implements CommandExecutor {
|
||||
BOOK.setItemMeta(bookMeta);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return false;
|
||||
}
|
||||
SWUtils.giveItemToPlayer((Player) sender, BOOK);
|
||||
return false;
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§escript §8- §7Gibt das Script Buch");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void giveCommand(Player p) {
|
||||
SWUtils.giveItemToPlayer(p, BOOK);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,68 +1,120 @@
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.world.ScriptListener;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.command.SWCommandUtils;
|
||||
import de.steamwar.command.TypeMapper;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
public class CommandScriptVars implements CommandExecutor {
|
||||
public class CommandScriptVars extends SWCommand {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return false;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
if (args.length == 0) {
|
||||
Map<String, Integer> globalVariables = ScriptListener.GLOBAL_VARIABLES.get(player);
|
||||
if (globalVariables == null) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cKeine globalen Variablen definiert");
|
||||
return false;
|
||||
}
|
||||
int i = 0;
|
||||
player.sendMessage(BauSystem.PREFIX + globalVariables.size() + " Variable(n)");
|
||||
for (Map.Entry<String, Integer> var : globalVariables.entrySet()) {
|
||||
if (i++ >= 40) break;
|
||||
player.sendMessage("- " + var.getKey() + "=" + var.getValue());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
String varName = args[0];
|
||||
if (args.length == 1) {
|
||||
Map<String, Integer> globalVariables = ScriptListener.GLOBAL_VARIABLES.get(player);
|
||||
if (globalVariables == null) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cKeine globalen Variablen definiert");
|
||||
return false;
|
||||
}
|
||||
if (!globalVariables.containsKey(varName)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cUnbekannte Variable");
|
||||
return false;
|
||||
}
|
||||
player.sendMessage(BauSystem.PREFIX + varName + "=" + globalVariables.get(varName));
|
||||
return false;
|
||||
}
|
||||
switch (args[1].toLowerCase()) {
|
||||
case "delete":
|
||||
case "clear":
|
||||
case "remove":
|
||||
if (!ScriptListener.GLOBAL_VARIABLES.containsKey(player)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cKeine globalen Variablen definiert");
|
||||
break;
|
||||
}
|
||||
ScriptListener.GLOBAL_VARIABLES.get(player).remove(varName);
|
||||
player.sendMessage(BauSystem.PREFIX + "Variable " + varName + " gelöscht");
|
||||
break;
|
||||
default:
|
||||
int value = ScriptListener.parseValue(args[1]);
|
||||
ScriptListener.GLOBAL_VARIABLES.computeIfAbsent(player, p -> new HashMap<>()).put(varName, value);
|
||||
player.sendMessage(BauSystem.PREFIX + varName + " auf " + value + " gesetzt");
|
||||
}
|
||||
return false;
|
||||
public CommandScriptVars() {
|
||||
super("scripvars");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§escriptvars §8- §7Zähle alle globalen Variablen auf");
|
||||
p.sendMessage("§8/§escriptvars §8[§7Variable§8] §8- §7Gebe den Wert der Variable zurück");
|
||||
p.sendMessage("§8/§escriptvars §8[§7Variable§8] §8[§7Value§8] §8- §7Setzte eine Variable auf einen Wert");
|
||||
p.sendMessage("§8/§escriptvars §8[§7Variable§8] §8<§7remove§8|§7delete§8|§7clear§8> §8- §7Lösche eine Variable");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p) {
|
||||
Map<String, Integer> globalVariables = ScriptListener.GLOBAL_VARIABLES.get(p);
|
||||
if (globalVariables == null) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cKeine globalen Variablen definiert");
|
||||
return;
|
||||
}
|
||||
int i = 0;
|
||||
p.sendMessage(BauSystem.PREFIX + globalVariables.size() + " Variable(n)");
|
||||
for (Map.Entry<String, Integer> var : globalVariables.entrySet()) {
|
||||
if (i++ >= 40) break;
|
||||
p.sendMessage("- " + var.getKey() + "=" + var.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
@Register
|
||||
public void removeCommand(Player p, String varName) {
|
||||
Map<String, Integer> globalVariables = ScriptListener.GLOBAL_VARIABLES.get(p);
|
||||
if (globalVariables == null) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cKeine globalen Variablen definiert");
|
||||
return;
|
||||
}
|
||||
if (!globalVariables.containsKey(varName)) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cUnbekannte Variable");
|
||||
return;
|
||||
}
|
||||
p.sendMessage(BauSystem.PREFIX + varName + "=" + globalVariables.get(varName));
|
||||
}
|
||||
|
||||
@Register
|
||||
public void booleanValueCommand(Player p, String varName, int value) {
|
||||
ScriptListener.GLOBAL_VARIABLES.computeIfAbsent(p, player -> new HashMap<>()).put(varName, value);
|
||||
p.sendMessage(BauSystem.PREFIX + varName + " auf " + value + " gesetzt");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void removeCommand(Player p, String varName, @Mapper(value = "Delete") String remove) {
|
||||
if (!ScriptListener.GLOBAL_VARIABLES.containsKey(p)) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cKeine globalen Variablen definiert");
|
||||
return;
|
||||
}
|
||||
ScriptListener.GLOBAL_VARIABLES.get(p).remove(varName);
|
||||
p.sendMessage(BauSystem.PREFIX + "Variable " + varName + " gelöscht");
|
||||
}
|
||||
|
||||
@ClassMapper(value = String.class, local = true)
|
||||
public TypeMapper<String> stringTypeMapper() {
|
||||
return SWCommandUtils.createMapper(s -> s, (commandSender, s) -> {
|
||||
if (commandSender instanceof Player) {
|
||||
Player player = (Player) commandSender;
|
||||
return new ArrayList<>(ScriptListener.GLOBAL_VARIABLES.getOrDefault(player, new HashMap<>()).keySet());
|
||||
}
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
@Mapper(value = "Delete", local = true)
|
||||
public TypeMapper<String> clearStringTypeMapper() {
|
||||
List<String> tabCompletes = Arrays.asList("delete", "clear", "remove");
|
||||
return SWCommandUtils.createMapper(s -> {
|
||||
if (s.equalsIgnoreCase("delete") || s.equalsIgnoreCase("clear") || s.equalsIgnoreCase("remove")) {
|
||||
return s;
|
||||
}
|
||||
return null;
|
||||
}, s -> tabCompletes);
|
||||
}
|
||||
|
||||
@ClassMapper(value = int.class, local = true)
|
||||
public TypeMapper<Integer> integerTypeMapper() {
|
||||
List<String> tabCompletes = Arrays.asList("true", "false", "yes", "no");
|
||||
return SWCommandUtils.createMapper(s -> {
|
||||
if (s.equalsIgnoreCase("remove") || s.equalsIgnoreCase("clear") || s.equalsIgnoreCase("delete")) return null;
|
||||
return ScriptListener.parseValue(s);
|
||||
}, s -> tabCompletes);
|
||||
}
|
||||
}
|
||||
|
@ -1,34 +0,0 @@
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.SWUtils;
|
||||
import de.steamwar.bausystem.world.ScriptListener;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandScriptVarsTabCompleter implements TabCompleter {
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String s, String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
if (args.length == 1) {
|
||||
List<String> variables = new ArrayList<>(ScriptListener.GLOBAL_VARIABLES.getOrDefault(player, new HashMap<>()).keySet());
|
||||
return SWUtils.manageList(variables, args);
|
||||
}
|
||||
if (args.length != 2) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
int value = ScriptListener.GLOBAL_VARIABLES.getOrDefault(player, new HashMap<>()).getOrDefault(args[0], 0);
|
||||
return SWUtils.manageList(Arrays.asList(value + "", "true", "false", "yes", "no", "delete", "clear", "remove"), args);
|
||||
}
|
||||
|
||||
}
|
@ -25,18 +25,45 @@ import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.SWUtils;
|
||||
import de.steamwar.bausystem.world.TNTSimulator;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CommandSimulator implements CommandExecutor {
|
||||
public class CommandSimulator extends SWCommand {
|
||||
|
||||
private void help(Player player) {
|
||||
player.sendMessage("§8/§esimulator §8- §7Öffnet die Simulations GUI");
|
||||
player.sendMessage("§8/§esimulator start §8- §7Startet die Simulation");
|
||||
player.sendMessage("§8/§esimulator wand §8- §7Legt dir den Simulatorstab ins Inventar");
|
||||
player.sendMessage("§8/§esimulator delete §8- §7Löscht alle TNT");
|
||||
public CommandSimulator() {
|
||||
super("simulator", "sim");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§esimulator §8- §7Öffnet die Simulations GUI");
|
||||
p.sendMessage("§8/§esimulator start §8- §7Startet die Simulation");
|
||||
p.sendMessage("§8/§esimulator wand §8- §7Legt dir den Simulatorstab ins Inventar");
|
||||
p.sendMessage("§8/§esimulator delete §8- §7Löscht alle TNT");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
TNTSimulator.openSimulator(p);
|
||||
}
|
||||
|
||||
@Register({"wand"})
|
||||
public void wandCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
SWUtils.giveItemToPlayer(p, TNTSimulator.WAND);
|
||||
}
|
||||
|
||||
@Register({"start"})
|
||||
public void startCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
TNTSimulator.get(p).start();
|
||||
}
|
||||
|
||||
@Register({"delete"})
|
||||
public void deleteCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
TNTSimulator.get(p).delete();
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
@ -47,33 +74,4 @@ public class CommandSimulator implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) {
|
||||
if (!(commandSender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) commandSender;
|
||||
if (!permissionCheck(player)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "wand":
|
||||
SWUtils.giveItemToPlayer(player, TNTSimulator.WAND);
|
||||
break;
|
||||
case "start":
|
||||
TNTSimulator.get(player).start();
|
||||
break;
|
||||
case "delete":
|
||||
TNTSimulator.get(player).delete();
|
||||
default:
|
||||
help(player);
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
TNTSimulator.openSimulator(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,46 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.SWUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandSimulatorTabCompleter implements TabCompleter {
|
||||
|
||||
private List<String> arguments = new ArrayList<>(Arrays.asList("wand", "start", "delete"));
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
|
||||
if(!(sender instanceof Player)) return new ArrayList<>();
|
||||
if (args.length != 1) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return SWUtils.manageList(arguments, args);
|
||||
}
|
||||
|
||||
}
|
@ -19,36 +19,31 @@
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.SWUtils;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.inventory.SWItem;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
|
||||
public class CommandSkull implements CommandExecutor {
|
||||
public class CommandSkull extends SWCommand {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) {
|
||||
if (!(commandSender instanceof Player))
|
||||
return false;
|
||||
Player p = (Player) commandSender;
|
||||
public CommandSkull() {
|
||||
super("skull");
|
||||
}
|
||||
|
||||
if (args.length != 1) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§8/§eskull §8[§eSpieler§8]");
|
||||
return false;
|
||||
}
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§eskull §8[§eSpieler§8] §8- §7Gibt einen SpielerKopf");
|
||||
}
|
||||
|
||||
ItemStack is = SWItem.getPlayerSkull(args[0]).getItemStack();
|
||||
@Register
|
||||
public void giveCommand(Player p, String skull) {
|
||||
ItemStack is = SWItem.getPlayerSkull(skull).getItemStack();
|
||||
SkullMeta sm = (SkullMeta) is.getItemMeta();
|
||||
assert sm != null;
|
||||
sm.setDisplayName("§e" + args[0] + "§8s Kopf");
|
||||
sm.setDisplayName("§e" + skull + "§8s Kopf");
|
||||
is.setItemMeta(sm);
|
||||
SWUtils.giveItemToPlayer(p, is);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -20,40 +20,51 @@
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.command.SWCommandUtils;
|
||||
import de.steamwar.command.TypeMapper;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CommandSpeed implements CommandExecutor {
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
public class CommandSpeed extends SWCommand {
|
||||
|
||||
if (args.length == 0) {
|
||||
player.sendMessage(BauSystem.PREFIX + "/speed [Geschwindigkeit]");
|
||||
return false;
|
||||
}
|
||||
public CommandSpeed() {
|
||||
super("speed");
|
||||
}
|
||||
|
||||
float speed;
|
||||
try {
|
||||
speed = Float.parseFloat(args[0]);
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 10 an");
|
||||
return false;
|
||||
}
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§espeed §8[§7Geschwindigkeit§8] §8- §7Setzte deine Flug- und Gehgeschwindigkeit");
|
||||
}
|
||||
|
||||
@Register({"default"})
|
||||
public void defaultCommand(Player p) {
|
||||
speedCommand(p, 1);
|
||||
}
|
||||
|
||||
@Register
|
||||
public void speedCommand(Player p, float speed) {
|
||||
if (speed < 0 || speed > 10) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 10 an");
|
||||
return false;
|
||||
p.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 10 an");
|
||||
return;
|
||||
}
|
||||
|
||||
player.sendMessage("§aGeschwindigkeit wurde auf §6" + speed + " §agesetzt");
|
||||
p.sendMessage("§aGeschwindigkeit wurde auf §6" + speed + " §agesetzt");
|
||||
p.setFlySpeed(speed / 10);
|
||||
p.setWalkSpeed((speed >= 9 ? speed : speed + 1) / 10);
|
||||
}
|
||||
|
||||
player.setFlySpeed(speed / 10);
|
||||
player.setWalkSpeed((speed >= 9 ? speed : speed + 1) / 10);
|
||||
return false;
|
||||
@ClassMapper(value = float.class, local = true)
|
||||
public TypeMapper<Float> doubleTypeMapper() {
|
||||
List<String> tabCompletes = Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
|
||||
return SWCommandUtils.createMapper(s -> {
|
||||
try {
|
||||
return Float.parseFloat(s.replace(',', '.'));
|
||||
} catch (NumberFormatException e) {
|
||||
return null;
|
||||
}
|
||||
}, s -> tabCompletes);
|
||||
}
|
||||
}
|
||||
|
@ -23,16 +23,21 @@ import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.Region;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.command.SWCommandUtils;
|
||||
import de.steamwar.command.TypeMapper;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
|
||||
public class CommandTNT implements CommandExecutor, Listener {
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class CommandTNT extends SWCommand implements Listener {
|
||||
|
||||
public enum TNTMode {
|
||||
ON("§aan"),
|
||||
@ -48,13 +53,70 @@ public class CommandTNT implements CommandExecutor, Listener {
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public CommandTNT() {
|
||||
super("tnt");
|
||||
Bukkit.getPluginManager().registerEvents(this, BauSystem.getPlugin());
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§etnt §8- §7Ändere das TNT verhalten");
|
||||
p.sendMessage("§8/§etnt §8[§7Mode§8] §8- §7Setzte das TNT verhalten auf einen Modus");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void toggleCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Region region = Region.getRegion(p.getLocation());
|
||||
tntToggle(region, null, null);
|
||||
}
|
||||
|
||||
@Register
|
||||
public void setCommand(Player p, TNTMode tntMode) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Region region = Region.getRegion(p.getLocation());
|
||||
tntToggle(region, null, null);
|
||||
|
||||
String requestedMessage = null;
|
||||
switch (tntMode) {
|
||||
case ON:
|
||||
requestedMessage = getEnableMessage();
|
||||
break;
|
||||
case OFF:
|
||||
requestedMessage = getDisableMessage();
|
||||
break;
|
||||
case ONLY_TB:
|
||||
requestedMessage = getTestblockEnableMessage();
|
||||
break;
|
||||
}
|
||||
tntToggle(region, tntMode, requestedMessage);
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player p) {
|
||||
if (Welt.noPermission(p, Permission.world)) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht TNT-Schaden (de-)aktivieren");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ClassMapper(value = TNTMode.class, local = true)
|
||||
public TypeMapper<TNTMode> tntModeTypeMapper() {
|
||||
Map<String, TNTMode> tntModeMap = new HashMap<>();
|
||||
tntModeMap.put("an", TNTMode.ON);
|
||||
tntModeMap.put("on", TNTMode.ON);
|
||||
tntModeMap.put("aus", TNTMode.OFF);
|
||||
tntModeMap.put("off", TNTMode.OFF);
|
||||
if (Region.buildAreaEnabled()) {
|
||||
tntModeMap.put("testblock", TNTMode.ONLY_TB);
|
||||
tntModeMap.put("tb", TNTMode.ONLY_TB);
|
||||
}
|
||||
List<String> tabCompletes = new ArrayList<>(tntModeMap.keySet());
|
||||
return SWCommandUtils.createMapper(s -> tntModeMap.getOrDefault(s, null), s -> tabCompletes);
|
||||
}
|
||||
|
||||
private String getEnableMessage() {
|
||||
return "§aTNT-Schaden aktiviert";
|
||||
}
|
||||
@ -67,65 +129,25 @@ public class CommandTNT implements CommandExecutor, Listener {
|
||||
return "§aTNT-Schaden außerhalb Baurahmen aktiviert";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
if (!(sender instanceof Player)) return false;
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (Welt.noPermission(player, Permission.world)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht TNT-Schaden (de-)aktivieren");
|
||||
return false;
|
||||
}
|
||||
|
||||
TNTMode requestedMode = null;
|
||||
String requestedMessage = null;
|
||||
if (args.length != 0) {
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "an":
|
||||
case "on":
|
||||
requestedMode = TNTMode.ON;
|
||||
requestedMessage = getEnableMessage();
|
||||
break;
|
||||
case "aus":
|
||||
case "off":
|
||||
requestedMode = TNTMode.OFF;
|
||||
requestedMessage = getDisableMessage();
|
||||
break;
|
||||
case "testblock":
|
||||
case "tb":
|
||||
if (!Region.buildAreaEnabled()) break;
|
||||
requestedMode = TNTMode.ONLY_TB;
|
||||
requestedMessage = getTestblockEnableMessage();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Region region = Region.getRegion(player.getLocation());
|
||||
tntToggle(region, requestedMode, requestedMessage);
|
||||
return false;
|
||||
}
|
||||
|
||||
private void tntToggle(Region region, TNTMode requestedMode, String requestedMessage) {
|
||||
if (requestedMode != null && region.hasTestblock()) {
|
||||
region.setTntMode(requestedMode);
|
||||
RegionToggleCommand.actionBar(region, requestedMessage);
|
||||
RegionUtils.actionBar(region, requestedMessage);
|
||||
return;
|
||||
}
|
||||
switch (region.getTntMode()) {
|
||||
case ON:
|
||||
case ONLY_TB:
|
||||
region.setTntMode(TNTMode.OFF);
|
||||
RegionToggleCommand.actionBar(region, getDisableMessage());
|
||||
RegionUtils.actionBar(region, getDisableMessage());
|
||||
break;
|
||||
case OFF:
|
||||
if (Region.buildAreaEnabled() && region.hasTestblock()) {
|
||||
region.setTntMode(TNTMode.ONLY_TB);
|
||||
RegionToggleCommand.actionBar(region, getTestblockEnableMessage());
|
||||
RegionUtils.actionBar(region, getTestblockEnableMessage());
|
||||
} else {
|
||||
region.setTntMode(TNTMode.ON);
|
||||
RegionToggleCommand.actionBar(region, getEnableMessage());
|
||||
RegionUtils.actionBar(region, getEnableMessage());
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -137,15 +159,14 @@ public class CommandTNT implements CommandExecutor, Listener {
|
||||
Region region = Region.getRegion(block.getLocation());
|
||||
if (region.getTntMode() == TNTMode.ON) return false;
|
||||
if (region.hasBuildRegion() && region.inBuildRegion(block.getLocation())) {
|
||||
RegionToggleCommand.actionBar(region, "§cEine Explosion hätte Blöcke im Baubereich zerstört");
|
||||
RegionUtils.actionBar(region, "§cEine Explosion hätte Blöcke im Baubereich zerstört");
|
||||
return true;
|
||||
}
|
||||
if (region.hasBuildRegion() && region.inBuildRegionExtension(block.getLocation())) {
|
||||
RegionToggleCommand.actionBar(region, "§cEine Explosion hätte Blöcke im Ausfahrbereich zerstört");
|
||||
RegionUtils.actionBar(region, "§cEine Explosion hätte Blöcke im Ausfahrbereich zerstört");
|
||||
return true;
|
||||
}
|
||||
return region.getTntMode() == TNTMode.OFF;
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,52 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
* /
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.SWUtils;
|
||||
import de.steamwar.bausystem.world.Region;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandTNTTabComplete implements TabCompleter {
|
||||
|
||||
private List<String> arguments = new ArrayList<>(Arrays.asList("an", "on", "aus", "off"));
|
||||
|
||||
public CommandTNTTabComplete() {
|
||||
if (Region.buildAreaEnabled()) arguments.addAll(Arrays.asList("testblock", "tb"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
|
||||
if(!(sender instanceof Player)) return new ArrayList<>();
|
||||
if (args.length != 1) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return SWUtils.manageList(arguments, args);
|
||||
}
|
||||
|
||||
}
|
@ -23,18 +23,22 @@ import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.TPSUtils;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.command.SWCommandUtils;
|
||||
import de.steamwar.command.TypeMapper;
|
||||
import de.steamwar.core.VersionedRunnable;
|
||||
import net.md_5.bungee.api.ChatMessageType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
|
||||
public class CommandTPSLimiter implements CommandExecutor {
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandTPSLimiter extends SWCommand {
|
||||
|
||||
private static final World WORLD = Bukkit.getWorlds().get(0);
|
||||
private static double currentTPSLimit = 20;
|
||||
@ -48,6 +52,52 @@ public class CommandTPSLimiter implements CommandExecutor {
|
||||
|
||||
private BukkitTask tpsLimiter = null;
|
||||
|
||||
private List<String> tabCompletions = new ArrayList<>(Arrays.asList("0,5", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"));
|
||||
|
||||
public CommandTPSLimiter() {
|
||||
super("tpslimit");
|
||||
if (TPSUtils.isWarpAllowed()) {
|
||||
tabCompletions.addAll(Arrays.asList("21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40"));
|
||||
}
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage(BauSystem.PREFIX + "Jetziges TPS limit: " + currentTPSLimit);
|
||||
p.sendMessage("§8/§etpslimit §8[§7TPS§8|§edefault§8] §8- §7Setzte die TPS auf dem Bau");
|
||||
}
|
||||
|
||||
@Register({"default"})
|
||||
public void defaultCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
currentTPSLimit = 20;
|
||||
sendNewTPSLimitMessage();
|
||||
tpsLimiter();
|
||||
}
|
||||
|
||||
@Register
|
||||
public void valueCommand(Player p, double tpsLimitDouble) {
|
||||
if (!permissionCheck(p)) return;
|
||||
if (tpsLimitDouble < 0.5 || tpsLimitDouble > (TPSUtils.isWarpAllowed() ? 40 : 20)) {
|
||||
sendInvalidArgumentMessage(p);
|
||||
return;
|
||||
}
|
||||
currentTPSLimit = tpsLimitDouble;
|
||||
sendNewTPSLimitMessage();
|
||||
tpsLimiter();
|
||||
}
|
||||
|
||||
@ClassMapper(value = double.class, local = true)
|
||||
public TypeMapper<Double> doubleTypeMapper() {
|
||||
return SWCommandUtils.createMapper(s -> {
|
||||
try {
|
||||
return Double.parseDouble(s.replace(',', '.'));
|
||||
} catch (NumberFormatException e) {
|
||||
return 0D;
|
||||
}
|
||||
}, s -> tabCompletions);
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
if (Welt.noPermission(player, Permission.world)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den TPS-Limiter nutzen");
|
||||
@ -56,42 +106,6 @@ public class CommandTPSLimiter implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return false;
|
||||
} else if (args.length == 0) {
|
||||
sender.sendMessage(BauSystem.PREFIX + "Jetziges TPS limit: " + currentTPSLimit);
|
||||
sender.sendMessage(BauSystem.PREFIX + "Ändere das TPS limit mit: §8/§etpslimit §8[§7TPS§8|§edefault§8]");
|
||||
return false;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
if (!permissionCheck(player)) return false;
|
||||
|
||||
String tpsLimit = args[0];
|
||||
if (tpsLimit.equals("default")) {
|
||||
currentTPSLimit = 20;
|
||||
sendNewTPSLimitMessage();
|
||||
tpsLimiter();
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
double tpsLimitDouble = Double.parseDouble(tpsLimit.replace(',', '.'));
|
||||
if (tpsLimitDouble < 0.5 || tpsLimitDouble > (TPSUtils.isWarpAllowed() ? 40 : 20)) {
|
||||
sendInvalidArgumentMessage(player);
|
||||
return false;
|
||||
}
|
||||
currentTPSLimit = tpsLimitDouble;
|
||||
sendNewTPSLimitMessage();
|
||||
tpsLimiter();
|
||||
} catch (NumberFormatException e) {
|
||||
sendInvalidArgumentMessage(player);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void sendNewTPSLimitMessage() {
|
||||
Bukkit.getOnlinePlayers().forEach(p -> p.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("§eTPS limit auf " + currentTPSLimit + " gesetzt.")));
|
||||
}
|
||||
|
@ -1,51 +0,0 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.SWUtils;
|
||||
import de.steamwar.bausystem.world.TPSUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandTPSLimiterTabComplete implements TabCompleter {
|
||||
|
||||
private List<String> arguments = new ArrayList<>(Arrays.asList("default", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"));
|
||||
|
||||
public CommandTPSLimiterTabComplete() {
|
||||
if (TPSUtils.isWarpAllowed())
|
||||
arguments.addAll(Arrays.asList("21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
|
||||
if(!(sender instanceof Player)) return new ArrayList<>();
|
||||
if (args.length != 1) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return SWUtils.manageList(arguments, args);
|
||||
}
|
||||
|
||||
}
|
@ -1,81 +1,56 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.sql.BauweltMember;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.defaults.BukkitCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
|
||||
import java.util.List;
|
||||
public class CommandTeleport extends SWCommand {
|
||||
|
||||
public class CommandTeleport extends BukkitCommand {
|
||||
public CommandTeleport() {
|
||||
super("tp");
|
||||
description = "Teleportiert dich zu einem genannten Spieler.";
|
||||
usageMessage = "/tp [Spieler]";
|
||||
super("teleport", "tp");
|
||||
}
|
||||
|
||||
public boolean execute(CommandSender sender, String currentAlias, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
else if (args.length != 1) {
|
||||
sender.sendMessage(BauSystem.PREFIX + usageMessage);
|
||||
return false;
|
||||
}
|
||||
|
||||
Player p = (Player) sender;
|
||||
|
||||
Player target = Bukkit.getPlayerExact(args[0]);
|
||||
|
||||
if (target == null) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cDieser Spieler ist derzeit offline.");
|
||||
return true;
|
||||
}
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§etp §8[§7Player§8] §8- §7Teleportiere dich zu einem Spieler");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p, Player target) {
|
||||
if (p.getUniqueId().equals(target.getUniqueId())) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cSei eins mit dir selbst!");
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!BauSystem.getOwner().equals(p.getUniqueId())) {
|
||||
BauweltMember member = BauweltMember.getBauMember(BauSystem.getOwner(), p.getUniqueId());
|
||||
if (member == null || !member.isBuild()) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cDu darfst dich auf dieser Welt nicht teleportieren!");
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
p.teleport(target, PlayerTeleportEvent.TeleportCause.COMMAND);
|
||||
return true;
|
||||
}
|
||||
|
||||
public List<String> tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException {
|
||||
Validate.notNull(sender, "Sender cannot be null");
|
||||
Validate.notNull(args, "Arguments cannot be null");
|
||||
Validate.notNull(alias, "Alias cannot be null");
|
||||
|
||||
return super.tabComplete(sender, alias, args);
|
||||
}
|
||||
}
|
||||
}
|
@ -23,48 +23,73 @@ import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.Region;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.sql.Schematic;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class CommandTestblock implements CommandExecutor {
|
||||
public class CommandTestblock extends SWCommand {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
public CommandTestblock() {
|
||||
super("testblock", "tb");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§etestblock §8- §7Setzte den Testblock zurück");
|
||||
p.sendMessage("§8/§etestblock §8[§7Schematic§8] §8- §7Setzte den Testblock mit einer Schematic zurück");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericTestblockCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Region region = regionCheck(p);
|
||||
if (region == null) return;
|
||||
try {
|
||||
region.resetTestblock(null);
|
||||
p.sendMessage(BauSystem.PREFIX + "§7Testblock zurückgesetzt");
|
||||
} catch (IOException e) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen des Testblocks");
|
||||
Bukkit.getLogger().log(Level.WARNING, "Failed testblock", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Register
|
||||
public void schematicTestblockCommand(Player p, String s) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Region region = regionCheck(p);
|
||||
if (region == null) return;
|
||||
Schematic schem = Schematic.getSchemFromDB(s, p.getUniqueId());
|
||||
if (schem == null) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cSchematic nicht gefunden");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
region.resetTestblock(null);
|
||||
p.sendMessage(BauSystem.PREFIX + "§7Testblock zurückgesetzt");
|
||||
} catch (IOException e) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen des Testblocks");
|
||||
Bukkit.getLogger().log(Level.WARNING, "Failed testblock", e);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
if (Welt.noPermission(player, Permission.worldedit)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den Testblock zurücksetzen");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private Region regionCheck(Player player) {
|
||||
Region region = Region.getRegion(player.getLocation());
|
||||
if (!region.hasTestblock()) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu befindest dich derzeit in keiner Region");
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
Schematic schem = null;
|
||||
if (args.length > 0) {
|
||||
schem = Schematic.getSchemFromDB(args[0], player.getUniqueId());
|
||||
if (schem == null) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cSchematic nicht gefunden");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
region.resetTestblock(schem);
|
||||
player.sendMessage(BauSystem.PREFIX + "§7Testblock zurückgesetzt");
|
||||
} catch (Exception e) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cFehler beim Zurücksetzen des Testblocks");
|
||||
Bukkit.getLogger().log(Level.WARNING, "Failed testblock", e);
|
||||
}
|
||||
return false;
|
||||
return region;
|
||||
}
|
||||
}
|
||||
|
@ -1,67 +1,99 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.command.SWCommandUtils;
|
||||
import de.steamwar.command.TypeMapper;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.defaults.BukkitCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CommandTime extends BukkitCommand {
|
||||
public class CommandTime extends SWCommand {
|
||||
|
||||
private static List<String> tabCompletions = Arrays.asList("0", "6000", "12000", "18000");
|
||||
|
||||
public CommandTime() {
|
||||
super("time");
|
||||
this.description = "Ändert die Zeit auf der Spielwelt";
|
||||
this.usageMessage = "/time <Zeit 0=Morgen, 6000=Mittag, 18000=Mitternacht>";
|
||||
}
|
||||
|
||||
public boolean execute(CommandSender sender, String currentAlias, String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return false;
|
||||
} else if (args.length == 0) {
|
||||
sender.sendMessage(BauSystem.PREFIX + this.usageMessage);
|
||||
return false;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§etime §8<§7Zeit 0=Morgen§8, §76000=Mittag§8, §718000=Mitternacht§8> §8- §7Setzt die Zeit auf dem Bau");
|
||||
}
|
||||
|
||||
if (Welt.noPermission(player, Permission.world)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht die Zeit ändern");
|
||||
return false;
|
||||
}
|
||||
|
||||
int time;
|
||||
try {
|
||||
time = Integer.valueOf(args[0]);
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 24000 an");
|
||||
return false;
|
||||
@Register
|
||||
public void genericCommand(Player p, int time) {
|
||||
if (Welt.noPermission(p, Permission.world)) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht die Zeit ändern");
|
||||
return;
|
||||
}
|
||||
if (time < 0 || time > 24000) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 24000 an");
|
||||
return false;
|
||||
p.sendMessage(BauSystem.PREFIX + "§cBitte gib eine Zahl zwischen 0 und 24000 an");
|
||||
return;
|
||||
}
|
||||
Bukkit.getWorlds().get(0).setTime(time);
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p, Time time) {
|
||||
if (Welt.noPermission(p, Permission.world)) {
|
||||
p.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht die Zeit ändern");
|
||||
return;
|
||||
}
|
||||
Bukkit.getWorlds().get(0).setTime(time.getValue());
|
||||
}
|
||||
|
||||
@ClassMapper(value = int.class, local = true)
|
||||
public TypeMapper<Integer> doubleTypeMapper() {
|
||||
return SWCommandUtils.createMapper(s -> {
|
||||
try {
|
||||
return Integer.parseInt(s);
|
||||
} catch (NumberFormatException e) {
|
||||
return 0;
|
||||
}
|
||||
}, s -> tabCompletions);
|
||||
}
|
||||
|
||||
public enum Time {
|
||||
NIGHT(18000),
|
||||
DAY(6000),
|
||||
DAWN(0),
|
||||
SUNSET(12000),
|
||||
NACHT(18000),
|
||||
TAG(6000),
|
||||
MORGEN(0),
|
||||
ABEND(12000);
|
||||
|
||||
private int value;
|
||||
|
||||
private Time(int value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
Bukkit.getWorlds().get(0).setTime(time);
|
||||
return false;
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -24,30 +24,102 @@ import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.gui.GuiTraceShow;
|
||||
import de.steamwar.bausystem.tracer.record.RecordStateMachine;
|
||||
import de.steamwar.bausystem.tracer.show.ShowModeParameter;
|
||||
import de.steamwar.bausystem.tracer.show.StoredRecords;
|
||||
import de.steamwar.bausystem.tracer.show.ShowModeParameterType;
|
||||
import de.steamwar.bausystem.tracer.show.TraceShowManager;
|
||||
import de.steamwar.bausystem.tracer.show.mode.EntityShowMode;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CommandTrace implements CommandExecutor {
|
||||
public class CommandTrace extends SWCommand {
|
||||
|
||||
private void help(Player player) {
|
||||
player.sendMessage("§8/§etrace start §8- §7Startet die Aufnahme aller TNT-Positionen");
|
||||
player.sendMessage("§8/§etrace stop §8- §7Stoppt den TNT-Tracer");
|
||||
player.sendMessage("§8/§etrace toggleauto §8- §7Automatischer Aufnahmenstart");
|
||||
player.sendMessage("§8/§etrace show gui §8- §7Zeigt die Trace show gui");
|
||||
player.sendMessage("§8/§etrace show §8<§edefault§8|§eadvanced§8> §8<§e-water§8|§e-interpolate-xz§8|§e-interpolate-y§8> §8- §7Zeigt alle TNT-Positionen");
|
||||
player.sendMessage("§8/§etrace hide §8- §7Versteckt alle TNT-Positionen");
|
||||
player.sendMessage("§8/§etrace delete §8- §7Löscht alle TNT-Positionen");
|
||||
// player.sendMessage("§8/§etrace list §8<§7FRAME-ID§8> §8- §7Listet alle TNT auf");
|
||||
// player.sendMessage("§8/§etrace gui §8- §7Zeigt die Trace Oberfläche an");
|
||||
// player.sendMessage("§7Optionale Parameter mit §8<>§7, Benötigte Parameter mit §8[]");
|
||||
public CommandTrace() {
|
||||
super("trace");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§etrace start §8- §7Startet die Aufnahme aller TNT-Positionen");
|
||||
p.sendMessage("§8/§etrace stop §8- §7Stoppt den TNT-Tracer");
|
||||
p.sendMessage("§8/§etrace toggleauto §8- §7Automatischer Aufnahmenstart");
|
||||
p.sendMessage("§8/§etrace show gui §8- §7Zeigt die Trace show gui");
|
||||
p.sendMessage("§8/§etrace show §8<§e-water§8|§e-interpolate-xz§8|§e-interpolate-y§8> §8- §7Zeigt alle TNT-Positionen");
|
||||
p.sendMessage("§8/§etrace hide §8- §7Versteckt alle TNT-Positionen");
|
||||
p.sendMessage("§8/§etrace delete §8- §7Löscht alle TNT-Positionen");
|
||||
// p.sendMessage("§8/§etrace list §8<§7FRAME-ID§8> §8- §7Listet alle TNT auf");
|
||||
// p.sendMessage("§8/§etrace gui §8- §7Zeigt die Trace Oberfläche an");
|
||||
// p.sendMessage("§7Optionale Parameter mit §8<>§7, Benötigte Parameter mit §8[]");
|
||||
}
|
||||
|
||||
@Register({"start"})
|
||||
public void startCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
RecordStateMachine.commandStart();
|
||||
p.sendMessage(BauSystem.PREFIX + "§aTNT-Tracer gestartet");
|
||||
}
|
||||
|
||||
@Register({"stop"})
|
||||
public void stopCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
RecordStateMachine.commandStop();
|
||||
p.sendMessage(BauSystem.PREFIX + "§cTNT-Tracer gestoppt");
|
||||
}
|
||||
|
||||
@Register({"toggleauto"})
|
||||
public void toggleAutoCommand(Player p) {
|
||||
autoCommand(p);
|
||||
}
|
||||
|
||||
@Register({"auto"})
|
||||
public void autoCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
RecordStateMachine.commandAuto();
|
||||
p.sendMessage(BauSystem.PREFIX + RecordStateMachine.getRecordStatus().getAutoMessage());
|
||||
}
|
||||
|
||||
@Register({"clear"})
|
||||
public void clearCommand(Player p) {
|
||||
deleteCommand(p);
|
||||
}
|
||||
|
||||
@Register({"delete"})
|
||||
public void deleteCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
p.sendMessage(BauSystem.PREFIX + "§cAlle TNT-Positionen gelöscht");
|
||||
}
|
||||
|
||||
@Register({"show"})
|
||||
public void showCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
TraceShowManager.show(p, new EntityShowMode(p, new ShowModeParameter()));
|
||||
p.sendMessage(BauSystem.PREFIX + "§aAlle TNT-Positionen angezeigt");
|
||||
}
|
||||
|
||||
@Register({"show"})
|
||||
public void showCommand(Player p, ShowModeParameterType... showModeParameterTypes) {
|
||||
if (!permissionCheck(p)) return;
|
||||
ShowModeParameter showModeParameter = new ShowModeParameter();
|
||||
for (ShowModeParameterType showModeParameterType : showModeParameterTypes) {
|
||||
showModeParameterType.getShowModeParameterConsumer().accept(showModeParameter);
|
||||
}
|
||||
TraceShowManager.show(p, new EntityShowMode(p, new ShowModeParameter()));
|
||||
p.sendMessage(BauSystem.PREFIX + "§aAlle TNT-Positionen angezeigt");
|
||||
}
|
||||
|
||||
@Register({"show", "gui"})
|
||||
public void showGuiCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
GuiTraceShow.openGui(p);
|
||||
}
|
||||
|
||||
@Register({"hide"})
|
||||
public void hideCommand(Player p) {
|
||||
if (!permissionCheck(p)) return;
|
||||
TraceShowManager.hide(p);
|
||||
p.sendMessage(BauSystem.PREFIX + "§cAlle TNT-Positionen ausgeblendet");
|
||||
}
|
||||
|
||||
|
||||
private boolean permissionCheck(Player player) {
|
||||
if (Welt.noPermission(player, Permission.world)) {
|
||||
player.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht den TNT-Tracer nutzen");
|
||||
@ -55,61 +127,4 @@ public class CommandTrace implements CommandExecutor {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player)) return false;
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (args.length == 0) {
|
||||
help(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!permissionCheck(player)) return false;
|
||||
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "start":
|
||||
RecordStateMachine.commandStart();
|
||||
player.sendMessage(BauSystem.PREFIX + "§aTNT-Tracer gestartet");
|
||||
break;
|
||||
case "stop":
|
||||
RecordStateMachine.commandStop();
|
||||
player.sendMessage(BauSystem.PREFIX + "§cTNT-Tracer gestoppt");
|
||||
break;
|
||||
case "toggleauto":
|
||||
case "auto":
|
||||
RecordStateMachine.commandAuto();
|
||||
player.sendMessage(BauSystem.PREFIX + RecordStateMachine.getRecordStatus().getAutoMessage());
|
||||
break;
|
||||
case "clear":
|
||||
case "delete":
|
||||
StoredRecords.clear();
|
||||
player.sendMessage(BauSystem.PREFIX + "§cAlle TNT-Positionen gelöscht");
|
||||
break;
|
||||
case "show":
|
||||
if (args.length < 2) {
|
||||
TraceShowManager.show(player, new EntityShowMode(player, new ShowModeParameter()));
|
||||
} else {
|
||||
if (args[1].equalsIgnoreCase("gui")) {
|
||||
GuiTraceShow.openGui(player);
|
||||
return false;
|
||||
}
|
||||
ShowModeParameter showModeParameter = ShowModeParameter.parseArguments(args, 1);
|
||||
TraceShowManager.show(player, new EntityShowMode(player, showModeParameter));
|
||||
}
|
||||
player.sendMessage(BauSystem.PREFIX + "§aAlle TNT-Positionen angezeigt");
|
||||
break;
|
||||
case "hide":
|
||||
TraceShowManager.hide(player);
|
||||
player.sendMessage(BauSystem.PREFIX + "§cAlle TNT-Positionen ausgeblendet");
|
||||
break;
|
||||
case "list":
|
||||
case "gui":
|
||||
break;
|
||||
default:
|
||||
help(player);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -1,81 +0,0 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.SWUtils;
|
||||
import de.steamwar.bausystem.tracer.record.RecordStateMachine;
|
||||
import de.steamwar.bausystem.tracer.record.RecordStatus;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.function.BiPredicate;
|
||||
|
||||
public class CommandTraceTabCompleter implements TabCompleter {
|
||||
|
||||
private static List<TabComplete> tabCompletes = new ArrayList<>();
|
||||
|
||||
static {
|
||||
tabCompletes.add(new TabComplete((player, args) -> args.length == 1 && (RecordStateMachine.getRecordStatus() == RecordStatus.IDLE || RecordStateMachine.getRecordStatus() == RecordStatus.IDLE_AUTO), "start"));
|
||||
tabCompletes.add(new TabComplete((player, args) -> args.length == 1 && (RecordStateMachine.getRecordStatus() != RecordStatus.IDLE && RecordStateMachine.getRecordStatus() != RecordStatus.IDLE_AUTO), "stop"));
|
||||
tabCompletes.add(new TabComplete((player, args) -> args.length == 1, "toggleauto", "auto", "show", "hide", "delete", "clear"));
|
||||
tabCompletes.add(new TabComplete((player, args) -> args.length == 2 && args[0].equalsIgnoreCase("show"), "gui", "-interpolate-xz", "-interpolate-y", "-water", "-advanced", "advanced"));
|
||||
tabCompletes.add(new TabComplete((player, args) -> args.length > 2 && args[0].equalsIgnoreCase("show") && !args[1].equalsIgnoreCase("gui"), "-interpolate-xz", "-interpolate-y", "-water", "-advanced"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player)) return new ArrayList<>();
|
||||
return tracerTabComplete((Player) sender, args);
|
||||
}
|
||||
|
||||
private List<String> tracerTabComplete(Player player, java.lang.String[] args) {
|
||||
List<java.lang.String> tabComplete = new ArrayList<>();
|
||||
for (TabComplete tab : tabCompletes) {
|
||||
if (tab.test(player, args)) tabComplete.addAll(Arrays.asList(tab.getTabCompletes()));
|
||||
}
|
||||
return SWUtils.manageList(tabComplete, args);
|
||||
}
|
||||
|
||||
private static class TabComplete {
|
||||
|
||||
private BiPredicate<Player, String[]> function;
|
||||
private String[] tabCompletes;
|
||||
|
||||
private TabComplete(BiPredicate<Player, String[]> function, String... tabCompletes) {
|
||||
this.function = function;
|
||||
this.tabCompletes = tabCompletes;
|
||||
}
|
||||
|
||||
public boolean test(Player player, String[] args) {
|
||||
return function.test(player, args);
|
||||
}
|
||||
|
||||
public String[] getTabCompletes() {
|
||||
return tabCompletes;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.command.SWCommand;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
|
||||
public class CommandWorldSpawn extends SWCommand {
|
||||
|
||||
private World world = Bukkit.getWorlds().get(0);
|
||||
|
||||
public CommandWorldSpawn() {
|
||||
super("worldspawn");
|
||||
}
|
||||
|
||||
@Register(help = true)
|
||||
public void genericHelp(Player p, String... args) {
|
||||
p.sendMessage("§8/§eworldspawn §8- §7Teleportiere dich zum Spawn");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void genericCommand(Player p) {
|
||||
p.teleport(world.getSpawnLocation(), PlayerTeleportEvent.TeleportCause.COMMAND);
|
||||
}
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
* /
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.Permission;
|
||||
import de.steamwar.bausystem.world.Region;
|
||||
import de.steamwar.bausystem.world.Welt;
|
||||
import net.md_5.bungee.api.ChatMessageType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
public abstract class RegionToggleCommand implements CommandExecutor, Listener {
|
||||
|
||||
public RegionToggleCommand() {
|
||||
Bukkit.getPluginManager().registerEvents(this, BauSystem.getPlugin());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (Welt.noPermission(player, Permission.world)) {
|
||||
player.sendMessage(BauSystem.PREFIX + getNoPermMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
Region region = Region.getRegion(player.getLocation());
|
||||
if (toggle(region)) {
|
||||
actionBar(region, getEnableMessage());
|
||||
} else {
|
||||
actionBar(region, getDisableMessage());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void actionBar(Region region, String s) {
|
||||
if (Region.GlobalRegion.isGlobalRegion(region)) {
|
||||
Bukkit.getOnlinePlayers().stream().filter(player -> Region.getRegion(player.getLocation()) == null).forEach(player -> player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(s)));
|
||||
} else {
|
||||
Bukkit.getOnlinePlayers().stream().filter(player -> region.inRegion(player.getLocation())).forEach(player -> player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(s)));
|
||||
}
|
||||
}
|
||||
|
||||
abstract String getNoPermMessage();
|
||||
|
||||
abstract String getEnableMessage();
|
||||
|
||||
abstract String getDisableMessage();
|
||||
|
||||
/**
|
||||
* {@code true} for {@link #getEnableMessage()}, {@code false} for {@link #getDisableMessage()}
|
||||
*/
|
||||
abstract boolean toggle(Region region);
|
||||
|
||||
}
|
37
BauSystem_Main/src/de/steamwar/bausystem/commands/RegionUtils.java
Normale Datei
37
BauSystem_Main/src/de/steamwar/bausystem/commands/RegionUtils.java
Normale Datei
@ -0,0 +1,37 @@
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.commands;
|
||||
|
||||
import de.steamwar.bausystem.world.Region;
|
||||
import net.md_5.bungee.api.ChatMessageType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
public class RegionUtils {
|
||||
|
||||
public static void actionBar(Region region, String s) {
|
||||
if (Region.GlobalRegion.isGlobalRegion(region)) {
|
||||
Bukkit.getOnlinePlayers().stream().filter(player -> Region.getRegion(player.getLocation()) == null).forEach(player -> player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(s)));
|
||||
} else {
|
||||
Bukkit.getOnlinePlayers().stream().filter(player -> region.inRegion(player.getLocation())).forEach(player -> player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(s)));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -54,49 +54,4 @@ public class ShowModeParameter {
|
||||
public void setInterpolate_XZ(boolean interpolate_XZ) {
|
||||
this.interpolate_XZ = interpolate_XZ;
|
||||
}
|
||||
|
||||
public boolean isAdvanced() {
|
||||
return interpolate_Y || interpolate_XZ;
|
||||
}
|
||||
|
||||
public static ShowModeParameter parseArguments(String[] args, int index) {
|
||||
ShowModeParameter showModeParameter = new ShowModeParameter();
|
||||
for (int i = index; i < args.length; i++) {
|
||||
switch (args[i].toLowerCase()) {
|
||||
case "-water":
|
||||
showModeParameter.water = true;
|
||||
break;
|
||||
case "-interpolatey":
|
||||
case "-interpolate-y":
|
||||
case "-interpolate_y":
|
||||
case "-y":
|
||||
showModeParameter.interpolate_Y = true;
|
||||
break;
|
||||
case "-interpolatex":
|
||||
case "-interpolate-x":
|
||||
case "-interpolate_x":
|
||||
case "-x":
|
||||
case "-interpolatez":
|
||||
case "-interpolate-z":
|
||||
case "-interpolate_z":
|
||||
case "-z":
|
||||
case "-interpolatexz":
|
||||
case "-interpolate-xz":
|
||||
case "-interpolate_xz":
|
||||
case "-xz":
|
||||
showModeParameter.interpolate_XZ = true;
|
||||
break;
|
||||
case "advanced":
|
||||
case "-advanced":
|
||||
case "-a":
|
||||
showModeParameter.interpolate_Y = true;
|
||||
showModeParameter.interpolate_XZ = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return showModeParameter;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.tracer.show;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public enum ShowModeParameterType {
|
||||
|
||||
WATER(showModeParameter -> showModeParameter.setWater(true)),
|
||||
INTERPOLATE_Y(showModeParameter -> showModeParameter.setInterpolate_Y(true)),
|
||||
INTERPOLATE_XZ(showModeParameter -> showModeParameter.setInterpolate_XZ(true)),
|
||||
ADVANCED(showModeParameter -> {
|
||||
showModeParameter.setInterpolate_Y(true);
|
||||
showModeParameter.setInterpolate_XZ(true);
|
||||
});
|
||||
|
||||
private final Consumer<ShowModeParameter> showModeParameterConsumer;
|
||||
|
||||
public Consumer<ShowModeParameter> getShowModeParameterConsumer() {
|
||||
return showModeParameterConsumer;
|
||||
}
|
||||
|
||||
ShowModeParameterType(Consumer<ShowModeParameter> showModeParameterConsumer) {
|
||||
this.showModeParameterConsumer = showModeParameterConsumer;
|
||||
}
|
||||
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
name: BauSystem
|
||||
authors: [Lixfel, YoyoNow, Chaoscaot]
|
||||
authors: [Lixfel, YoyoNow, Chaoscaot, Zeanon]
|
||||
version: "1.0"
|
||||
depend: [WorldEdit, SpigotCore, ProtocolLib]
|
||||
load: POSTWORLD
|
||||
@ -9,36 +9,3 @@ website: "https://steamwar.de"
|
||||
description: "So unseriös wie wir sind: BauSystem nur besser."
|
||||
|
||||
commands:
|
||||
debugstick:
|
||||
tnt:
|
||||
fire:
|
||||
trace:
|
||||
tpslimit:
|
||||
testblock:
|
||||
aliases: tb
|
||||
reset:
|
||||
bau:
|
||||
aliases:
|
||||
- gs
|
||||
- b
|
||||
protect:
|
||||
bauinfo:
|
||||
speed:
|
||||
skull:
|
||||
freeze:
|
||||
aliases: stoplag
|
||||
loader:
|
||||
nightvision:
|
||||
aliases: nv
|
||||
watervision:
|
||||
aliases: wv
|
||||
lockschem:
|
||||
detonator:
|
||||
aliases: dt
|
||||
script:
|
||||
scriptvars:
|
||||
simulator:
|
||||
aliases: sim
|
||||
gui:
|
||||
redstonetester:
|
||||
aliases: rt
|
In neuem Issue referenzieren
Einen Benutzer sperren