diff --git a/src/main/java/de/marc/folterkammer/FKLeave.java b/src/main/java/de/marc/folterkammer/FKLeave.java new file mode 100644 index 0000000..aa4c87e --- /dev/null +++ b/src/main/java/de/marc/folterkammer/FKLeave.java @@ -0,0 +1,47 @@ +package de.marc.folterkammer; + +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.entity.Player; + +public class FKLeave implements CommandExecutor { + private folterplugin plugin; + + public FKLeave(folterplugin folterplugin) { + this.plugin = folterplugin; + } + + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + Player player = (Player) sender; + + if (!player.hasPermission("folter.tour")) { + player.sendMessage("§cDas darfst du nicht!"); + return true; + } + + if (!player.getGameMode().equals(GameMode.SPECTATOR)) { + player.sendMessage("§cWill da etwa jemand heimlich verschwinden??"); + return true; + } + + ConfigurationSection spawn = plugin.getConfig().getConfigurationSection("positions.spawn"); + + + World world = Bukkit.getWorld(spawn.getString("world")); + int x = spawn.getInt("x"); + int y = spawn.getInt("y"); + int z = spawn.getInt("z"); + + Location loc = new Location(world, x, y, z); + player.teleport(loc); + player.setGameMode(GameMode.SURVIVAL); + + return true; + } +} diff --git a/src/main/java/de/marc/folterkammer/folterplugin.java b/src/main/java/de/marc/folterkammer/folterplugin.java index f7c1171..7458634 100644 --- a/src/main/java/de/marc/folterkammer/folterplugin.java +++ b/src/main/java/de/marc/folterkammer/folterplugin.java @@ -11,14 +11,14 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.inventory.ItemStack; -import org.bukkit.command.TabCompleter; + import java.util.ArrayList; import java.util.List; public final class folterplugin extends JavaPlugin { private Boolean enabled = true; + private String old_group; @Override public void onEnable() { @@ -27,6 +27,7 @@ public final class folterplugin extends JavaPlugin { // Plugin startup logic getCommand("folterkammer").setExecutor(this); + getCommand("fkleave").setExecutor(new FKLeave(this)); getLogger().info("Folterkammer Plugin geladen!"); } @@ -52,7 +53,7 @@ public final class folterplugin extends JavaPlugin { Player player = (Player) sender; if (!enabled) { - if (mode != "enable") { + if (!mode.equals("enable")) { player.sendMessage("§cFolterkammer Befehle deaktiviert!"); return true; } @@ -118,7 +119,9 @@ public final class folterplugin extends JavaPlugin { Location folter_spawn_loc = new Location(world, x, y, z); target.teleport(folter_spawn_loc); - this.enabled = false; + Bukkit.dispatchCommand("lp user " + target.getName() + " ") + + player.sendMessage("§aFolterkammer Befehle deaktiviert und " + player.getName() + " wurde in die Folterkammer teleportiert!"); break; @@ -174,22 +177,24 @@ public final class folterplugin extends JavaPlugin { public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { List completions = new ArrayList<>(); - if (args.length == 1) { - completions.add("player"); - completions.add("key"); - completions.add("enter"); - completions.add("exit"); + if (!label.equals("fkleave")) { + if (args.length == 1) { + completions.add("player"); + completions.add("key"); + completions.add("enter"); + completions.add("exit"); - if (sender.hasPermission("folter.admin")) { - completions.add("enable"); - completions.add("disable"); - completions.add("admin_key"); + if (sender.hasPermission("folter.admin")) { + completions.add("enable"); + completions.add("disable"); + completions.add("admin_key"); + } } - } - if (args.length == 2) { - for (Player p : Bukkit.getOnlinePlayers()) { - completions.add(p.getName()); + if (args.length == 2) { + for (Player p : Bukkit.getOnlinePlayers()) { + completions.add(p.getName()); + } } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index d96880d..839960d 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -11,6 +11,6 @@ positions: z: 7 spawn: world: world - x: 500 - y: 200 - z: 494 \ No newline at end of file + x: 100 + y: 0 + z: 100 \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index a350a78..5632985 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -6,11 +6,17 @@ api-version: '1.21' commands: folterkammer: description: Folterkammer Befehl + aliases: [fk, folter] + fkleave: + description: Verlasse die Tour durch die Folterkammer permissions: folter.use: description: Berechtigung für Folterer default: op folter.admin: - description: Berechtigung für Admins - default: op \ No newline at end of file + description: Berechtigung für Admins + default: op + folter.tour: + description: Darf die Tour durch die Folterkammer verlassen + default: not op \ No newline at end of file