From ef62bcce9b77583680438dc69d09b71eb37320d3 Mon Sep 17 00:00:00 2001 From: Laura Date: Sun, 9 Aug 2026 15:03:52 +0200 Subject: [PATCH] Migrate package from de.softwarerat to com.softwarerat and rebuild --- .vscode/settings.json | 4 + dependency-reduced-pom.xml | 83 ++++++++++++ pom.xml | 67 +++++----- .../MLGRush/GameState/IngameState.java | 106 ++++++++++++++++ .../MLGRush/GameState/LobbyState.java | 6 +- .../softwarerat/MLGRush}/MLGRush/IPrefix.java | 5 +- .../softwarerat/MLGRush}/MLGRush/MLGRush.java | 63 ++++++---- .../MLGRush}/MLGRush/data/Scores.java | 6 +- .../MLGRush/MLGRush/data/Yaml.java | 62 +++++++++ .../MLGRush/listener/BlockBreakListener.java | 118 ++++++++++++++++++ .../MLGRush/listener/JoinListener.java | 13 +- .../MLGRush/listener/OutOfAreaListener.java | 73 +++++++++++ .../MLGRush/GameState/IngameState.java | 67 ---------- .../MLGRush/listener/BlockBreakListener.java | 94 -------------- .../MLGRush/listener/OutOfAreaListener.java | 39 ------ src/main/resources/config.yml | 30 +++++ src/main/resources/paper-plugin.yml | 4 +- .../MLGRush/GameState/IngameState.class | Bin 0 -> 1996 bytes .../MLGRush/GameState/LobbyState.class | Bin 0 -> 1617 bytes .../softwarerat/MLGRush/MLGRush/IPrefix.class | Bin 0 -> 1674 bytes .../softwarerat/MLGRush/MLGRush/MLGRush.class | Bin 0 -> 2504 bytes .../MLGRush}/MLGRush/data/Scores.class | Bin 1024 -> 1042 bytes .../MLGRush/MLGRush/data/Yaml.class | Bin 0 -> 2042 bytes .../MLGRush/listener/BlockBreakListener.class | Bin 0 -> 6966 bytes .../MLGRush/listener/JoinListener.class | Bin 3686 -> 3758 bytes .../MLGRush/listener/OutOfAreaListener.class | Bin 0 -> 3671 bytes target/classes/config.yml | 30 +++++ .../MLGRush/GameState/IngameState.class | Bin 4629 -> 0 bytes .../MLGRush/GameState/LobbyState.class | Bin 959 -> 0 bytes .../de/softwarerat/MLGRush/IPrefix.class | Bin 2432 -> 0 bytes .../de/softwarerat/MLGRush/MLGRush.class | Bin 5335 -> 0 bytes .../MLGRush/listener/BlockBreakListener.class | Bin 6109 -> 0 bytes .../MLGRush/listener/OutOfAreaListener.class | Bin 1800 -> 0 bytes target/classes/paper-plugin.yml | 4 +- target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 0 .../compile/default-compile/inputFiles.lst | 17 +-- .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 0 target/mlgrush-1.0.24-SNAPSHOT.jar | Bin 0 -> 57850 bytes target/original-mlgrush-1.0.24-SNAPSHOT.jar | Bin 0 -> 19462 bytes 41 files changed, 617 insertions(+), 277 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 dependency-reduced-pom.xml create mode 100644 src/main/java/com/softwarerat/MLGRush/MLGRush/GameState/IngameState.java rename src/main/java/{de/softwarerat => com/softwarerat/MLGRush}/MLGRush/GameState/LobbyState.java (83%) rename src/main/java/{de/softwarerat => com/softwarerat/MLGRush}/MLGRush/IPrefix.java (98%) rename src/main/java/{de/softwarerat => com/softwarerat/MLGRush}/MLGRush/MLGRush.java (76%) rename src/main/java/{de/softwarerat => com/softwarerat/MLGRush}/MLGRush/data/Scores.java (83%) create mode 100644 src/main/java/com/softwarerat/MLGRush/MLGRush/data/Yaml.java create mode 100644 src/main/java/com/softwarerat/MLGRush/MLGRush/listener/BlockBreakListener.java rename src/main/java/{de/softwarerat => com/softwarerat/MLGRush}/MLGRush/listener/JoinListener.java (83%) create mode 100644 src/main/java/com/softwarerat/MLGRush/MLGRush/listener/OutOfAreaListener.java delete mode 100644 src/main/java/de/softwarerat/MLGRush/GameState/IngameState.java delete mode 100644 src/main/java/de/softwarerat/MLGRush/listener/BlockBreakListener.java delete mode 100644 src/main/java/de/softwarerat/MLGRush/listener/OutOfAreaListener.java create mode 100644 src/main/resources/config.yml create mode 100644 target/classes/com/softwarerat/MLGRush/MLGRush/GameState/IngameState.class create mode 100644 target/classes/com/softwarerat/MLGRush/MLGRush/GameState/LobbyState.class create mode 100644 target/classes/com/softwarerat/MLGRush/MLGRush/IPrefix.class create mode 100644 target/classes/com/softwarerat/MLGRush/MLGRush/MLGRush.class rename target/classes/{de/softwarerat => com/softwarerat/MLGRush}/MLGRush/data/Scores.class (57%) create mode 100644 target/classes/com/softwarerat/MLGRush/MLGRush/data/Yaml.class create mode 100644 target/classes/com/softwarerat/MLGRush/MLGRush/listener/BlockBreakListener.class rename target/classes/{de/softwarerat => com/softwarerat/MLGRush}/MLGRush/listener/JoinListener.class (61%) create mode 100644 target/classes/com/softwarerat/MLGRush/MLGRush/listener/OutOfAreaListener.class create mode 100644 target/classes/config.yml delete mode 100644 target/classes/de/softwarerat/MLGRush/GameState/IngameState.class delete mode 100644 target/classes/de/softwarerat/MLGRush/GameState/LobbyState.class delete mode 100644 target/classes/de/softwarerat/MLGRush/IPrefix.class delete mode 100644 target/classes/de/softwarerat/MLGRush/MLGRush.class delete mode 100644 target/classes/de/softwarerat/MLGRush/listener/BlockBreakListener.class delete mode 100644 target/classes/de/softwarerat/MLGRush/listener/OutOfAreaListener.class create mode 100644 target/maven-archiver/pom.properties create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 target/mlgrush-1.0.24-SNAPSHOT.jar create mode 100644 target/original-mlgrush-1.0.24-SNAPSHOT.jar diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..0be1c0c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "java.configuration.updateBuildConfiguration": "automatic", + "java.compile.nullAnalysis.mode": "automatic" +} \ No newline at end of file diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml new file mode 100644 index 0000000..ccde445 --- /dev/null +++ b/dependency-reduced-pom.xml @@ -0,0 +1,83 @@ + + + 4.0.0 + com.softwarerat + mlgrush + mlgrush + 1.0.24-SNAPSHOT + + + + maven-compiler-plugin + 3.13.0 + + ${java.version} + ${java.version} + + + + maven-shade-plugin + 3.5.3 + + + package + + shade + + + + + com.softwarerat.MLGRush.MLGRush + + + META-INF/spring.handlers + + + META-INF/spring.schemas + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + + + + papermc-repo + https://repo.papermc.io/repository/maven-public/ + + + sonatype + https://oss.sonatype.org/content/groups/public/ + + + + + io.papermc.paper + paper-api + 1.21.1-R0.1-SNAPSHOT + provided + + + org.projectlombok + lombok + 1.18.42 + provided + + + + 21 + UTF-8 + + diff --git a/pom.xml b/pom.xml index f3770fc..d8a196d 100644 --- a/pom.xml +++ b/pom.xml @@ -1,37 +1,23 @@ - - 4.0.0 - de.softwarerat + 4.0.0 + com.softwarerat mlgrush 1.0.24-SNAPSHOT jar mlgrush - - - - gitlab-maven - https://gitlab.softwarerat.com/api/v4/projects/25/packages/maven - - - gitlab-maven - https://gitlab.softwarerat.com/api/v4/projects/25/packages/maven - - - - - 18 + 21 UTF-8 - clean package + org.apache.maven.plugins maven-compiler-plugin @@ -41,6 +27,8 @@ ${java.version} + + org.apache.maven.plugins maven-shade-plugin @@ -51,29 +39,43 @@ shade + + + + + com.softwarerat.MLGRush.MLGRush + + + META-INF/spring.handlers + + + META-INF/spring.schemas + + + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + - - - src/main/resources - true - - - papermc-repo https://repo.papermc.io/repository/maven-public/ - - gitlab-maven - https://Gitlab.Softwarerat.com/api/v4/projects/16/packages/maven - - sonatype https://oss.sonatype.org/content/groups/public/ @@ -90,7 +92,7 @@ org.projectlombok lombok - 1.18.28 + 1.18.42 provided @@ -99,4 +101,5 @@ 1.6.4-SNAPSHOT - + + \ No newline at end of file diff --git a/src/main/java/com/softwarerat/MLGRush/MLGRush/GameState/IngameState.java b/src/main/java/com/softwarerat/MLGRush/MLGRush/GameState/IngameState.java new file mode 100644 index 0000000..83bcc3b --- /dev/null +++ b/src/main/java/com/softwarerat/MLGRush/MLGRush/GameState/IngameState.java @@ -0,0 +1,106 @@ +package com.softwarerat.MLGRush.MLGRush.GameState; + +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; + +import com.softwarerat.API.builder.SpigotInventory; +import com.softwarerat.API.builder.SpigotItem; +import com.softwarerat.API.gameState.IGameState; +import com.softwarerat.MLGRush.MLGRush.MLGRush; +import com.softwarerat.MLGRush.MLGRush.data.Scores; + +import lombok.Getter; + +public class IngameState implements IGameState { + + private final Scores scores; + private final MLGRush plugin; + + @Getter + private Player player1; + + @Getter + private Player player2; + + public IngameState(MLGRush plugin, Scores scores) { + this.plugin = plugin; + this.scores = scores; + } + + @Override + public void Start() { + + Location redSpawn = getLocation("spawn.red"); + Location blueSpawn = getLocation("spawn.blue"); + + scores.getScoreBlue().set(0); + scores.getScoreRed().set(0); + + int index = 0; + + for (Player player : Bukkit.getOnlinePlayers()) { + + preparePlayer(player); + + if (index == 0) { + player1 = player; + player.teleport(redSpawn); + player.setRespawnLocation(redSpawn); + } else if (index == 1) { + player2 = player; + player.teleport(blueSpawn); + player.setRespawnLocation(blueSpawn); + } + + index++; + } + } + + @Override + public void Stop() { + Bukkit.shutdown(); + } + + private void preparePlayer(Player player) { + + SpigotInventory inventory = new SpigotInventory(player, plugin); + inventory.clear(); + + inventory.addItem(new SpigotItem(Material.SANDSTONE, 64).build()); + inventory.addItem(new SpigotItem(Material.STICK, 1) + .addUnsafeEnchantment(Enchantment.KNOCKBACK, 1) + .build()); + inventory.addItem(new SpigotItem(Material.WOODEN_PICKAXE, 1) + .addEnchant(Enchantment.EFFICIENCY, 5) + .setUnbreakable(true) + .build()); + + player.setGameMode(GameMode.SURVIVAL); + } + + private Location getLocation(String path) { + + FileConfiguration config = plugin.getConfig(); + + String worldName = config.getString(path + ".world"); + double x = config.getDouble(path + ".x"); + double y = config.getDouble(path + ".y"); + double z = config.getDouble(path + ".z"); + float yaw = (float) config.getDouble(path + ".yaw"); + float pitch = (float) config.getDouble(path + ".pitch"); + + World world = Bukkit.getWorld(worldName); + + if (world == null) { + throw new IllegalArgumentException("World '" + worldName + "' not found in config!"); + } + + return new Location(world, x, y, z, yaw, pitch); + } +} \ No newline at end of file diff --git a/src/main/java/de/softwarerat/MLGRush/GameState/LobbyState.java b/src/main/java/com/softwarerat/MLGRush/MLGRush/GameState/LobbyState.java similarity index 83% rename from src/main/java/de/softwarerat/MLGRush/GameState/LobbyState.java rename to src/main/java/com/softwarerat/MLGRush/MLGRush/GameState/LobbyState.java index b28ed08..ef70ded 100644 --- a/src/main/java/de/softwarerat/MLGRush/GameState/LobbyState.java +++ b/src/main/java/com/softwarerat/MLGRush/MLGRush/GameState/LobbyState.java @@ -1,4 +1,4 @@ -package de.softwarerat.MLGRush.GameState; +package com.softwarerat.MLGRush.MLGRush.GameState; import com.softwarerat.API.gameState.IGameState; import com.softwarerat.API.world.WorldAPI; @@ -14,12 +14,12 @@ public class LobbyState implements IGameState { @Override public void Start() { - + worldAPI.loadWorld("ingame"); } @Override public void Stop() { - worldAPI.loadWorld("ingame"); + ingameState.Start(); } } diff --git a/src/main/java/de/softwarerat/MLGRush/IPrefix.java b/src/main/java/com/softwarerat/MLGRush/MLGRush/IPrefix.java similarity index 98% rename from src/main/java/de/softwarerat/MLGRush/IPrefix.java rename to src/main/java/com/softwarerat/MLGRush/MLGRush/IPrefix.java index 42cef39..d7755e8 100644 --- a/src/main/java/de/softwarerat/MLGRush/IPrefix.java +++ b/src/main/java/com/softwarerat/MLGRush/MLGRush/IPrefix.java @@ -1,9 +1,10 @@ -package de.softwarerat.MLGRush; +package com.softwarerat.MLGRush.MLGRush; -import com.softwarerat.API.prefix.PrefixAPI; import org.bukkit.ChatColor; import org.bukkit.entity.Player; +import com.softwarerat.API.prefix.PrefixAPI; + public class IPrefix { PrefixAPI prefixAPI; diff --git a/src/main/java/de/softwarerat/MLGRush/MLGRush.java b/src/main/java/com/softwarerat/MLGRush/MLGRush/MLGRush.java similarity index 76% rename from src/main/java/de/softwarerat/MLGRush/MLGRush.java rename to src/main/java/com/softwarerat/MLGRush/MLGRush/MLGRush.java index 61718e4..3e6cdbb 100644 --- a/src/main/java/de/softwarerat/MLGRush/MLGRush.java +++ b/src/main/java/com/softwarerat/MLGRush/MLGRush/MLGRush.java @@ -1,16 +1,5 @@ -package de.softwarerat.MLGRush; +package com.softwarerat.MLGRush.MLGRush; -import com.softwarerat.API.data.GameData; -import com.softwarerat.API.prefix.PrefixAPI; -import com.softwarerat.API.world.WorldAPI; -import com.softwarerat.GameAPI; -import de.softwarerat.MLGRush.GameState.IngameState; -import de.softwarerat.MLGRush.GameState.LobbyState; -import de.softwarerat.MLGRush.data.Scores; -import de.softwarerat.MLGRush.listener.BlockBreakListener; -import de.softwarerat.MLGRush.listener.JoinListener; -import de.softwarerat.MLGRush.listener.OutOfAreaListener; -import lombok.Getter; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; @@ -18,6 +7,18 @@ import org.bukkit.World; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scoreboard.Scoreboard; +import com.softwarerat.API.data.GameData; +import com.softwarerat.API.prefix.PrefixAPI; +import com.softwarerat.API.world.WorldAPI; +import com.softwarerat.GameAPI; +import com.softwarerat.MLGRush.MLGRush.GameState.IngameState; +import com.softwarerat.MLGRush.MLGRush.GameState.LobbyState; +import com.softwarerat.MLGRush.MLGRush.data.Scores; +import com.softwarerat.MLGRush.MLGRush.listener.BlockBreakListener; +import com.softwarerat.MLGRush.MLGRush.listener.JoinListener; + +import lombok.Getter; + public final class MLGRush extends JavaPlugin { GameAPI gameAPI; GameData gameData; @@ -29,8 +30,29 @@ public final class MLGRush extends JavaPlugin { IngameState ingameState; @Override public void onEnable() { - + saveDefaultConfig(); + setupAPIs(); + setupGame(); + setupListener(); + // Plugin startup logic + + + } + + @Override + public void onDisable() { + // Plugin shutdown logic + } + + + public void setupListener() { + Bukkit.getPluginManager().registerEvents(new JoinListener(lobbyState,iPrefix),this); + Bukkit.getPluginManager().registerEvents(new BlockBreakListener(this,scores, ingameState),this); + // Bukkit.getPluginManager().registerEvents(new OutOfAreaListener(ingameState, this),this); + } + + public void setupAPIs() { gameAPI = new GameAPI(); gameAPI.enableAPI(this); gameAPI.setJavaPlugin(this); @@ -42,6 +64,9 @@ public final class MLGRush extends JavaPlugin { scoreboard = Bukkit.getScoreboardManager().getMainScoreboard(); gameData.setScoreboard(scoreboard); prefixAPI = new PrefixAPI(scoreboard); + } + + public void setupGame() { if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("1Admin") == null){ prefixAPI.createPrefix("Admin", 01, ChatColor.RED + "Admin " + ChatColor.GRAY + "| "); @@ -69,16 +94,8 @@ public final class MLGRush extends JavaPlugin { // Plugin startup logic iPrefix = new IPrefix(prefixAPI); scores = new Scores(); - ingameState = new IngameState(scores); + ingameState = new IngameState(this,scores); lobbyState = new LobbyState(ingameState,new WorldAPI()); - - Bukkit.getPluginManager().registerEvents(new JoinListener(lobbyState,iPrefix),this); - Bukkit.getPluginManager().registerEvents(new BlockBreakListener(scores, ingameState),this); - Bukkit.getPluginManager().registerEvents(new OutOfAreaListener(ingameState),this); - } - - @Override - public void onDisable() { - // Plugin shutdown logic + lobbyState.Start(); } } diff --git a/src/main/java/de/softwarerat/MLGRush/data/Scores.java b/src/main/java/com/softwarerat/MLGRush/MLGRush/data/Scores.java similarity index 83% rename from src/main/java/de/softwarerat/MLGRush/data/Scores.java rename to src/main/java/com/softwarerat/MLGRush/MLGRush/data/Scores.java index e36106e..6c87d0f 100644 --- a/src/main/java/de/softwarerat/MLGRush/data/Scores.java +++ b/src/main/java/com/softwarerat/MLGRush/MLGRush/data/Scores.java @@ -1,10 +1,10 @@ -package de.softwarerat.MLGRush.data; +package com.softwarerat.MLGRush.MLGRush.data; + +import java.util.concurrent.atomic.AtomicInteger; import lombok.Getter; import lombok.Setter; -import java.util.concurrent.atomic.AtomicInteger; - @Setter @Getter public class Scores { diff --git a/src/main/java/com/softwarerat/MLGRush/MLGRush/data/Yaml.java b/src/main/java/com/softwarerat/MLGRush/MLGRush/data/Yaml.java new file mode 100644 index 0000000..d92b1aa --- /dev/null +++ b/src/main/java/com/softwarerat/MLGRush/MLGRush/data/Yaml.java @@ -0,0 +1,62 @@ +package com.softwarerat.MLGRush.MLGRush.data; + + +import java.io.File; +import java.io.IOException; + +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; + +public class Yaml { + + private final File file; + private FileConfiguration config; + + public Yaml(String path, String fileName) { + this.file = new File(path, fileName); // FIX HERE + load(); + } + + + + public void load() { + this.config = YamlConfiguration.loadConfiguration(file); + } + + public void save() { + try { + config.save(file); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void reload() { + load(); + } + + public FileConfiguration getConfig() { + return config; + } + + public void set(String path, Object value) { + config.set(path, value); + save(); + } + + public Object get(String path) { + return config.get(path); + } + + public String getString(String path) { + return config.getString(path); + } + + public int getInt(String path) { + return config.getInt(path); + } + + public boolean getBoolean(String path) { + return config.getBoolean(path); + } +} diff --git a/src/main/java/com/softwarerat/MLGRush/MLGRush/listener/BlockBreakListener.java b/src/main/java/com/softwarerat/MLGRush/MLGRush/listener/BlockBreakListener.java new file mode 100644 index 0000000..d323aa2 --- /dev/null +++ b/src/main/java/com/softwarerat/MLGRush/MLGRush/listener/BlockBreakListener.java @@ -0,0 +1,118 @@ +package com.softwarerat.MLGRush.MLGRush.listener; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBreakEvent; + +import com.softwarerat.API.builder.SpigotInventory; +import com.softwarerat.API.builder.SpigotItem; +import com.softwarerat.MLGRush.MLGRush.GameState.IngameState; +import com.softwarerat.MLGRush.MLGRush.MLGRush; +import com.softwarerat.MLGRush.MLGRush.data.Scores; + +public class BlockBreakListener implements Listener { + + private final Scores scores; + private final IngameState ingameState; + private final MLGRush plugin; + + public BlockBreakListener(MLGRush plugin, Scores scores, IngameState ingameState) { + this.plugin = plugin; + this.scores = scores; + this.ingameState = ingameState; + } + + @EventHandler + public void onBlockBreak(BlockBreakEvent event) { + + Player player1 = ingameState.getPlayer1(); + Player player2 = ingameState.getPlayer2(); + + if (player1 == null || player2 == null) return; + + if (event.getBlock().getType() != Material.SANDSTONE) { + event.setCancelled(true); + + // BLUE BED -> RED SCORES + if (event.getBlock().getType() == Material.BLUE_BED) { + if (event.getPlayer().equals(player1)) { + scores.getScoreRed().incrementAndGet(); + handleRoundWin("Rot +1", true, player1, player2); + } + } + + // RED BED -> BLUE SCORES + else if (event.getBlock().getType() == Material.RED_BED) { + if (event.getPlayer().equals(player2)) { + scores.getScoreBlue().incrementAndGet(); + handleRoundWin("Blau +1", false, player1, player2); + } + } + + checkWinCondition(); + } + } + + private void handleRoundWin(String message, boolean redScored, Player player1, Player player2) { + + resetInventory(player1); + resetInventory(player2); + + Location redSpawn = getLocation("spawn.red"); + Location blueSpawn = getLocation("spawn.blue"); + + player1.teleport(redSpawn); + player2.teleport(blueSpawn); + + Bukkit.getOnlinePlayers().forEach(player -> player.sendMessage(message)); + } + + private void resetInventory(Player player) { + SpigotInventory inv = new SpigotInventory(player, plugin); + inv.clear(); + inv.addItem(new SpigotItem(Material.SANDSTONE, 64).build()); + inv.addItem(new SpigotItem(Material.STICK, 1) + .addUnsafeEnchantment(Enchantment.KNOCKBACK, 1) + .build()); + inv.addItem(new SpigotItem(Material.WOODEN_PICKAXE, 1) + .addEnchant(Enchantment.EFFICIENCY, 5) + .setUnbreakable(true) + .build()); + } + + private void checkWinCondition() { + if (scores.getScoreRed().get() >= 10) { + ingameState.Stop(); + Bukkit.getOnlinePlayers().forEach(player -> + player.sendTitle("Rot hat gewonnen", "Server startet nun neu")); + } else if (scores.getScoreBlue().get() >= 10) { + ingameState.Stop(); + Bukkit.getOnlinePlayers().forEach(player -> + player.sendTitle("Blau hat gewonnen", "Server startet nun neu")); + } + } + + private Location getLocation(String path) { + FileConfiguration config = plugin.getConfig(); + + String worldName = config.getString(path + ".world"); + double x = config.getDouble(path + ".x"); + double y = config.getDouble(path + ".y"); + double z = config.getDouble(path + ".z"); + float yaw = (float) config.getDouble(path + ".yaw"); + float pitch = (float) config.getDouble(path + ".pitch"); + World world = Bukkit.getWorld(worldName); + if (world == null) { + throw new IllegalArgumentException("World '" + worldName + "' not found in config!"); + } + + return new Location(world, x, y, z, yaw, pitch); + } +} \ No newline at end of file diff --git a/src/main/java/de/softwarerat/MLGRush/listener/JoinListener.java b/src/main/java/com/softwarerat/MLGRush/MLGRush/listener/JoinListener.java similarity index 83% rename from src/main/java/de/softwarerat/MLGRush/listener/JoinListener.java rename to src/main/java/com/softwarerat/MLGRush/MLGRush/listener/JoinListener.java index 4dddba1..9acc895 100644 --- a/src/main/java/de/softwarerat/MLGRush/listener/JoinListener.java +++ b/src/main/java/com/softwarerat/MLGRush/MLGRush/listener/JoinListener.java @@ -1,14 +1,19 @@ -package de.softwarerat.MLGRush.listener; +package com.softwarerat.MLGRush.MLGRush.listener; -import de.softwarerat.MLGRush.GameState.LobbyState; -import de.softwarerat.MLGRush.IPrefix; -import org.bukkit.*; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.GameMode; +import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; +import com.softwarerat.MLGRush.MLGRush.GameState.LobbyState; +import com.softwarerat.MLGRush.MLGRush.IPrefix; + public class JoinListener implements Listener { LobbyState lobbyState; diff --git a/src/main/java/com/softwarerat/MLGRush/MLGRush/listener/OutOfAreaListener.java b/src/main/java/com/softwarerat/MLGRush/MLGRush/listener/OutOfAreaListener.java new file mode 100644 index 0000000..a8a6428 --- /dev/null +++ b/src/main/java/com/softwarerat/MLGRush/MLGRush/listener/OutOfAreaListener.java @@ -0,0 +1,73 @@ +package com.softwarerat.MLGRush.MLGRush.listener; + + + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerMoveEvent; + +import com.softwarerat.MLGRush.MLGRush.GameState.IngameState; +import com.softwarerat.MLGRush.MLGRush.MLGRush; + +public class OutOfAreaListener implements Listener { + IngameState ingameState; + Player player2; + Player player1; + Location location; + Location location2; + private final MLGRush plugin; + + public OutOfAreaListener(IngameState ingameState, MLGRush plugin) { + this.ingameState = ingameState; + this.plugin = plugin; + } + +@EventHandler +public void onPlayerMove(PlayerMoveEvent event) { + Player player = event.getPlayer(); + Location redSpawn = getLocation("spawn.red"); + Location blueSpawn = getLocation("spawn.blue"); + + player1 = ingameState.getPlayer1(); + player2 = ingameState.getPlayer2(); + + if (player1 == null || player2 == null) return; + + int fallLimitRed = redSpawn.getBlockY() - 5; + int fallLimitBlue = blueSpawn.getBlockY() - 5; + + int playerY = player.getLocation().getBlockY(); + + if (player.getUniqueId().equals(player1.getUniqueId()) && playerY <= fallLimitRed) { + player.teleport(redSpawn); + } else if (player.getUniqueId().equals(player2.getUniqueId()) && playerY <= fallLimitBlue) { + player.teleport(blueSpawn); + } +} + + + + + private Location getLocation(String path) { + FileConfiguration config = plugin.getConfig(); + + String worldName = config.getString(path + ".world"); + double x = config.getDouble(path + ".x"); + double y = config.getDouble(path + ".y"); + double z = config.getDouble(path + ".z"); + float yaw = (float) config.getDouble(path + ".yaw"); + float pitch = (float) config.getDouble(path + ".pitch"); + + World world = Bukkit.getWorld(worldName); + if (world == null) { + throw new IllegalArgumentException("World '" + worldName + "' not found in config!"); + } + + return new Location(world, x, y, z, yaw, pitch); + } +} diff --git a/src/main/java/de/softwarerat/MLGRush/GameState/IngameState.java b/src/main/java/de/softwarerat/MLGRush/GameState/IngameState.java deleted file mode 100644 index 8c5d589..0000000 --- a/src/main/java/de/softwarerat/MLGRush/GameState/IngameState.java +++ /dev/null @@ -1,67 +0,0 @@ -package de.softwarerat.MLGRush.GameState; - - -import com.softwarerat.API.builder.SpigotInventory; -import com.softwarerat.API.builder.SpigotItem; -import com.softwarerat.API.gameState.IGameState; -import de.softwarerat.MLGRush.MLGRush; -import de.softwarerat.MLGRush.data.Scores; -import lombok.Getter; -import org.bukkit.Bukkit; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; - -import java.util.concurrent.atomic.AtomicReference; - -public class IngameState implements IGameState { - - public IngameState(Scores scores) { - this.scores = scores; - } - - Scores scores; - Location location; - Location location2; - @Getter - Player player1; - @Getter - Player player2; - @Override - public void Start() { - location = new Location(Bukkit.getWorld("ingame"),19,53,0); - location2 = new Location(Bukkit.getWorld("ingame"),-19,53,0); - AtomicReference teleported = new AtomicReference<>(false); - Bukkit.getOnlinePlayers().forEach(player -> - { - SpigotInventory spigotInventory = new SpigotInventory(player, MLGRush.getPlugin(MLGRush.class)); - spigotInventory.addItem(new SpigotItem(Material.SANDSTONE,64).build()); - spigotInventory.addItem(new SpigotItem(Material.STICK,1).addUnsafeEnchantment(Enchantment.KNOCKBACK,1).build()); - spigotInventory.addItem(new SpigotItem(Material.WOODEN_PICKAXE,1).addEnchant(Enchantment.EFFICIENCY,5).setUnbreakable(true).build()); - player.setGameMode(GameMode.SURVIVAL); - scores.getScoreBlue().set(0); - scores.getScoreRed().set(0); - if (!teleported.get()){ - teleported.set(true); - player1 = player; - player1.teleport(location); - player1.setRespawnLocation(location); - } else { - player2 = player; - player2.teleport(location2); - player2.setRespawnLocation(location2); - } - - - }); - - - } - - @Override - public void Stop() { - Bukkit.getServer().shutdown(); - } -} diff --git a/src/main/java/de/softwarerat/MLGRush/listener/BlockBreakListener.java b/src/main/java/de/softwarerat/MLGRush/listener/BlockBreakListener.java deleted file mode 100644 index 48a6337..0000000 --- a/src/main/java/de/softwarerat/MLGRush/listener/BlockBreakListener.java +++ /dev/null @@ -1,94 +0,0 @@ -package de.softwarerat.MLGRush.listener; - -import com.softwarerat.API.builder.SpigotInventory; -import com.softwarerat.API.builder.SpigotItem; -import de.softwarerat.MLGRush.GameState.IngameState; -import de.softwarerat.MLGRush.MLGRush; -import de.softwarerat.MLGRush.data.Scores; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.block.BlockBreakEvent; - -import java.util.concurrent.atomic.AtomicReference; - -public class BlockBreakListener implements Listener { - Scores scores; - IngameState ingameState; - Player player1; - Player player2; - - public BlockBreakListener(Scores scores, IngameState ingameState) { - this.scores = scores; - this.ingameState = ingameState; - - } - Location location; - Location location2; - @EventHandler - public void onBlockBreak(BlockBreakEvent event) { - player2 = ingameState.getPlayer2(); - player1 = ingameState.getPlayer1(); - if (!(event.getBlock().getBlockData().getMaterial() == Material.SANDSTONE)) { - event.setCancelled(true); - if (event.getBlock().getBlockData().getMaterial() == Material.BLUE_BED) { - if (event.getPlayer().equals(player1)){ - scores.getScoreRed().getAndIncrement(); - location = new Location(Bukkit.getWorld("ingame"),19,53,0); - location2 = new Location(Bukkit.getWorld("ingame"),-19,53,0); - AtomicReference teleported = new AtomicReference<>(false); - SpigotInventory spigotInventory = new SpigotInventory(player1, MLGRush.getPlugin(MLGRush.class)); - spigotInventory.clear(); - spigotInventory.addItem(new SpigotItem(Material.SANDSTONE,64).build()); - spigotInventory.addItem(new SpigotItem(Material.STICK,1).addUnsafeEnchantment(Enchantment.KNOCKBACK,1).build()); - spigotInventory.addItem(new SpigotItem(Material.WOODEN_PICKAXE,1).addEnchant(Enchantment.EFFICIENCY,5).setUnbreakable(true).build()); - SpigotInventory spigotInventory1 = new SpigotInventory(player2, MLGRush.getPlugin(MLGRush.class)); - spigotInventory1.clear(); - spigotInventory1.addItem(new SpigotItem(Material.SANDSTONE,64).build()); - spigotInventory1.addItem(new SpigotItem(Material.STICK,1).addUnsafeEnchantment(Enchantment.KNOCKBACK,1).build()); - spigotInventory1.addItem(new SpigotItem(Material.WOODEN_PICKAXE,1).addEnchant(Enchantment.EFFICIENCY,5).setUnbreakable(true).build()); - player1.teleport(location); - player2.teleport(location2); - Bukkit.getOnlinePlayers().forEach(player -> player.sendMessage("Rot +1")); - } - - } else if (event.getBlock().getBlockData().getMaterial() == Material.RED_BED) { - if (event.getPlayer().equals(player2)) { - SpigotInventory spigotInventory = new SpigotInventory(player1, MLGRush.getPlugin(MLGRush.class)); - spigotInventory.clear(); - spigotInventory.addItem(new SpigotItem(Material.SANDSTONE,64).build()); - spigotInventory.addItem(new SpigotItem(Material.STICK,1).addUnsafeEnchantment(Enchantment.KNOCKBACK,1).build()); - spigotInventory.addItem(new SpigotItem(Material.WOODEN_PICKAXE,1).addEnchant(Enchantment.EFFICIENCY,5).setUnbreakable(true).build()); - SpigotInventory spigotInventory1 = new SpigotInventory(player2, MLGRush.getPlugin(MLGRush.class)); - spigotInventory1.clear(); - spigotInventory1.addItem(new SpigotItem(Material.SANDSTONE,64).build()); - spigotInventory1.addItem(new SpigotItem(Material.STICK,1).addUnsafeEnchantment(Enchantment.KNOCKBACK,1).build()); - spigotInventory1.addItem(new SpigotItem(Material.WOODEN_PICKAXE,1).addEnchant(Enchantment.EFFICIENCY,5).setUnbreakable(true).build()); - location = new Location(Bukkit.getWorld("ingame"), 19, 53, 0); - location2 = new Location(Bukkit.getWorld("ingame"), -19, 53, 0); - scores.getScoreBlue().getAndIncrement(); - player1.teleport(location); - player2.teleport(location2); - Bukkit.getOnlinePlayers().forEach(player -> player.sendMessage("Blau +1")); - } - } - - if (scores.getScoreRed().get() == 10) { - ingameState.Stop(); - Bukkit.getOnlinePlayers().forEach(player -> { - player.sendTitle("Rot hat gewonnen", "server startet nun neu"); - }); - } else if (scores.getScoreBlue().get() == 10) { - ingameState.Stop(); - Bukkit.getOnlinePlayers().forEach(player -> { - player.sendTitle("Blau hat gewonnen", "server startet nun neu"); - }); - } - } - } - -} diff --git a/src/main/java/de/softwarerat/MLGRush/listener/OutOfAreaListener.java b/src/main/java/de/softwarerat/MLGRush/listener/OutOfAreaListener.java deleted file mode 100644 index c1c3269..0000000 --- a/src/main/java/de/softwarerat/MLGRush/listener/OutOfAreaListener.java +++ /dev/null @@ -1,39 +0,0 @@ -package de.softwarerat.MLGRush.listener; - -import de.softwarerat.MLGRush.GameState.IngameState; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerMoveEvent; - -public class OutOfAreaListener implements Listener { - IngameState ingameState; - Player player2; - Player player1; - Location location; - Location location2; - - public OutOfAreaListener(IngameState ingameState) { - this.ingameState = ingameState; - } - - @EventHandler - public void onPlayerMove(PlayerMoveEvent event) { - location = new Location(Bukkit.getWorld("ingame"),19,53,0); - location2 = new Location(Bukkit.getWorld("ingame"),-19,53,0); - player2 = ingameState.getPlayer2(); - player1 = ingameState.getPlayer1(); - if (event.getPlayer().getLocation().getBlockY() <= 39){ - if (event.getPlayer().getName().equals(player1.getName())){ - player1.teleport(location); - - }else { - player2.teleport(location2); - } - } - - } - -} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100644 index 0000000..f70d1e0 --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1,30 @@ +spawn: + red: + world: ingame + x: 19 + y: 53 + z: 0 + yaw: 0 + pitch: 0 + blue: + world: ingame + x: -19 + y: 53 + z: 0 + yaw: 180 + pitch: 0 +bed: + red: + world: ingame + x: 19 + y: 53 + z: 0 + yaw: 0 + pitch: 0 + blue: + world: ingame + x: -19 + y: 53 + z: 0 + yaw: 180 + pitch: 0 \ No newline at end of file diff --git a/src/main/resources/paper-plugin.yml b/src/main/resources/paper-plugin.yml index c60d9d9..2e75163 100644 --- a/src/main/resources/paper-plugin.yml +++ b/src/main/resources/paper-plugin.yml @@ -1,4 +1,6 @@ name: MLGRush version: '1.0-SNAPSHOT' -main: de.softwarerat.MLGRush.MLGRush +main: com.softwarerat.MLGRush.MLGRush.MLGRush +author: Softwarerat +description: A MLGRush plugin for Minecraft 1.21.1 api-version: '1.21' diff --git a/target/classes/com/softwarerat/MLGRush/MLGRush/GameState/IngameState.class b/target/classes/com/softwarerat/MLGRush/MLGRush/GameState/IngameState.class new file mode 100644 index 0000000000000000000000000000000000000000..6447e3896ed895be13b8f53943c21dff11560ea8 GIT binary patch literal 1996 zcmb_cQBM;=5S}fCmZMm#q9UM+inb~}L5+zR6Esqr6eScfJZ`T`yKr}V+1o4WFEi0Z z-~Ca>xhri?a#%Dx-0t4(%r|r2H#0wfef+-|f6hRfz|0}*FwCPj`sVKXhHOFbnUHh27&)R^3D zb1EE9Djk}XWAcZF!+Q&2|s{_RnuBn!kQQh@;FN(u;TQ(^QtaPzN zbZobP82^7XoTP9^-JL_S zz*LLtP`$7-a3&;49*@&EMR^SL>?MO^VWC)xo1GpE^E&~K3WrzSj_?K6$VS*rQBW+A zLd}*=LmrtG?uL_*H~)agabnbEpe(*A!fKm|^-MXeP%PD|Yf0A^zQ)M!1%fE6-Oa!g zbRBjnf!vnxeXQeM>?0qR0E-JJbQ%gU4ik7PKnAk7r(hC{XrGGq3|i)38rMts^%;7F ze#SS*?-wqAfh#{E+iSQ^pbenabzF1N*?=1`hi^DLVLpZs+Vv0?5)hUX5pJD+bB0 zqQT<7BYfGm!pf$rd%ekYm_vr4d??1EITXP`^JVW)dX`~b1qbtRhWqa7*sWya7DN6> zn_++ZRg1xK-^|7|pM9tTWgjs-sr@B(f>!S`WFG6j%;6M6DY?v3W32Xs{7@Skhcu2c*`WLz3p%(bf(QcN6wj%;x{c2LE6@)$1Q;xU9c?mNPzB?#rE2v>fBaCHenbqPWm*Xh(0 QZh+GtxIn+a literal 0 HcmV?d00001 diff --git a/target/classes/com/softwarerat/MLGRush/MLGRush/IPrefix.class b/target/classes/com/softwarerat/MLGRush/MLGRush/IPrefix.class new file mode 100644 index 0000000000000000000000000000000000000000..9af5bc6dd09788984749fe2d5396ea76c628eba9 GIT binary patch literal 1674 zcmeHHO>Yx15Pc3In`}eVgz`VRG-+7!bl^mx9`6_ z7^lO9-|HB8qCPn&GOV47iSR-Z54`uiQyEx>N-|6DboLll{P|i6wi!w6 z{MHde@wM(t2P+J6j-*_d*$^FSuLj4kcGn zqK(a#w3iOhroXr6Me#tyv9`P?`5!>HvM4bp%dO^u+i4>IuUlsA3i9H@MXd@4YYewq z{<#hhtx@q{JJV^+SFwCIj(XB`1xb&g;p;$zN5ZHqKASAsp-LIH{7XJ1dK>jbnnArJ-udxXbYK5-;P5=$m2P$VgA*oPk}VqplPY zgENr!K*S@4_CyHV3@M|*(Jt< zF13slO)y-e-pc5^juP1-jUAN9Rw#N-*#dd@E8OEo^)pt#Q&d2mY-zTuga(bPv$2bt vSf_~eiQBmdcXANwxd`|E0bw&2;XWSZ*6=W=hG#hl1w5LabrX-tXT0#=cMaDg literal 0 HcmV?d00001 diff --git a/target/classes/com/softwarerat/MLGRush/MLGRush/MLGRush.class b/target/classes/com/softwarerat/MLGRush/MLGRush/MLGRush.class new file mode 100644 index 0000000000000000000000000000000000000000..ccdb268de5aaf5c625714a275a75f74f8398d895 GIT binary patch literal 2504 zcmeHIZBG+H5T31-yS^Y=1Vwx~MWt2fiK0d^CMbwChanU(e%!W8S-I{uds~oSW}=CH z_eU9Lx8+4Rs7;LFgCB0^=62?}otbB5fBgLN4FG20p#up5<5k)4Be|xxsA7t0e=%5C zZbj<{r2|O<*QKiamDa`v*M2i>)w%FL(oO2W!DY$n1e`i;u-T;&fsx=K_CkAWhJb6V z=BTCw#txaGw_n3O-`E=?bVxN7TjQTBa3)yVQEWivUv53HA zS0{UvvNcD?bSNv8?Xsqt5qQ+q*@R$?{b1J*Q8HYZ40K=~_W)Dcb2MQ*$E9-^MuZRx@VT)6%1!-fpsV>c8Dy zx=%u0-kXXdDUL5&8irvs3xjZ(z)(Ke<7HVZ?1CA?+kt=!_O{iiFttLFiUe|jtkQ6m zDsJ@7$E058*s|UGywmsCAg&bi!a%q%h6C*Q20;Gfq>*BdN9|MeM@+Yx0gp5jOyQo@ zG33aFJOOn)ob9K-Oxm3@n7QJ@T|%Dx`!k&QM*K5k63Et>-mMRT{(RxLn`LylB{Xla zlGx-CM-I)Jp=U=XvM?8fvQd#6{(|8KUI#UEJCtQhRoN?UIGpX!uxL2%zyqw^zQ1J` zc@$v-tl(^mUPDkofw4Iu?Q0|iTN&e^6jHMT$i}>jKrWN;2!!XkR{V7lUS$w FzW`8QrosRK literal 0 HcmV?d00001 diff --git a/target/classes/de/softwarerat/MLGRush/data/Scores.class b/target/classes/com/softwarerat/MLGRush/MLGRush/data/Scores.class similarity index 57% rename from target/classes/de/softwarerat/MLGRush/data/Scores.class rename to target/classes/com/softwarerat/MLGRush/MLGRush/data/Scores.class index 9db626fb8ac89bda2dba04e7a3b5247ddc1973f3..996af88d0f2fe17f081c3fb066fef4080198c8f5 100644 GIT binary patch delta 82 zcmZqRn8cxe>ff$?3=9m83@YplOpFZL$@#hZ#rbI^<%vb9MTsT)zCP|jrNtSO9T`O? R8vU2l^}(TFvm@hvCICwc8@T`g delta 45 xcmbQl(ZC^e>ff$?3=9l*3@YplOpFXlDXEj~8AUf5a51u|_&_+DV;HwF0RR;<3ylB( diff --git a/target/classes/com/softwarerat/MLGRush/MLGRush/data/Yaml.class b/target/classes/com/softwarerat/MLGRush/MLGRush/data/Yaml.class new file mode 100644 index 0000000000000000000000000000000000000000..cc6b0233154c300630c84995093ffcc3b31db6c6 GIT binary patch literal 2042 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 E7ZFNS{{R30 literal 0 HcmV?d00001 diff --git a/target/classes/de/softwarerat/MLGRush/listener/JoinListener.class b/target/classes/com/softwarerat/MLGRush/MLGRush/listener/JoinListener.class similarity index 61% rename from target/classes/de/softwarerat/MLGRush/listener/JoinListener.class rename to target/classes/com/softwarerat/MLGRush/MLGRush/listener/JoinListener.class index 37eead3018baf1a55d67e5bfcf80516567e596c2..b092f42cd9d4b16130da27f57ccfd291c2666a15 100644 GIT binary patch delta 343 zcmaDRvrbn1)W2Q(7#J8F8BVe@FflTiCgPaaLG+pVa$^>$0a*aPHyu7#$qN3bsVnR?8K77EMbB} zcH#ut&6n6)S$M@5SQx|^I2j}u_!uN7r|>*Blw;svkY|u#P+(95LQMuG215pA26F}# p1_uUJh7bldhHM6Ph6)C4h86}LhHeI<$rZfqtQtV|nv+@hk^ruyX+i)1 delta 219 zcmZ1{`%FgY)W2Q(7#JAr7*4V?FflUdq@+%~C_4Eeqv%9e7ZzO~2$zjRWa55a76k}b z!ZV;KH7&EknvsFcCNnRy#Ey|6Km(za#Tv?vVoYVxgRnP0Wb9yKmIE8Nxr-&5nOPgc zX5*O2!YjzY!XU)J$so+Y#~?C!4bNjkNd^uEDFzt^X$D0gsmUPAV8|fHV9p@V;J~23 k5CRm8|NU{GUdVNhr2X3(8{fVZ7h87QYR*@rI)0L-yB@Bjb+ diff --git a/target/classes/com/softwarerat/MLGRush/MLGRush/listener/OutOfAreaListener.class b/target/classes/com/softwarerat/MLGRush/MLGRush/listener/OutOfAreaListener.class new file mode 100644 index 0000000000000000000000000000000000000000..153362d9cb6ceab4cf5543f141210318e119325d GIT binary patch literal 3671 zcmbVO`*#z^75+w&wL)GX2#gVV;It6ivTViB@URF8wlHxjnP6j6NZWKRujNJST_LS( zoVM;W=_5&-K9Z2W18viHOB+l>&S`&Z&gmaT`^~JLu^Z>~*qXgNd*?pB`^}yC_r1IS z0B{=X8Ug|%d3PyQaTmN5qimK9FO|!lovKzA8&BJ+c&1~PQ|GGQxrNhZ)5z9lG=v21 zyJ9RGDcf)gsdIBz%)F-|ED(3gh16WNShT#9xokRKs=i2|({c*Nk~!@eo+)rFyHx;Z z>&mH#=EAgqRKXO1sWvPSvE97kS*|0{)w&{Eo2K%%x(cm^ zOLnzjQMrH15NnvxK=`EPSl%gteBYL@;=>Wx2~Fw;8B67Z*tDAvZ9Ca2@OXC9{ay`hmOZ& zO3_A2!;%TdbaWyrZJ*FF(ynk=DxB1@O)8wilNz27*xiC)JyxBaW7J1$)OPd5ONw(7 zoycHZ!x=KKWf2S7+=~*UvjW}i*w*c)rG*I{Pvet5jx&yRwQ5exlc!vvfUJ6!otl}M z$gs*eoYOEVu%rEpj%RS5+t9pPHEhzQtF;DxgG%>bmcFKST)+&wf@j)h$t`;fy^W@g z$oek}bSTowUeKD}hpM@K=&A}m&N$tcRtY^oP6Z;?{PGaQeoKhlbNgZUdaLli|UX|M%SEvSB! zICMBN0-23(K1TW$q`j*;%3uicQ^u{TM%PAydN`RF0w~1TJ2`~p&>=0X;`17w7ueMj z(WpAebbJ9{WHD*@qFc6EvCY$LS*Y~V8ong(v1axYwrv&+`*gWbUE&Tob1iR{B<3-M zWdv*Zs%++8`v7_CanH*A`GVAVkc zqd+fD$rYLZB+q5C_8NZ~{#N-TZoyS!h0-{;Ov&={^xvVh)p66j6x5M zXFmud+u5{RE$2;1N`bu_t|LP-O)eaDU9aMmjZ)6^7Tx(u6hFn!HT+EAU=s+-S$2zN z%6CZSlEdRh-gC>VlH9)#xZX7elN`1bdMQaYG0B z+?lw8J&A$a=uRYWBYulh0o>0~?sFi{aX%g0j~#e`e?X7F3=iTVzR`dRLnui)3edp; zY6Tc97$$c!pL8kaI41+XF|dx0=Mu60bqq`5 zl#lfL2;CZ7$K#RtqaE>(FNBltVoZQ9M>UF13CIOXSV#6vbaiQ69XGKfIruK70=W1# z`WkBKrrK_*g>OPn#zVfIL?Nh97-8Nr=MHA0Gm|~MF&)4mBzO-xfqtIv37*19%wPyt zkzz-D6xT6~w{S$EHRWgAKnz50`rCu=;4-BUtr~b1pQhH+ z)cOpiFg@h(SxOq7V?=uqx`*Q$G8#_tANP3A5aJ;1@oq)?67L*uFp>ys1SP(X&*hQ> zcd-D%b!AeDt`tirLQ?j8IV|O>FGr-jtmIdZN9D^(?WJ?@@3=Oi$MyHI>piSp8oY}y z19$M1f4+xPm*V=q(7y1#NO!cm^A5iL7e?S?ImCEC)FMbTzLUi9aSSl_V|apBj3;p( zqr_&6Ic9JLXBB=6iqdNh{MPUde3SV_7}>Y*ZRWe1=h#b}3)0?mcp0w{zX41W%U6in zG1~bqr3h_~;8lE&_RbTd?^Eiew_f}JKV%IgrVm2=hmNBfgof8N6gdWi!9YO68!Cx6 tIR@|}{Fu)q3-J~MxuM2is`1xq{EZrar^Y|1@lTK-$h+??{0-b?{{_pb!(;#e literal 0 HcmV?d00001 diff --git a/target/classes/config.yml b/target/classes/config.yml new file mode 100644 index 0000000..f70d1e0 --- /dev/null +++ b/target/classes/config.yml @@ -0,0 +1,30 @@ +spawn: + red: + world: ingame + x: 19 + y: 53 + z: 0 + yaw: 0 + pitch: 0 + blue: + world: ingame + x: -19 + y: 53 + z: 0 + yaw: 180 + pitch: 0 +bed: + red: + world: ingame + x: 19 + y: 53 + z: 0 + yaw: 0 + pitch: 0 + blue: + world: ingame + x: -19 + y: 53 + z: 0 + yaw: 180 + pitch: 0 \ No newline at end of file diff --git a/target/classes/de/softwarerat/MLGRush/GameState/IngameState.class b/target/classes/de/softwarerat/MLGRush/GameState/IngameState.class deleted file mode 100644 index 395b1791cfcd8f40592f0adba89adbe39c695c5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4629 zcmb7H33nUS75+w6Jhn2##v~zu5YlYOOEM&Z&_+obTegE7d8w7yIJD5Q^lU30&8VYM z($EFE(~a&MbfKj!w52ViM0S!w)6%9b(0zmMEBOySJw5&2j3kd7o4C@EX5O9q?z{K9 z>pb({vrhroj~7*h6m(>SUa%+J6NV!k!`1tf2ZxJ=DgB_46Diklg`Th`EB7kG3Yw1@ z#|_;ytVw-v{Fq3)D(V$P({`>#Q0GuWuWr;6Re1{P3u)UC1qGXviyWRYTtiQJTrmX= zrkyt2tZgY+m9(8neY`k5optqOnM{_(3d>FfYTh(X3TKCcYl7Uuad**tu2If?lBV%jg=1z+b1}ss#{f!1XjM>p3ohmtm8N zjS8*|aCUhRYS@e|1b9-oqqbva6l{$q=iHle9mr)?`;bR7CkH(WcH zP3xWBWmrrIQq#nLH(svd7Fsr^bC+$K!mu>F0(eiIBd8^5+PQIiT0bZ(S%O6- zCX?b$4H~Wp9<)=E$2F{w zUY0tXh#zXiyYXHX?@_QRfH+I}lwr9!dat1O%q=v$5AP>fhXw}Yhq^lBtWH~k8ZNfa z1MdSGK8O#o*3rHrR>7DM0m;(XB}qyw$zsCi8T%0pAC<KLS+fUORmh-%#;&M(QF}BQX4F_$D4xpvl@Tr@<~Zb9S1Vmb+NNOIWU$ zWZ#S66rND=Ed{M}eeW`xG@M3>Lmf?GD~Wok_9$jGoRR7*uc$LDGID-6r{UXplI)~2 z;wst&CS)qH8{g4z9^a)kRcEOc!St3eLxa>wOeohY^)?2EAB|4~C4nI;u~P;lM6vK7cerdBil%;-v3oFcq# zDhew8&Z2nRCuuErX!R{Pvoi)*;zKJQe8 z(yqnIvdjlbl`{L<&SBkH%lcVtSc$DG5nVBZw$s=aB`8miGJ!dz}*_JK4p-1>^xO% zZ}HYZ<1Aiv21gX{FdqQlj84MZQjm5}OXfy>&Sz#Wf~ z;0u#1;MZNAkZAF@?F_yj!sy)U zMq7&i~lNe|&h zJc1o4VJDtu;lF^J@GNe|3+xduGFGIYHh39uu^R0c@f>p~MA^^dC-^C!R$_}lm!JKN v`<5g0A6!r&{*CL&^mCFz_yvB+t91Pfr2QU$!e8)LQe<`c8~%ZRVeS6__vseV diff --git a/target/classes/de/softwarerat/MLGRush/GameState/LobbyState.class b/target/classes/de/softwarerat/MLGRush/GameState/LobbyState.class deleted file mode 100644 index 21e4bad2e9a8e10a7120635a6ee6ea9a85b86800..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 959 zcmb7?+iuf95QhJ8(l~KU(xmjjxs(>1q|^^kR0&n0iewHVC5X#)vTa>CS>$Y}cq}AZ zBrbRW9ttt*L^eoBp%$L#?R0YH zABmCdX`!Vbs4)DTx;Bc0<#X{#_^}wD`me)tInXvr1aF{5e{r6_>H4P`qnqIf)o7eu z5cYzF0=jwrKB0V}l6c5?!glbluIau1exAh@rDxGN(g%ch-u0UO55CnW6c5!!sliwYb3Umv~KyWQtzV@C@n7ZHU zJJ`l!8#{#E>nzd5Ei)vir>4n3zKF~e>iIkNOedDWW8~iwEdE+~ifmzK$kxQGaM|AA z(+AEd@PEDi4YhXX5{>rmC04$0$igbyCW>qwwp9kWsBzgEM>c0=SjPsR7?8H1)H97N zZoo?CZ8{t`ca(!mX`q?Hj2e?LgAs0Lg@-8!EbA*)ns=^nkDbO99_64~s$`ATt#jGN NAHYTie8PAO-fwg$+TH*F diff --git a/target/classes/de/softwarerat/MLGRush/IPrefix.class b/target/classes/de/softwarerat/MLGRush/IPrefix.class deleted file mode 100644 index bdcf50ca47457017e4136d9e11ab0af88244416b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2432 zcmb7EYgZdp6x|mB6T%eQNW()*p{10NmT9ZD*0i-WJnc|opj2A5UXlx$CYgyd1Ij~rR?f8P87-~oIMZ34q3Wq8h}|Fv|L zD}7_hoG)y9Wn(e#s!i(~4KabUujGz2s?y#vmN#ChqA$=@56#p0MS*d%=+s)0P;EpG zMwEt%tU%{I%eMRn0_lmg`Jlrg_-c>*Km$$(krxw>*|mgiXvj>;FfFkw3Gma(y2saU?D zY~S*CjeJ$^DmR;6iz6kVM~J7UOEt^x#sG#i3xT2?CJSjQ~pSly1SZmZ=@ZdEfq z(b{FxhpS3*mlt#_;$wmSnye@`yD0rRXcS4b|af0Yp>BQUIiLebzLW zpC!3z3xPhbFA)o44k3tI5>q*40 zAdpybw%wwdvw}s{8(*2JVB*=7M~>rrzANiX$}c-5FM*ek8ouPHAMAu>?>H4@L?|M( zbF#=u+zr~WA@FT;=NjHo!UbuUs>&NP9jCHg&mL|-lcptbb+@jLaDUO{e*{I16ggR~ zu2{ax_IBcnIEcGPgqv&ySi=?CVq-+pN?8JNvA;H)RZ4q1!qtt7mAa*>$_-j*+se&V zrROP6LtWs?p;jFQUIT-NPj=-HM4iGYr=XpaCiw89%QMEihB(hIN^_itHog;+zw*ia zj59w{YC|v2o-i`Oh;I7oI7?kB^2Rv?^UJs}t6;Xb(AUWMHzR_a^-S{o@91yCcQ`ls z6V4u69I*hnZx$#gOTY3|BMB>n#RDiwr$s;+ye63My|8E1zP; z;H{fAr&#M4t2J2Reb%^u^H`%+q8}xG>>Ug>A*=5rtK(g~M?~*4lZKALfq{Vp#oMQZ zdFMEoG#m|+hNEH9&;;|&e_>uA%wYn$NSGspIZBw92=g*wjuGY+!W<{eiT?xhEm~)vxg^yg%oC zpT+TTLNkPSja*$Ps44yo+{F!kb8jM#TlkDD9n58UpS^Mud!2~&r&1}-#tY_dW6bA# ek8pB}#8?W?&G0OT=d19n!lqY1xr49ZVenty%sssT diff --git a/target/classes/de/softwarerat/MLGRush/MLGRush.class b/target/classes/de/softwarerat/MLGRush/MLGRush.class deleted file mode 100644 index 8d89e26509c0c0e42dfa42be2a1d77dc7d23f26e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5335 zcma)A349z?8UMe{G26}bU`a1(Y3P}xrQ3_Puq`xK)3lo=ByD1-ij(X#nPxK+cPA+k z6mRjy8&T1pKLzoG*ks$LRuH6EQ4}v!JnMnteG7>G-^}dpY_dz+Uw7WTH{bVv-}~;D zv(KG84d7}qPeDN7(zqT;S%>YTT2fDHcBD1d+%b|G$czd~1unCa{gK|0!9l~03@1kV z4Ks2?8`UCv`Dl0M0!qI&q}R2#2rQ2ESwnf4&F-hDKu}UOYPKe@Vg?zxBXNF+Hr#tMf{iG6hU{1eo%d^>rWjg5Vs%r}RN5UhbA+pp_iL_ot1RH1*B6VBIMBEdyFw9X&5y{X+ z6>Q>hr|W|V`5qj?Mr@JBxkBIt)idOiUP2xoT54~b3I#za+LbDSUHEh_e6pX(QXfK_>}RZwthMnNn0DrB_j zNhE|A+N9m~NyA*LVirO{bTR@r*2RYmvjPXvt$;CDb-vT9cp-XZe$?#)x;7-Rp*rSd z&xB_7M>_2!Q$nybSbNwJ)hN6=xED zbpgzl0-#+LuraD&MBoyiCVieGRj=YGZeSK<7&`i8am#bGoK|bPf_OPkzp2%V2XPZ^ zz!#~PSE{&K>ZQD=DHdz%4%3|yLA-{bo2d$0H|-!^N1b~U$?^sjZ**1J7HbS6AQ|3F zhAj>9s8%wFw@Lk7PYNu`Gl7fQ*w`p@=%?@*1)t9M?6H)s(~zIV=V%mb z#1@$E`h#JyX)sKiM|Pv^9-gl$nY5B2jN_PsFHlTJ4f&KRCNN304ol_)J$!xvpOeYv zc=7JaYd=Cr^?m+d9~t;Dk`8V_>#c#A}x-uZ3*GDTcE$JVm9U|cu-(n z5w=|C;_E#^cmNMcLC-MXR~Ktrd^>t#epSUq2rKv+i_3ZU%XLZ$zRq(MO4N@3Wy^2~ zk6>X4XYoxb+qVP`7L~2wv7$37vMi|idw3`Lwu-r!Cq4hWD!zyB)5+-hZugrlpeyq0 znAa=k5z+mBP+a*5gWhWD$;e*IFk{{%gvaqCdB7(G+ArXMIXy;;St`^1)-VtL1V2;o zQ-Ni^kSrv*il5^bY`l_szZ5LlG|J@Vrg0yqE>|NN(WCwvln3gR<6jDFD&iJdP1Li2 z8?0xD4rV|@IEPfqHPSAOXJe%0kZ_*yYGh~lWz;^(esZaQRx#4ASMV5>IlwfwUzv(ZSocLG&9 zZsxiqP+g>Po{@P3mUN7mwlSo)n4?C@;I*L6G%enQ*n`s%!m)%k)N2h!nxzY~D90&b zsM8ur_UXF~c^gr^o5gyWRvAI{mSv~xq&D2D+XGfS6~Z(4uYzaUrRD06VUAjZy4NYW zjl^!Pk9BZN7O>|8Zu93~kJ<&?qnYu9o?02Rtih4t=*&LAx01(rU~E_~Kz_(aU!WcG zAR4qpqSLVT=-hHV9Tb8}5Ki}2C2pz;iV_x0!S2AFl~F6gEB@|^!Wa`(UU{!_*JiP} zcMcnRLQl#C^0b)LaYI5&rSy~{RDo49G*(ClikQQy^!%jk5?qC`;bzTb1y=au#m=e4 zyrMWGJ7Q;K8FEI}6=!6YbVlZVj-^E4)s)ZqoJBYaj%BrJEV!310W9LP+*zED#e7#? z0$hS6oblF_VJ6Xr zR)_2uwoYREaqKvOdVv_%wyvGT9+Jj-)~2z40_~ZP;f@nH5WpF1Cslj+y3%pH=s0@E zF~H|Z3<8s|rV;bw38VtJODxEK8OwvYv1}Z#@WH$)AI2rl!r;*?%&YTYURyqn*ZW{@ z$%k=?b1=7LVcwJn^A=?sZ}Y+2nh)a==V0oxFz@tWB93m}9VCsTmG|ZYxMUfC@NLI& z`$JgbjIC3+qi0rXm3Y5dMzlWtn#xasX!&G+SOyjIYsSJFXO@ohE#9ca@=2C1W*Ud7-mEa2a>| zBLs26_!IujVEYTHDxo}!yA>RK2D{z=JD1I2p#3!yXgq-oJpQIfXs0hid2jL}^l$h( zq5nY!8OQ(Rm>=r2-aTCOhx#HPP?-l*f`2(w|HgkfRx#iFkFvvg2ApT9^DK9sK_RnG Nh!hoKwwQ~>{|Bt;{4W3i diff --git a/target/classes/de/softwarerat/MLGRush/listener/BlockBreakListener.class b/target/classes/de/softwarerat/MLGRush/listener/BlockBreakListener.class deleted file mode 100644 index 475497e4918dc120a4c8a17f25a4a1e38f9872f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6109 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 diff --git a/target/classes/de/softwarerat/MLGRush/listener/OutOfAreaListener.class b/target/classes/de/softwarerat/MLGRush/listener/OutOfAreaListener.class deleted file mode 100644 index be5ddd3581a0e1df75419b9328f508a82ce0f69a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1800 zcmb7ET~pge6g_K*1wwoq0%=;3wh6XrQApB{#FPSYAfyITNKB!hvb`Y+LZY%vC)1fs ze?a*Gea=IlJ5xw$W-@*5zv**lIz21dAeW&tu}9jytGoB!bI#rU^Pk^e0+@o-kPw)t zNVDoa48F5`>05!hSeRd_RUes-T@9oweRH`MEI*v_rB$e}XlNDad2H=krenFA=5pz= zEC(8r0>hraX_jhRTXtZ|UFim9W0OFK?QUAzay765DKK6*CGUL0$6Pq}&k1Ndj`c+P zR|U=$;#u6l4xX6z!jH#p69R3HSGEG%a|H(CI|}t>I=44m7&SR*yLK=|Lej5RTBaz_ zddsUw9WCfL(2bNpOFC0*hrpl#4Q&G51>2QNwe6Dh?^`8@1oWvooTBC1%C0ZA29NBj zz_rsVI9(K?F+4Y-VbR-Vf_Kt!)R7tyhjq4;+ifLMPC*!6sgcTUS+uJ*3z~6Vk4lj~ z)-!T4Qn>MspcTq=+yB6ZfN+B6uwH28n_9npc6wR1Doo6x~XPz9cxyV@goE6&{f8d4NN!h zpHL3720D~O9&;LQ3yj9N`#(($%&TbaN7Zy-0iS5NOIG3`;uRSvV37xvdl~`?oNb2C z_>faPFB`arPopfej#u7V4?BNB2*-*K@H1HL^X8#1zkvpCr{8##;sxun`XF}ctnxzSEt5eR0 zKqs%Q^46lYQ$MKss#o*Na?VyqdGN#)Ij(TxBK2$GbB2GYdmwC3>K%@hH5}Q5;mFS8 zn4o_*did_8HAg$aQO`a{Uv_LC1HXhmXZh}8Y@iRV=w}b5FhpxG^2RXE(c-=^t6;R( zaGu{@=US518yr>qzv!Xj?`2G?|bb~PR1oD7Dwh7{UT)myCRsaA1 diff --git a/target/classes/paper-plugin.yml b/target/classes/paper-plugin.yml index c60d9d9..2e75163 100644 --- a/target/classes/paper-plugin.yml +++ b/target/classes/paper-plugin.yml @@ -1,4 +1,6 @@ name: MLGRush version: '1.0-SNAPSHOT' -main: de.softwarerat.MLGRush.MLGRush +main: com.softwarerat.MLGRush.MLGRush.MLGRush +author: Softwarerat +description: A MLGRush plugin for Minecraft 1.21.1 api-version: '1.21' diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..99dcbc9 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=mlgrush +groupId=com.softwarerat +version=1.0.24-SNAPSHOT diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 7d2c70e..392b3c3 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,8 +1,9 @@ -/Users/zlavra/code/MLGRush/src/main/java/de/softwarerat/MLGRush/GameState/IngameState.java -/Users/zlavra/code/MLGRush/src/main/java/de/softwarerat/MLGRush/GameState/LobbyState.java -/Users/zlavra/code/MLGRush/src/main/java/de/softwarerat/MLGRush/IPrefix.java -/Users/zlavra/code/MLGRush/src/main/java/de/softwarerat/MLGRush/MLGRush.java -/Users/zlavra/code/MLGRush/src/main/java/de/softwarerat/MLGRush/data/Scores.java -/Users/zlavra/code/MLGRush/src/main/java/de/softwarerat/MLGRush/listener/BlockBreakListener.java -/Users/zlavra/code/MLGRush/src/main/java/de/softwarerat/MLGRush/listener/JoinListener.java -/Users/zlavra/code/MLGRush/src/main/java/de/softwarerat/MLGRush/listener/OutOfAreaListener.java +F:\Devel\mc\mlgrush-main\src\main\java\com\softwarerat\MLGRush\MLGRush\data\Scores.java +F:\Devel\mc\mlgrush-main\src\main\java\com\softwarerat\MLGRush\MLGRush\data\Yaml.java +F:\Devel\mc\mlgrush-main\src\main\java\com\softwarerat\MLGRush\MLGRush\GameState\IngameState.java +F:\Devel\mc\mlgrush-main\src\main\java\com\softwarerat\MLGRush\MLGRush\GameState\LobbyState.java +F:\Devel\mc\mlgrush-main\src\main\java\com\softwarerat\MLGRush\MLGRush\IPrefix.java +F:\Devel\mc\mlgrush-main\src\main\java\com\softwarerat\MLGRush\MLGRush\listener\BlockBreakListener.java +F:\Devel\mc\mlgrush-main\src\main\java\com\softwarerat\MLGRush\MLGRush\listener\JoinListener.java +F:\Devel\mc\mlgrush-main\src\main\java\com\softwarerat\MLGRush\MLGRush\listener\OutOfAreaListener.java +F:\Devel\mc\mlgrush-main\src\main\java\com\softwarerat\MLGRush\MLGRush\MLGRush.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/target/mlgrush-1.0.24-SNAPSHOT.jar b/target/mlgrush-1.0.24-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..949aa9f5b1f54d69eadbdf89107f858cc93a3574 GIT binary patch literal 57850 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 p;P0{j)u!SXHiy9fg#BxaAu9p)cKrO7`|