From 9386e4af174118faa4bb6dcd2e05d804d6af49e5 Mon Sep 17 00:00:00 2001 From: Zoey Date: Wed, 17 Jan 2024 14:48:36 +0100 Subject: [PATCH 1/6] allow to throw players and lint Signed-off-by: Zoey --- .github/delete-merged-branch-config.yml | 4 +- .github/workflows/build.yml | 6 +- .github/workflows/codeql.yml | 4 +- .imgbotconfig | 8 +- README.md | 12 +- languages/cz.yml | 2 +- renovate.json | 4 +- .../EntityDamageByEntityListener.java | 23 + .../Listener/EntityDamageListener.java | 22 + .../Listener/EntityInteractListener.java | 30 -- .../stacker/Listener/JoinListener.java | 18 +- .../Listener/PlayerInteractListener.java | 30 ++ .../stacker/Listener/PlayerMoveListener.java | 28 ++ .../stacker/Listener/QuitListener.java | 14 +- .../stacker/Listener/ShiftListener.java | 15 +- .../de/zoeyvid/stacker/StackerCommand.java | 258 +++++----- .../java/de/zoeyvid/stacker/loadConfig.java | 192 ++++---- .../java/de/zoeyvid/stacker/loadLanguage.java | 448 +++++++++--------- src/main/java/de/zoeyvid/stacker/main.java | 247 +++++----- src/main/resources/config.yml | 16 +- src/main/resources/plugin.yml | 2 +- 21 files changed, 744 insertions(+), 639 deletions(-) create mode 100644 src/main/java/de/zoeyvid/stacker/Listener/EntityDamageByEntityListener.java create mode 100644 src/main/java/de/zoeyvid/stacker/Listener/EntityDamageListener.java delete mode 100644 src/main/java/de/zoeyvid/stacker/Listener/EntityInteractListener.java create mode 100644 src/main/java/de/zoeyvid/stacker/Listener/PlayerInteractListener.java create mode 100644 src/main/java/de/zoeyvid/stacker/Listener/PlayerMoveListener.java diff --git a/.github/delete-merged-branch-config.yml b/.github/delete-merged-branch-config.yml index 1231e26f..9a1e31c1 100644 --- a/.github/delete-merged-branch-config.yml +++ b/.github/delete-merged-branch-config.yml @@ -1,5 +1,5 @@ -exclude: +exclude: - main - stable - develop -delete_closed_pr: true \ No newline at end of file +delete_closed_pr: true diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f8a1f865..a90a9694 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,11 +19,11 @@ jobs: - name: Change config.yml if stable if: github.ref_name == 'stable' && github.event_name != 'pull_request' run: | - sed -i "s|updateChannel:.*|updateChannel: \"stable\"|g" src/main/resources/config.yml + sed -i "s|updateChannel:.*|updateChannel: stable|g" src/main/resources/config.yml - name: Change config.yml if dev if: github.ref_name == 'dev' && github.event_name != 'pull_request' run: | - sed -i "s|updateChannel:.*|updateChannel: \"dev\"|g" src/main/resources/config.yml + sed -i "s|updateChannel:.*|updateChannel: dev|g" src/main/resources/config.yml - name: Change config.yml if stable/dev if: github.ref_name == 'stable' || github.ref_name == 'dev' run: | @@ -60,7 +60,7 @@ jobs: modrinth-token: ${{ secrets.MODRINTH_TOKEN }} curseforge-id: 507466 curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }} - github-token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} - uses: Kir-Antipov/mc-publish@v3.3 if: github.ref_name == 'dev' with: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index f021ee89..604c17ab 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -5,7 +5,7 @@ on: pull_request: branches: ["main"] schedule: - - cron: '21 3 * * 6' + - cron: "21 3 * * 6" jobs: analyze: name: Analyze @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - language: ['java'] + language: ["java"] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.imgbotconfig b/.imgbotconfig index 94c5b106..9b7efd15 100644 --- a/.imgbotconfig +++ b/.imgbotconfig @@ -1,6 +1,6 @@ { - "schedule": "daily", - "aggressiveCompression": "true", - "compressWiki": "true", - "minKBReduced": 0 + "schedule": "daily", + "aggressiveCompression": "true", + "compressWiki": "true", + "minKBReduced": 0 } diff --git a/README.md b/README.md index 7068fdba..fca4cefe 100644 --- a/README.md +++ b/README.md @@ -35,16 +35,16 @@ This plugin works with the Minecraft versions 1.11-1.20 This Minecraft versions a currently supported -| Version | Supported | -| ---------------- | ----------| -| => 1.11.2 | ✅ | -| = 1.11/1.11.1 | ❔ | -| =< 1.10.2 | ❌ | +| Version | Supported | +| ------------- | --------- | +| => 1.11.2 | ✅ | +| = 1.11/1.11.1 | ❔ | +| =< 1.10.2 | ❌ | ## Reporting a Bug or suggest a feature Bugs and feature ideas can be submitted in the issues! - + ## Contact us [Mastodon](https://social.zoeyvid.de/@ZoeyVid)
diff --git a/languages/cz.yml b/languages/cz.yml index fda088c1..285f1d8f 100644 --- a/languages/cz.yml +++ b/languages/cz.yml @@ -19,4 +19,4 @@ leaveImmuneOther: "%player% již není imunní!" joinImmuneOther: "%player% je nyní imunní!" leaveImmuneSelf: "Již nejsi imunní!" joinImmuneSelf: "Teď jsi imunní!" -# Petr Šanc 2023 \ No newline at end of file +# Petr Šanc 2023 diff --git a/renovate.json b/renovate.json index 63108df2..4bc5bd07 100644 --- a/renovate.json +++ b/renovate.json @@ -1,7 +1,5 @@ { - "extends": [ - "config:base" - ], + "extends": ["config:base"], "baseBranches": [], "includeForks": true, "automerge": false, diff --git a/src/main/java/de/zoeyvid/stacker/Listener/EntityDamageByEntityListener.java b/src/main/java/de/zoeyvid/stacker/Listener/EntityDamageByEntityListener.java new file mode 100644 index 00000000..25b98ed7 --- /dev/null +++ b/src/main/java/de/zoeyvid/stacker/Listener/EntityDamageByEntityListener.java @@ -0,0 +1,23 @@ +package de.zoeyvid.stacker.Listener; + +import de.zoeyvid.stacker.loadConfig; +import de.zoeyvid.stacker.main; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByEntityEvent; + +public class EntityDamageByEntityListener implements Listener { + + @EventHandler + public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { + if (!(event.getDamager() instanceof Player)) return; + Player player = (Player) event.getDamager(); + if (!player.isEmpty() && loadConfig.throwable()) { + event.setCancelled(true); + Player passenger = (Player) player.getPassengers().get(0); + player.eject(); + main.getVelocity().put(passenger, player.getEyeLocation().getDirection().setY(1)); + } + } +} diff --git a/src/main/java/de/zoeyvid/stacker/Listener/EntityDamageListener.java b/src/main/java/de/zoeyvid/stacker/Listener/EntityDamageListener.java new file mode 100644 index 00000000..4cb04a6b --- /dev/null +++ b/src/main/java/de/zoeyvid/stacker/Listener/EntityDamageListener.java @@ -0,0 +1,22 @@ +package de.zoeyvid.stacker.Listener; + +import de.zoeyvid.stacker.loadConfig; +import de.zoeyvid.stacker.main; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; + +public class EntityDamageListener implements Listener { + + @EventHandler + public void onEntityDamage(EntityDamageEvent event) { + if (loadConfig.throwfalldamage()) return; + if (!(event.getEntity() instanceof Player)) return; + Player player = (Player) event.getEntity(); + if (main.getThrown().contains(player) && event.getCause() == DamageCause.FALL) { + event.setCancelled(true); + } + } +} diff --git a/src/main/java/de/zoeyvid/stacker/Listener/EntityInteractListener.java b/src/main/java/de/zoeyvid/stacker/Listener/EntityInteractListener.java deleted file mode 100644 index 45e94b95..00000000 --- a/src/main/java/de/zoeyvid/stacker/Listener/EntityInteractListener.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.zoeyvid.stacker.Listener; - -import de.zoeyvid.stacker.loadConfig; -import de.zoeyvid.stacker.loadLanguage; -import de.zoeyvid.stacker.main; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerInteractEntityEvent; - -public class EntityInteractListener implements Listener { - - @EventHandler - public void onEntityInteract(PlayerInteractEntityEvent event) { - Player player = event.getPlayer(); - if (event.getRightClicked() instanceof Player && main.getStackmode().contains(player)) { - Player target = (Player) event.getRightClicked(); - if (main.getDisabled().contains(target)) { - if (loadConfig.showMessage()) { - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.dontStack().replace("%player%", target.getName())); - } - } else { - if (player.getWorld().getPlayers().contains(target)) { - player.addPassenger(target); - } - } - } - } -} diff --git a/src/main/java/de/zoeyvid/stacker/Listener/JoinListener.java b/src/main/java/de/zoeyvid/stacker/Listener/JoinListener.java index 5f5f89ec..52820a47 100644 --- a/src/main/java/de/zoeyvid/stacker/Listener/JoinListener.java +++ b/src/main/java/de/zoeyvid/stacker/Listener/JoinListener.java @@ -9,14 +9,14 @@ public class JoinListener implements Listener { - @EventHandler - public void onJoin(PlayerJoinEvent event) { - Player player = event.getPlayer(); - if (!loadConfig.saveState()) { - main.getDisabled().remove(player); - main.getStackmode().remove(player); - } - if (loadConfig.defaultImmune()) main.getDisabled().add(player); - if (loadConfig.defaultON()) main.getStackmode().add(player); + @EventHandler + public void onJoin(PlayerJoinEvent event) { + Player player = event.getPlayer(); + if (!loadConfig.saveState()) { + main.getDisabled().remove(player); + main.getStackmode().remove(player); } + if (loadConfig.defaultImmune()) main.getDisabled().add(player); + if (loadConfig.defaultON()) main.getStackmode().add(player); + } } diff --git a/src/main/java/de/zoeyvid/stacker/Listener/PlayerInteractListener.java b/src/main/java/de/zoeyvid/stacker/Listener/PlayerInteractListener.java new file mode 100644 index 00000000..d4f3b4b3 --- /dev/null +++ b/src/main/java/de/zoeyvid/stacker/Listener/PlayerInteractListener.java @@ -0,0 +1,30 @@ +package de.zoeyvid.stacker.Listener; + +import de.zoeyvid.stacker.loadConfig; +import de.zoeyvid.stacker.loadLanguage; +import de.zoeyvid.stacker.main; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerInteractEntityEvent; + +public class PlayerInteractListener implements Listener { + + @EventHandler + public void onEntityInteract(PlayerInteractEntityEvent event) { + Player player = event.getPlayer(); + if (event.getRightClicked() instanceof Player && main.getStackmode().contains(player)) { + Player target = (Player) event.getRightClicked(); + if (main.getDisabled().contains(target)) { + if (loadConfig.showMessage()) { + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.dontStack().replace("%player%", target.getName())); + } + } else { + if (player.getWorld().getPlayers().contains(target)) { + player.addPassenger(target); + } + } + } + } +} diff --git a/src/main/java/de/zoeyvid/stacker/Listener/PlayerMoveListener.java b/src/main/java/de/zoeyvid/stacker/Listener/PlayerMoveListener.java new file mode 100644 index 00000000..7d67dccd --- /dev/null +++ b/src/main/java/de/zoeyvid/stacker/Listener/PlayerMoveListener.java @@ -0,0 +1,28 @@ +package de.zoeyvid.stacker.Listener; + +import de.zoeyvid.stacker.main; +import org.bukkit.Material; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerMoveEvent; + +public class PlayerMoveListener implements Listener { + + @EventHandler + public void onPlayerMove(PlayerMoveEvent event) { + Player player = event.getPlayer(); + if (main.getVelocity().containsKey(player)) { + player.setVelocity(main.getVelocity().get(player)); + main.getThrown().add(player); + main.getVelocity().remove(player); + } + if (main.getVelocity().containsKey(player) && player.getLocation().getBlock().getRelative(BlockFace.DOWN).getType() != Material.AIR && player.getFallDistance() == 0) { + main.getVelocity().remove(player); + } + if (main.getThrown().contains(player) && player.getLocation().getBlock().getRelative(BlockFace.DOWN).getType() != Material.AIR && player.getFallDistance() == 0) { + main.getThrown().remove(player); + } + } +} diff --git a/src/main/java/de/zoeyvid/stacker/Listener/QuitListener.java b/src/main/java/de/zoeyvid/stacker/Listener/QuitListener.java index 8b50897c..b7eb93d4 100644 --- a/src/main/java/de/zoeyvid/stacker/Listener/QuitListener.java +++ b/src/main/java/de/zoeyvid/stacker/Listener/QuitListener.java @@ -9,12 +9,12 @@ public class QuitListener implements Listener { - @EventHandler - public void onQuit(PlayerQuitEvent event) { - Player player = event.getPlayer(); - if (!loadConfig.saveState()) { - main.getDisabled().remove(player); - main.getStackmode().remove(player); - } + @EventHandler + public void onQuit(PlayerQuitEvent event) { + Player player = event.getPlayer(); + if (!loadConfig.saveState()) { + main.getDisabled().remove(player); + main.getStackmode().remove(player); } + } } diff --git a/src/main/java/de/zoeyvid/stacker/Listener/ShiftListener.java b/src/main/java/de/zoeyvid/stacker/Listener/ShiftListener.java index 8d46dd10..09133d49 100644 --- a/src/main/java/de/zoeyvid/stacker/Listener/ShiftListener.java +++ b/src/main/java/de/zoeyvid/stacker/Listener/ShiftListener.java @@ -7,12 +7,11 @@ public class ShiftListener implements Listener { - @EventHandler - public void onShift(PlayerToggleSneakEvent event) { - Player player = event.getPlayer(); - if (!player.getPassengers().equals(null)) { - player.eject(); - } + @EventHandler + public void onShift(PlayerToggleSneakEvent event) { + Player player = event.getPlayer(); + if (!player.isEmpty()) { + player.eject(); } - -} \ No newline at end of file + } +} diff --git a/src/main/java/de/zoeyvid/stacker/StackerCommand.java b/src/main/java/de/zoeyvid/stacker/StackerCommand.java index 96537925..fc22b2b9 100644 --- a/src/main/java/de/zoeyvid/stacker/StackerCommand.java +++ b/src/main/java/de/zoeyvid/stacker/StackerCommand.java @@ -1,5 +1,7 @@ package de.zoeyvid.stacker; +import java.util.ArrayList; +import java.util.List; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; @@ -8,144 +10,140 @@ import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; -import java.util.ArrayList; -import java.util.List; - public class StackerCommand implements CommandExecutor, TabCompleter { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (!(sender instanceof Player)) { - Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.DARK_RED + "This Command can only execute as a player!"); - return true; + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!(sender instanceof Player)) { + Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.DARK_RED + "This Command can only execute as a player!"); + return true; + } + Player player = (Player) sender; + if (args.length == 0) { + if (player.hasPermission("stacker.immune.self")) { + if (main.getDisabled().contains(player)) { + main.getDisabled().remove(player); + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveImmune()); + } else { + main.getDisabled().add(player); + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinImmune()); + } + } else { + player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.immune.self")); + } + return true; + } else if (args.length == 1) { + if (args[0].equalsIgnoreCase("enable") || args[0].equalsIgnoreCase("disable") || args[0].equalsIgnoreCase("toggle")) { + if (player.hasPermission("stacker.use.self")) { + if (main.getStackmode().contains(player)) { + main.getStackmode().remove(player); + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveStackmode()); + } else { + main.getStackmode().add(player); + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinStackmode()); + } + } else { + player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.use.self")); } - Player player = (Player) sender; - if (args.length == 0) { - if (player.hasPermission("stacker.use.self")) { - if (main.getStackmode().contains(player)) { - main.getStackmode().remove(player); - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveStackmode()); - return true; - } else { - main.getStackmode().add(player); - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinStackmode()); - return true; - } + return true; + } else if (args[0].equalsIgnoreCase("help")) { + if (player.hasPermission("stacker.help")) { + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.helpTitle()); + player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker " + ChatColor.WHITE + loadLanguage.helpNormal()); + player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker toggle/enable/disable " + ChatColor.WHITE + loadLanguage.helpToggle()); + player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker immune " + ChatColor.WHITE + loadLanguage.helpImmune()); + player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker help" + ChatColor.WHITE + loadLanguage.helpHelp()); + } else { + player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.help")); + } + return true; + } else if (args[0].equalsIgnoreCase("immune")) { + if (player.hasPermission("stacker.immune.self")) { + if (main.getDisabled().contains(player)) { + main.getDisabled().remove(player); + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveImmune()); + } else { + main.getDisabled().add(player); + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinImmune()); + } + } else { + player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.immune.self")); + } + return true; + } + } else { + if (args[0].equalsIgnoreCase("enable") || args[0].equalsIgnoreCase("disable") || args[0].equalsIgnoreCase("toggle")) { + if (player.hasPermission("stacker.use.other")) { + Player target = Bukkit.getPlayerExact(args[1]); + if (target == null) { + player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.errorPlayerOnline()); + } else { + if (main.getStackmode().contains(target)) { + main.getStackmode().remove(target); + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveStackmodeOther().replace("%player%", target.getName())); + if (loadConfig.sendMessage()) { + target.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveStackmodeSelf()); + } } else { - player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.use.self")); - return true; - } - } else if (args.length == 1) { - if (args[0].equalsIgnoreCase("enable") || args[0].equalsIgnoreCase("disable") || args[0].equalsIgnoreCase("toggle")) { - if (player.hasPermission("stacker.use.self")) { - if (main.getStackmode().contains(player)) { - main.getStackmode().remove(player); - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveStackmode()); - } else { - main.getStackmode().add(player); - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinStackmode()); - } - } else { - player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.use.self")); - } - return true; - } else if (args[0].equalsIgnoreCase("help")) { - if (player.hasPermission("stacker.help")) { - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.helpTitle()); - player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker " + ChatColor.WHITE + loadLanguage.helpNormal()); - player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker toggle/enable/disable " + ChatColor.WHITE + loadLanguage.helpToggle()); - player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker immune " + ChatColor.WHITE + loadLanguage.helpImmune()); - player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker help" + ChatColor.WHITE + loadLanguage.helpHelp()); - } else { - player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.help")); - } - return true; - } else if (args[0].equalsIgnoreCase("immune")) { - if (player.hasPermission("stacker.immune.self")) { - if (main.getDisabled().contains(player)) { - main.getDisabled().remove(player); - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveImmune()); - } else { - main.getDisabled().add(player); - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinImmune()); - } - } else { - player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.immune.self")); - } - return true; + main.getStackmode().add(target); + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinStackmodeOther().replace("%player%", target.getName())); + if (loadConfig.sendMessage()) { + target.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinStackmodeSelf()); + } } + } } else { - if (args[0].equalsIgnoreCase("enable") || args[0].equalsIgnoreCase("disable") || args[0].equalsIgnoreCase("toggle")) { - if (player.hasPermission("stacker.use.other")) { - Player target = Bukkit.getPlayerExact(args[1]); - if (target == null) { - player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.errorPlayerOnline()); - } else { - if (main.getStackmode().contains(target)) { - main.getStackmode().remove(target); - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveStackmodeOther().replace("%player%", target.getName())); - if (loadConfig.sendMessage()) { - target.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveStackmodeSelf()); - } - } else { - main.getStackmode().add(target); - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinStackmodeOther().replace("%player%", target.getName())); - if (loadConfig.sendMessage()) { - target.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinStackmodeSelf()); - } - } - } - } else { - player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.use.other")); - } - return true; - } else if (args[0].equalsIgnoreCase("immune")) { - Player target = Bukkit.getPlayerExact(args[1]); - if (target == null) { - player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.errorPlayerOnline()); - } else { - if (player.hasPermission("stacker.immune.other")) { - if (main.getDisabled().contains(target)) { - main.getDisabled().remove(target); - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveImmuneOther().replace("%player%", target.getName())); - if (loadConfig.sendMessage()) { - target.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveImmuneSelf()); - } - } else { - main.getDisabled().add(target); - player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinImmuneOther().replace("%player%", target.getName())); - if (loadConfig.sendMessage()) { - target.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinImmuneSelf()); - } - } - } else { - player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.immune.other")); - } - } - return true; + player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.use.other")); + } + return true; + } else if (args[0].equalsIgnoreCase("immune")) { + Player target = Bukkit.getPlayerExact(args[1]); + if (target == null) { + player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.errorPlayerOnline()); + } else { + if (player.hasPermission("stacker.immune.other")) { + if (main.getDisabled().contains(target)) { + main.getDisabled().remove(target); + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveImmuneOther().replace("%player%", target.getName())); + if (loadConfig.sendMessage()) { + target.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.leaveImmuneSelf()); + } + } else { + main.getDisabled().add(target); + player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinImmuneOther().replace("%player%", target.getName())); + if (loadConfig.sendMessage()) { + target.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.joinImmuneSelf()); + } } + } else { + player.sendMessage(main.getPrefix() + ChatColor.DARK_RED + loadLanguage.permissionError().replace("%permission%", "stacker.immune.other")); + } } - return false; + return true; + } } + return false; + } - @Override - public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1) { - List arguments = new ArrayList<>(); - arguments.add("toggle"); - arguments.add("enable"); - arguments.add("disable"); - arguments.add("immune"); - arguments.add("help"); - return arguments; - } else if (args.length == 2) { - List players = new ArrayList<>(); - Player[] player = new Player[Bukkit.getServer().getOnlinePlayers().size()]; - Bukkit.getServer().getOnlinePlayers().toArray(player); - for (int i = 0; i < player.length; i++) { - players.add(player[i].getName()); - } - return players; - } - return null; + @Override + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + if (args.length == 1) { + List arguments = new ArrayList<>(); + arguments.add("toggle"); + arguments.add("enable"); + arguments.add("disable"); + arguments.add("immune"); + arguments.add("help"); + return arguments; + } else if (args.length == 2) { + List players = new ArrayList<>(); + Player[] player = new Player[Bukkit.getServer().getOnlinePlayers().size()]; + Bukkit.getServer().getOnlinePlayers().toArray(player); + for (int i = 0; i < player.length; i++) { + players.add(player[i].getName()); + } + return players; } + return null; + } } diff --git a/src/main/java/de/zoeyvid/stacker/loadConfig.java b/src/main/java/de/zoeyvid/stacker/loadConfig.java index 8f2d5107..fe243ee2 100644 --- a/src/main/java/de/zoeyvid/stacker/loadConfig.java +++ b/src/main/java/de/zoeyvid/stacker/loadConfig.java @@ -1,114 +1,134 @@ package de.zoeyvid.stacker; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; - import java.io.File; import java.io.IOException; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; public class loadConfig { - private static final File config = new File("plugins/Stacker", "config.yml"); - private static FileConfiguration cfg; - - public static boolean defaultON() { - if (cfg.isBoolean("defaultON")) { - return cfg.getBoolean("defaultOn"); - } else { - cfg.set("defaultOn", false); - saveConfig(); - return false; - } + + private static final File config = new File("plugins/Stacker", "config.yml"); + private static FileConfiguration cfg; + + public static boolean defaultON() { + if (cfg.isBoolean("defaultON")) { + return cfg.getBoolean("defaultOn"); + } else { + cfg.set("defaultOn", true); + saveConfig(); + return cfg.getBoolean("defaultOn"); } + } - public static boolean showMessage() { - if (cfg.isBoolean("showMessage")) { - return cfg.getBoolean("showMessage"); - } else { - cfg.set("showMessage", true); - saveConfig(); - return true; - } + public static boolean showMessage() { + if (cfg.isBoolean("showMessage")) { + return cfg.getBoolean("showMessage"); + } else { + cfg.set("showMessage", true); + saveConfig(); + return cfg.getBoolean("showMessage"); } + } - public static boolean sendMessage() { - if (cfg.isBoolean("sendMessage")) { - return cfg.getBoolean("sendMessage"); - } else { - cfg.set("sendMessage", true); - saveConfig(); - return true; - } + public static boolean sendMessage() { + if (cfg.isBoolean("sendMessage")) { + return cfg.getBoolean("sendMessage"); + } else { + cfg.set("sendMessage", true); + saveConfig(); + return cfg.getBoolean("sendMessage"); } + } - public static boolean saveState() { - if (cfg.isBoolean("saveState")) { - return cfg.getBoolean("saveState"); - } else { - cfg.set("saveState", true); - saveConfig(); - return true; - } + public static boolean saveState() { + if (cfg.isBoolean("saveState")) { + return cfg.getBoolean("saveState"); + } else { + cfg.set("saveState", true); + saveConfig(); + return cfg.getBoolean("saveState"); } + } - public static boolean defaultImmune() { - if (cfg.isBoolean("defaultImmune")) { - return cfg.getBoolean("defaultImmune"); - } else { - cfg.set("defaultImmune", false); - saveConfig(); - return false; - } + public static boolean defaultImmune() { + if (cfg.isBoolean("defaultImmune")) { + return cfg.getBoolean("defaultImmune"); + } else { + cfg.set("defaultImmune", true); + saveConfig(); + return cfg.getBoolean("defaultImmune"); } + } - public static void readConfig() { - cfg = YamlConfiguration.loadConfiguration(config); + public static boolean throwable() { + if (cfg.isBoolean("throwable")) { + return cfg.getBoolean("throwable"); + } else { + cfg.set("throwable", true); + saveConfig(); + return cfg.getBoolean("throwable"); } + } + + public static boolean throwfalldamage() { + if (cfg.isBoolean("throwfalldamage")) { + return cfg.getBoolean("throwfalldamage"); + } else { + cfg.set("throwfalldamage", false); + saveConfig(); + return cfg.getBoolean("throwfalldamage"); + } + } + + public static void readConfig() { + cfg = YamlConfiguration.loadConfiguration(config); + } - public static String language() { - if (cfg.isString("languageFile")) { - return cfg.getString("languageFile"); - } else { - cfg.set("languageFile", "en"); - saveConfig(); - return "en"; - } + public static String language() { + if (cfg.isString("languageFile")) { + return cfg.getString("languageFile"); + } else { + cfg.set("languageFile", "en"); + saveConfig(); + return cfg.getString("languageFile"); } + } - public static Boolean autoUpdate() { - if (cfg.isBoolean("autoUpdate")) { - return cfg.getBoolean("autoUpdate"); - } else { - cfg.set("autoUpdate", true); - saveConfig(); - return true; - } + public static Boolean autoUpdate() { + if (cfg.isBoolean("autoUpdate")) { + return cfg.getBoolean("autoUpdate"); + } else { + cfg.set("autoUpdate", true); + saveConfig(); + return cfg.getBoolean("autoUpdate"); } + } - public static String updateChannel() { - if (cfg.isString("updateChannel")) { - return cfg.getString("updateChannel"); - } else { - cfg.set("updateChannel", "stable"); - saveConfig(); - return "stable"; - } + public static String updateChannel() { + if (cfg.isString("updateChannel")) { + return cfg.getString("updateChannel"); + } else { + cfg.set("updateChannel", "stable"); + saveConfig(); + return cfg.getString("updateChannel"); } + } - public static Boolean autoUpdateLanguage() { - if (cfg.isBoolean("autoUpdateLanguage")) { - return cfg.getBoolean("autoUpdateLanguage"); - } else { - cfg.set("autoUpdateLanguage", true); - saveConfig(); - return true; - } + public static Boolean autoUpdateLanguage() { + if (cfg.isBoolean("autoUpdateLanguage")) { + return cfg.getBoolean("autoUpdateLanguage"); + } else { + cfg.set("autoUpdateLanguage", true); + saveConfig(); + return cfg.getBoolean("autoUpdateLanguage"); } + } - public static void saveConfig() { - try { - cfg.save(config); - } catch (IOException e) { - e.printStackTrace(); - } + public static void saveConfig() { + try { + cfg.save(config); + } catch (IOException e) { + e.printStackTrace(); } + } } diff --git a/src/main/java/de/zoeyvid/stacker/loadLanguage.java b/src/main/java/de/zoeyvid/stacker/loadLanguage.java index 51fb7dd3..fa5d9b38 100644 --- a/src/main/java/de/zoeyvid/stacker/loadLanguage.java +++ b/src/main/java/de/zoeyvid/stacker/loadLanguage.java @@ -1,231 +1,231 @@ package de.zoeyvid.stacker; +import java.io.File; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; -import java.io.File; - public class loadLanguage { - private static final File language = new File("plugins/Stacker/language", loadConfig.language() + ".yml"); - private static FileConfiguration lang; - - public static String dontStack() { - if (lang.isString("dontStack")) { - return lang.getString("dontStack"); - } else { - lang.addDefault("dontStack", "The Player %player% can`t be stacked!"); - saveLanguage(); - return "The Player %player% can`t be stacked!"; - } - } - - public static String leaveStackmode() { - if (lang.isString("leaveStackmode")) { - return lang.getString("leaveStackmode"); - } else { - lang.addDefault("leaveStackmode", "You are not longer in the stackmode!"); - saveLanguage(); - return "You are not longer in the stackmode!"; - } - } - - public static String joinStackmode() { - if (lang.isString("joinStackmode")) { - return lang.getString("joinStackmode"); - } else { - lang.addDefault("joinStackmode", "You are now in the stackmode!"); - saveLanguage(); - return "You are now in the stackmode!"; - } - } - - public static void saveLanguage() { - try { - lang.save(language); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static String permissionError() { - if (lang.isString("permissionError")) { - return lang.getString("permissionError"); - } else { - lang.addDefault("permissionError", "You dont have the Permission to use this Command! Missing: %permission%"); - saveLanguage(); - return "You dont have the Permission to use this Command! Missing: %permission%"; - } - } - - public static String helpTitle() { - if (lang.isString("helpTitle")) { - return lang.getString("helpTitle"); - } else { - lang.addDefault("helpTitle", "Stacker Help"); - saveLanguage(); - return "Stacker Help"; - } - } - - public static String helpHelp() { - if (lang.isString("helpHelp")) { - return lang.getString("helpHelp"); - } else { - lang.addDefault("helpHelp", "Shows this Help"); - saveLanguage(); - return "Shows this Help"; - } - } - - public static String helpNormal() { - if (lang.isString("helpNormal")) { - return lang.getString("helpNormal"); - } else { - lang.addDefault("helpNormal", " Toggle the stackmode"); - saveLanguage(); - return " Toggle the stackmode"; - } - } - - public static String helpToggle() { - if (lang.isString("helpToggle")) { - return lang.getString("helpToggle"); - } else { - lang.set("helpToggle", " Toggle the stackmode for another player"); - saveLanguage(); - return " Toggle the stackmode for another player"; - } - } - - public static String helpImmune() { - if (lang.isString("helpImmune")) { - return lang.getString("helpImmune"); - } else { - lang.set("helpImmune", " Toggle Immunemode for another Player or self"); - saveLanguage(); - return " Toggle Immunemode for another Player or self"; - } - } - - public static String leaveImmune() { - if (lang.isString("leaveImmune")) { - return lang.getString("leaveImmune"); - } else { - lang.set("leaveImmune", "You are not longer immune!"); - saveLanguage(); - return "You are not longer immune!"; - } - } - - public static String joinImmune() { - if (lang.isString("joinImmune")) { - return lang.getString("joinImmune"); - } else { - lang.set("joinImmune", "You are now immune!"); - saveLanguage(); - return "You are now immune!"; - } - } - - public static String errorPlayerOnline() { - if (lang.isString("errorPlayerOnline")) { - return lang.getString("errorPlayerOnline"); - } else { - lang.set("errorPlayerOnline", "You must name a online Player!"); - saveLanguage(); - return "You must name a online Player!"; - } - } - - public static String leaveStackmodeOther() { - if (lang.isString("leaveStackmodeOther")) { - return lang.getString("leaveStackmodeOther"); - } else { - lang.set("leaveStackmodeOther", "The Player %player% is not longer in the stackmode!"); - saveLanguage(); - return "The Player %player% is not longer in the stackmode!"; - } - } - - public static String joinStackmodeOther() { - if (lang.isString("joinStackmodeOther")) { - return lang.getString("joinStackmodeOther"); - } else { - lang.set("joinStackmodeOther", "The Player %player% is now in the stackmode!"); - saveLanguage(); - return "The Player %player% is now in the stackmode!"; - } - } - - public static String leaveStackmodeSelf() { - if (lang.isString("leaveStackmodeSelf")) { - return lang.getString("leaveStackmodeSelf"); - } else { - lang.set("leaveStackmodeSelf", "You are not longer in the stackmode!"); - saveLanguage(); - return "You are not longer in the stackmode!"; - } - } - - public static String joinStackmodeSelf() { - if (lang.isString("joinStackmodeSelf")) { - return lang.getString("joinStackmodeSelf"); - } else { - lang.set("joinStackmodeSelf", "You are now in the stackmode!"); - saveLanguage(); - return "You are now in the stackmode!"; - } - } - - public static String leaveImmuneOther() { - if (lang.isString("leaveImmuneOther")) { - return lang.getString("leaveImmmuneOther"); - } else { - lang.set("leaveImmuneOther", "The Player %player% is not longer immune!"); - saveLanguage(); - return "The Player %player% is not longer immune!"; - } - } - - public static String joinImmuneOther() { - if (lang.isString("joinImmuneOther")) { - return lang.getString("joinImmmuneOther"); - } else { - lang.set("joinImmuneOther", "The Player %player% is now immune!"); - saveLanguage(); - return "The Player %player% is now immune!"; - } - } - - public static String leaveImmuneSelf() { - if (lang.isString("leaveImmuneSelf")) { - return lang.getString("leaveImmmuneSelf"); - } else { - lang.set("leaveImmuneSelf", "You are not longer immune!"); - saveLanguage(); - return "You are not longer immune!"; - } - } - - public static String joinImmuneSelf() { - if (lang.isString("joinImmuneSelf")) { - return lang.getString("joinImmmuneSelf"); - } else { - lang.set("joinImmuneSelf", "You are now immune!"); - saveLanguage(); - return "You are now immune!"; - } - } - - public static void readLanguage() { - lang = YamlConfiguration.loadConfiguration(language); - } - - public static int getVersion() { - if (lang.isInt("version")) { - return lang.getInt("version"); - } else { - return 1; - } - } + + private static final File language = new File("plugins/Stacker/language", loadConfig.language() + ".yml"); + private static FileConfiguration lang; + + public static String dontStack() { + if (lang.isString("dontStack")) { + return lang.getString("dontStack"); + } else { + lang.addDefault("dontStack", "The Player %player% can`t be stacked!"); + saveLanguage(); + return "The Player %player% can`t be stacked!"; + } + } + + public static String leaveStackmode() { + if (lang.isString("leaveStackmode")) { + return lang.getString("leaveStackmode"); + } else { + lang.addDefault("leaveStackmode", "You are not longer in the stackmode!"); + saveLanguage(); + return "You are not longer in the stackmode!"; + } + } + + public static String joinStackmode() { + if (lang.isString("joinStackmode")) { + return lang.getString("joinStackmode"); + } else { + lang.addDefault("joinStackmode", "You are now in the stackmode!"); + saveLanguage(); + return "You are now in the stackmode!"; + } + } + + public static void saveLanguage() { + try { + lang.save(language); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static String permissionError() { + if (lang.isString("permissionError")) { + return lang.getString("permissionError"); + } else { + lang.addDefault("permissionError", "You dont have the Permission to use this Command! Missing: %permission%"); + saveLanguage(); + return "You dont have the Permission to use this Command! Missing: %permission%"; + } + } + + public static String helpTitle() { + if (lang.isString("helpTitle")) { + return lang.getString("helpTitle"); + } else { + lang.addDefault("helpTitle", "Stacker Help"); + saveLanguage(); + return "Stacker Help"; + } + } + + public static String helpHelp() { + if (lang.isString("helpHelp")) { + return lang.getString("helpHelp"); + } else { + lang.addDefault("helpHelp", "Shows this Help"); + saveLanguage(); + return "Shows this Help"; + } + } + + public static String helpNormal() { + if (lang.isString("helpNormal")) { + return lang.getString("helpNormal"); + } else { + lang.addDefault("helpNormal", " Toggle the stackmode"); + saveLanguage(); + return " Toggle the stackmode"; + } + } + + public static String helpToggle() { + if (lang.isString("helpToggle")) { + return lang.getString("helpToggle"); + } else { + lang.set("helpToggle", " Toggle the stackmode for another player"); + saveLanguage(); + return " Toggle the stackmode for another player"; + } + } + + public static String helpImmune() { + if (lang.isString("helpImmune")) { + return lang.getString("helpImmune"); + } else { + lang.set("helpImmune", " Toggle Immunemode for another Player or self"); + saveLanguage(); + return " Toggle Immunemode for another Player or self"; + } + } + + public static String leaveImmune() { + if (lang.isString("leaveImmune")) { + return lang.getString("leaveImmune"); + } else { + lang.set("leaveImmune", "You are not longer immune!"); + saveLanguage(); + return "You are not longer immune!"; + } + } + + public static String joinImmune() { + if (lang.isString("joinImmune")) { + return lang.getString("joinImmune"); + } else { + lang.set("joinImmune", "You are now immune!"); + saveLanguage(); + return "You are now immune!"; + } + } + + public static String errorPlayerOnline() { + if (lang.isString("errorPlayerOnline")) { + return lang.getString("errorPlayerOnline"); + } else { + lang.set("errorPlayerOnline", "You must name a online Player!"); + saveLanguage(); + return "You must name a online Player!"; + } + } + + public static String leaveStackmodeOther() { + if (lang.isString("leaveStackmodeOther")) { + return lang.getString("leaveStackmodeOther"); + } else { + lang.set("leaveStackmodeOther", "The Player %player% is not longer in the stackmode!"); + saveLanguage(); + return "The Player %player% is not longer in the stackmode!"; + } + } + + public static String joinStackmodeOther() { + if (lang.isString("joinStackmodeOther")) { + return lang.getString("joinStackmodeOther"); + } else { + lang.set("joinStackmodeOther", "The Player %player% is now in the stackmode!"); + saveLanguage(); + return "The Player %player% is now in the stackmode!"; + } + } + + public static String leaveStackmodeSelf() { + if (lang.isString("leaveStackmodeSelf")) { + return lang.getString("leaveStackmodeSelf"); + } else { + lang.set("leaveStackmodeSelf", "You are not longer in the stackmode!"); + saveLanguage(); + return "You are not longer in the stackmode!"; + } + } + + public static String joinStackmodeSelf() { + if (lang.isString("joinStackmodeSelf")) { + return lang.getString("joinStackmodeSelf"); + } else { + lang.set("joinStackmodeSelf", "You are now in the stackmode!"); + saveLanguage(); + return "You are now in the stackmode!"; + } + } + + public static String leaveImmuneOther() { + if (lang.isString("leaveImmuneOther")) { + return lang.getString("leaveImmuneOther"); + } else { + lang.set("leaveImmuneOther", "The Player %player% is not longer immune!"); + saveLanguage(); + return "The Player %player% is not longer immune!"; + } + } + + public static String joinImmuneOther() { + if (lang.isString("joinImmuneOther")) { + return lang.getString("joinImmuneOther"); + } else { + lang.set("joinImmuneOther", "The Player %player% is now immune!"); + saveLanguage(); + return "The Player %player% is now immune!"; + } + } + + public static String leaveImmuneSelf() { + if (lang.isString("leaveImmuneSelf")) { + return lang.getString("leaveImmuneSelf"); + } else { + lang.set("leaveImmuneSelf", "You are not longer immune!"); + saveLanguage(); + return "You are not longer immune!"; + } + } + + public static String joinImmuneSelf() { + if (lang.isString("joinImmuneSelf")) { + return lang.getString("joinImmuneSelf"); + } else { + lang.set("joinImmuneSelf", "You are now immune!"); + saveLanguage(); + return "You are now immune!"; + } + } + + public static void readLanguage() { + lang = YamlConfiguration.loadConfiguration(language); + } + + public static int getVersion() { + if (lang.isInt("version")) { + return lang.getInt("version"); + } else { + return 1; + } + } } diff --git a/src/main/java/de/zoeyvid/stacker/main.java b/src/main/java/de/zoeyvid/stacker/main.java index aafedac1..976e13ba 100644 --- a/src/main/java/de/zoeyvid/stacker/main.java +++ b/src/main/java/de/zoeyvid/stacker/main.java @@ -1,9 +1,10 @@ package de.zoeyvid.stacker; -import de.zoeyvid.stacker.Listener.EntityInteractListener; -import de.zoeyvid.stacker.Listener.JoinListener; -import de.zoeyvid.stacker.Listener.QuitListener; -import de.zoeyvid.stacker.Listener.ShiftListener; +import de.zoeyvid.stacker.Listener.*; +import java.io.File; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashMap; import org.apache.commons.io.FileUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -11,139 +12,149 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; - -import java.io.File; -import java.net.URL; -import java.util.ArrayList; +import org.bukkit.util.Vector; public final class main extends JavaPlugin { - private static final String prefix = ChatColor.GRAY + "[" + ChatColor.AQUA + "Sta" + ChatColor.DARK_AQUA + "cker" + ChatColor.GRAY + "] "; - private static final ArrayList stackmode = new ArrayList(); - private static final ArrayList disabled = new ArrayList(); - private final int langVersion = 2; - private FileConfiguration cfg; - private FileConfiguration lang; + private static final String prefix = ChatColor.GRAY + "[" + ChatColor.AQUA + "Stacker" + ChatColor.GRAY + "] "; + private static final ArrayList stackmode = new ArrayList(); + private static final ArrayList disabled = new ArrayList(); + private static final ArrayList thrown = new ArrayList(); + private static final HashMap velocity = new HashMap(); + private final int langVersion = 2; + private FileConfiguration cfg; + private FileConfiguration lang; - public static String getPrefix() { - return prefix; - } + public static String getPrefix() { + return prefix; + } - public static ArrayList getStackmode() { - return stackmode; - } + public static ArrayList getStackmode() { + return stackmode; + } - public static ArrayList getDisabled() { - return disabled; - } + public static ArrayList getDisabled() { + return disabled; + } - private void listenerRegistration() { - PluginManager pluginManager = Bukkit.getPluginManager(); - pluginManager.registerEvents(new JoinListener(), this); - pluginManager.registerEvents(new QuitListener(), this); - pluginManager.registerEvents(new EntityInteractListener(), this); - pluginManager.registerEvents(new ShiftListener(), this); - } + public static ArrayList getThrown() { + return thrown; + } - @Override - public void onEnable() { - Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.DARK_GREEN + "The Plugin was enabled!"); - loadConfig(); - commandRegistration(); - listenerRegistration(); - loadLanguages(); - updatePlugin(); - updateLanguage(); - } + public static HashMap getVelocity() { + return velocity; + } - @Override - public void onDisable() { - Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.DARK_RED + "The Plugin was disabled!"); - } + private void listenerRegistration() { + PluginManager pluginManager = Bukkit.getPluginManager(); + pluginManager.registerEvents(new JoinListener(), this); + pluginManager.registerEvents(new QuitListener(), this); + pluginManager.registerEvents(new ShiftListener(), this); + pluginManager.registerEvents(new PlayerMoveListener(), this); + pluginManager.registerEvents(new EntityDamageListener(), this); + pluginManager.registerEvents(new PlayerInteractListener(), this); + pluginManager.registerEvents(new EntityDamageByEntityListener(), this); + } - private void loadConfig() { - if ((new File("plugins/Stacker/config.yml")).exists()) { - cfg = getConfig(); - cfg.options().copyDefaults(true); - Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.WHITE + "Config file loaded!"); - } else { - saveDefaultConfig(); - cfg = getConfig(); - cfg.options().copyDefaults(true); - Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.WHITE + "Create and loaded config file!"); - } - loadConfig.readConfig(); + @Override + public void onEnable() { + Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.DARK_GREEN + "The Plugin was enabled!"); + loadConfig(); + commandRegistration(); + listenerRegistration(); + loadLanguages(); + updatePlugin(); + updateLanguage(); + } + + @Override + public void onDisable() { + Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.DARK_RED + "The Plugin was disabled!"); + } + + private void loadConfig() { + if ((new File("plugins/Stacker/config.yml")).exists()) { + cfg = getConfig(); + cfg.options().copyDefaults(true); + Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.WHITE + "Config file loaded!"); + } else { + saveDefaultConfig(); + cfg = getConfig(); + cfg.options().copyDefaults(true); + Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.WHITE + "Create and loaded config file!"); } + loadConfig.readConfig(); + } - private void loadLanguages() { - File langDir = new File("plugins/Stacker"); - if (!langDir.exists()) { - langDir.mkdirs(); - } - if ((new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")).exists()) { - lang = getConfig(); - lang.options().copyDefaults(true); - Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.WHITE + "Language file loaded! (" + loadConfig.language() + ")"); - } else { - try { - FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/" + loadConfig.updateChannel() + "/languages/" + loadConfig.language() + ".yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); - } catch (Exception e) { - try { - FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/" + loadConfig.updateChannel() + "/languages/en.yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); - } catch (Exception e1) { - try { - FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/Stable/languages/en.yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); - } catch (Exception e2) { - Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.RED + "Error while downloading language file!"); - Bukkit.getServer().getPluginManager().disablePlugin(this); - } - } - } + private void loadLanguages() { + File langDir = new File("plugins/Stacker"); + if (!langDir.exists()) { + langDir.mkdirs(); + } + if ((new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")).exists()) { + lang = getConfig(); + lang.options().copyDefaults(true); + Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.WHITE + "Language file loaded! (" + loadConfig.language() + ")"); + } else { + try { + FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/" + loadConfig.updateChannel() + "/languages/" + loadConfig.language() + ".yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); + } catch (Exception e) { + try { + FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/" + loadConfig.updateChannel() + "/languages/en.yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); + } catch (Exception e1) { + try { + FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/stable/languages/en.yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); + } catch (Exception e2) { + Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.RED + "Error while downloading language file!"); + Bukkit.getServer().getPluginManager().disablePlugin(this); + } } - loadLanguage.readLanguage(); + } } + loadLanguage.readLanguage(); + } - private void updatePlugin() { - if (loadConfig.autoUpdate()) { - try { - if (loadConfig.updateChannel().equalsIgnoreCase("dev")) { - File oldFile = new File("plugins/stacker.jar"); - if(oldFile.exists()) FileUtils.delete(oldFile); - FileUtils.copyURLToFile(new URL("https://ci.zvcdn.de/job/Stacker-Dev/lastSuccessfulBuild/artifact/target/stacker.jar"), new File("plugins/stacker.jar")); - } else { - File oldFile = new File("plugins/stacker.jar"); - if(oldFile.exists()) FileUtils.delete(oldFile); - FileUtils.copyURLToFile(new URL("https://ci.zvcdn.de/job/Stacker/lastSuccessfulBuild/artifact/target/stacker.jar"), new File("plugins/stacker.jar")); - } - } catch (Exception e) { - Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.RED + "Error while updating the plugin!"); - } + private void updatePlugin() { + if (loadConfig.autoUpdate()) { + try { + if (loadConfig.updateChannel().equalsIgnoreCase("dev")) { + File oldFile = new File("plugins/stacker.jar"); + if (oldFile.exists()) FileUtils.delete(oldFile); + FileUtils.copyURLToFile(new URL("https://ci.zvcdn.de/job/Stacker-Dev/lastSuccessfulBuild/artifact/target/stacker.jar"), new File("plugins/stacker.jar")); + } else { + File oldFile = new File("plugins/stacker.jar"); + if (oldFile.exists()) FileUtils.delete(oldFile); + FileUtils.copyURLToFile(new URL("https://ci.zvcdn.de/job/Stacker/lastSuccessfulBuild/artifact/target/stacker.jar"), new File("plugins/stacker.jar")); } + } catch (Exception e) { + Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.RED + "Error while updating the plugin!"); + } } + } - private void updateLanguage() { - if (loadConfig.autoUpdateLanguage() && loadLanguage.getVersion() != langVersion) { - try { - FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/" + loadConfig.updateChannel() + "/languages/" + loadConfig.language() + ".yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); - } catch (Exception e) { - try { - FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/" + loadConfig.updateChannel() + "/languages/en.yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); - } catch (Exception e1) { - try { - FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/Stable/languages/en.yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); - } catch (Exception e2) { - Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.RED + "Error while downloading language file!"); - Bukkit.getServer().getPluginManager().disablePlugin(this); - } - } - } - Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.WHITE + "Language file updated! (" + loadConfig.language() + ", " + loadLanguage.getVersion() + " -> " + langVersion + ")"); - loadLanguages(); - loadLanguage.readLanguage(); + private void updateLanguage() { + if (loadConfig.autoUpdateLanguage() && loadLanguage.getVersion() != langVersion) { + try { + FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/" + loadConfig.updateChannel() + "/languages/" + loadConfig.language() + ".yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); + } catch (Exception e) { + try { + FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/" + loadConfig.updateChannel() + "/languages/en.yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); + } catch (Exception e1) { + try { + FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/ZoeyVid/Stacker/stable/languages/en.yml"), new File("plugins/Stacker/language/" + loadConfig.language() + ".yml")); + } catch (Exception e2) { + Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.RED + "Error while downloading language file!"); + Bukkit.getServer().getPluginManager().disablePlugin(this); + } } + } + Bukkit.getConsoleSender().sendMessage(main.getPrefix() + ChatColor.WHITE + "Language file updated! (" + loadConfig.language() + ", " + loadLanguage.getVersion() + " -> " + langVersion + ")"); + loadLanguages(); + loadLanguage.readLanguage(); } + } - private void commandRegistration() { - getCommand("stacker").setExecutor(new StackerCommand()); - } + private void commandRegistration() { + getCommand("stacker").setExecutor(new StackerCommand()); + } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index e4adadda..0d094562 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -6,7 +6,7 @@ # Twitter: https://twitter.com/ZoeyVid # # Should the stackmode enabled default on join? -defaultOn: false +defaultOn: true # # Should a message be shown when a player a not stackable? showMessage: true @@ -18,16 +18,22 @@ sendMessage: true saveState: true # # Should a Player be on join default immune? -defaultImmune: false +defaultImmune: true # -# Language (Available Languages: https://github.com/ZoeyVid/Stacker/tree/master/languages) -languageFile: "en" +# Should the stacked players be throwable? +throwable: true +# +# Should the thrown players get fall damage? +throwfalldamage: false +# +# Language (Available Languages: https://github.com/ZoeyVid/Stacker/tree/stable/languages) +languageFile: en # # Should the plugin automatically update? autoUpdate: false # # Update Channel (Available Channels: stable & dev) - Downloaded from our ci (https://ci.zvcdn.de) -updateChannel: "dev" +updateChannel: dev # # Should the plugin automatically update the Language File? (This will delete your custom changes) autoUpdateLanguage: true diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index a86d46e2..158928a4 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: Stacker version: ${project.version} main: de.zoeyvid.stacker.main -authors: [ DavidCraftDev ] +authors: [DavidCraftDev] description: A Plugin to Stack Player on the top of a other Player folia-supported: true From 5bd14ac45345ae58eef361c760aaac59efd5a118 Mon Sep 17 00:00:00 2001 From: Zoey Date: Sat, 20 Jan 2024 03:57:28 +0100 Subject: [PATCH 2/6] Update .version Signed-off-by: Zoey --- .github/.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/.version b/.github/.version index e25d8d9f..26aaba0e 100644 --- a/.github/.version +++ b/.github/.version @@ -1 +1 @@ -1.1.5 +1.2.0 From 376d76552b3a90f91b75cdeb23f4e2defe6e41d8 Mon Sep 17 00:00:00 2001 From: Zoey Date: Sat, 20 Jan 2024 04:05:16 +0100 Subject: [PATCH 3/6] fix help page Signed-off-by: Zoey --- src/main/java/de/zoeyvid/stacker/StackerCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/de/zoeyvid/stacker/StackerCommand.java b/src/main/java/de/zoeyvid/stacker/StackerCommand.java index fc22b2b9..0804af99 100644 --- a/src/main/java/de/zoeyvid/stacker/StackerCommand.java +++ b/src/main/java/de/zoeyvid/stacker/StackerCommand.java @@ -49,7 +49,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St } else if (args[0].equalsIgnoreCase("help")) { if (player.hasPermission("stacker.help")) { player.sendMessage(main.getPrefix() + ChatColor.WHITE + loadLanguage.helpTitle()); - player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker " + ChatColor.WHITE + loadLanguage.helpNormal()); + player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker " + ChatColor.WHITE + loadLanguage.helpImmune()); player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker toggle/enable/disable " + ChatColor.WHITE + loadLanguage.helpToggle()); player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker immune " + ChatColor.WHITE + loadLanguage.helpImmune()); player.sendMessage(main.getPrefix() + ChatColor.YELLOW + "/stacker help" + ChatColor.WHITE + loadLanguage.helpHelp()); From 770dfd2c4a46e3adbcc294bc5d0c04e31e437838 Mon Sep 17 00:00:00 2001 From: Zoey Date: Sat, 20 Jan 2024 10:47:27 +0100 Subject: [PATCH 4/6] disable defaultImmune Signed-off-by: Zoey --- src/main/resources/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 0d094562..aa17bdd3 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -18,7 +18,7 @@ sendMessage: true saveState: true # # Should a Player be on join default immune? -defaultImmune: true +defaultImmune: false # # Should the stacked players be throwable? throwable: true From 626f960f3151ccb069b19027f66320baba41fc4e Mon Sep 17 00:00:00 2001 From: Zoey Date: Sat, 20 Jan 2024 10:48:06 +0100 Subject: [PATCH 5/6] disable defaultImmune in config loader Signed-off-by: Zoey --- src/main/java/de/zoeyvid/stacker/loadConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/de/zoeyvid/stacker/loadConfig.java b/src/main/java/de/zoeyvid/stacker/loadConfig.java index fe243ee2..a81d7cbd 100644 --- a/src/main/java/de/zoeyvid/stacker/loadConfig.java +++ b/src/main/java/de/zoeyvid/stacker/loadConfig.java @@ -54,7 +54,7 @@ public static boolean defaultImmune() { if (cfg.isBoolean("defaultImmune")) { return cfg.getBoolean("defaultImmune"); } else { - cfg.set("defaultImmune", true); + cfg.set("defaultImmune", false); saveConfig(); return cfg.getBoolean("defaultImmune"); } From 416e7f5f82fb65f15af4c8db75d5f85e2f065ce2 Mon Sep 17 00:00:00 2001 From: Zoey Date: Sat, 20 Jan 2024 10:49:06 +0100 Subject: [PATCH 6/6] add myself to authors of plugin.yml Signed-off-by: Zoey --- src/main/resources/plugin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 158928a4..fa030dea 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: Stacker version: ${project.version} main: de.zoeyvid.stacker.main -authors: [DavidCraftDev] +authors: [DavidCraftDev, Zoey2936] description: A Plugin to Stack Player on the top of a other Player folia-supported: true