From 9b2f5748e61ae31f2c36ac74927a59e9dfb27a7f Mon Sep 17 00:00:00 2001 From: Kermina Awad Date: Sun, 25 Aug 2019 23:53:09 -0400 Subject: [PATCH] initial commit --- .idea/compiler.xml | 13 ++ .idea/encodings.xml | 6 + .idea/misc.xml | 14 ++ .idea/uiDesigner.xml | 124 +++++++++++++++++ .idea/workspace.xml | 58 ++++++++ pom.xml | 59 ++++++++ rSpawn.iml | 2 + .../java/xyz/ng7/rSpawn/Listeners/OnJoin.java | 45 ++++++ .../xyz/ng7/rSpawn/Listeners/OnRespawn.java | 47 +++++++ .../SpawnPointSharable.java | 129 ++++++++++++++++++ .../java/xyz/ng7/rSpawn/Utils/ConfigFile.java | 32 +++++ .../xyz/ng7/rSpawn/Utils/SpawnLocation.java | 37 +++++ src/main/java/xyz/ng7/rSpawn/rSpawn.java | 52 +++++++ src/main/resources/config.yml | 23 ++++ src/main/resources/plugin.yml | 5 + target/classes/config.yml | 23 ++++ target/classes/plugin.yml | 5 + .../xyz/ng7/rSpawn/Listeners/OnJoin.class | Bin 0 -> 2996 bytes .../xyz/ng7/rSpawn/Listeners/OnRespawn.class | Bin 0 -> 3075 bytes .../SpawnPointSharable$1.class | Bin 0 -> 1811 bytes .../SpawnPointSharable$LocationTagType.class | Bin 0 -> 4906 bytes .../SpawnPointSharable$UUIDTagType.class | Bin 0 -> 2764 bytes .../SpawnPointSharable.class | Bin 0 -> 3320 bytes .../xyz/ng7/rSpawn/Utils/ConfigFile.class | Bin 0 -> 1524 bytes .../xyz/ng7/rSpawn/Utils/SpawnLocation.class | Bin 0 -> 2013 bytes target/classes/xyz/ng7/rSpawn/rSpawn.class | Bin 0 -> 2592 bytes target/maven-archiver/pom.properties | 5 + .../compile/default-compile/createdFiles.lst | 9 ++ .../compile/default-compile/inputFiles.lst | 6 + .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 0 target/rSpawn-1.0.jar | Bin 0 -> 14895 bytes 32 files changed, 694 insertions(+) create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/workspace.xml create mode 100644 pom.xml create mode 100644 rSpawn.iml create mode 100644 src/main/java/xyz/ng7/rSpawn/Listeners/OnJoin.java create mode 100644 src/main/java/xyz/ng7/rSpawn/Listeners/OnRespawn.java create mode 100644 src/main/java/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable.java create mode 100644 src/main/java/xyz/ng7/rSpawn/Utils/ConfigFile.java create mode 100644 src/main/java/xyz/ng7/rSpawn/Utils/SpawnLocation.java create mode 100644 src/main/java/xyz/ng7/rSpawn/rSpawn.java create mode 100644 src/main/resources/config.yml create mode 100644 src/main/resources/plugin.yml create mode 100644 target/classes/config.yml create mode 100644 target/classes/plugin.yml create mode 100644 target/classes/xyz/ng7/rSpawn/Listeners/OnJoin.class create mode 100644 target/classes/xyz/ng7/rSpawn/Listeners/OnRespawn.class create mode 100644 target/classes/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$1.class create mode 100644 target/classes/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$LocationTagType.class create mode 100644 target/classes/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$UUIDTagType.class create mode 100644 target/classes/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable.class create mode 100644 target/classes/xyz/ng7/rSpawn/Utils/ConfigFile.class create mode 100644 target/classes/xyz/ng7/rSpawn/Utils/SpawnLocation.class create mode 100644 target/classes/xyz/ng7/rSpawn/rSpawn.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/compile/default-compile/inputFiles.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/rSpawn-1.0.jar diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..057299d --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..b26911b --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..803a716 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..dfe3484 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1564617928631 + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..b8ff59e --- /dev/null +++ b/pom.xml @@ -0,0 +1,59 @@ + + + 4.0.0 + + xyz.ng7 + rSpawn + 1.0 + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + 3.8.1 + + + + + + + spigotmc-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + Multiverse Snapshots + http://repo.onarandombox.com/content/repositories/multiverse-snapshots/ + + + + + + org.spigotmc + spigot-api + 1.14.4-R0.1-SNAPSHOT + provided + + + com.onarandombox.multiversecore + Multiverse-Core + 4.1.0-SNAPSHOT + provided + + + com.onarandombox.multiverseinventories + Multiverse-Inventories + 3.0.1-SNAPSHOT + provided + + + + + UTF-8 + + \ No newline at end of file diff --git a/rSpawn.iml b/rSpawn.iml new file mode 100644 index 0000000..78b2cc5 --- /dev/null +++ b/rSpawn.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/src/main/java/xyz/ng7/rSpawn/Listeners/OnJoin.java b/src/main/java/xyz/ng7/rSpawn/Listeners/OnJoin.java new file mode 100644 index 0000000..6f15590 --- /dev/null +++ b/src/main/java/xyz/ng7/rSpawn/Listeners/OnJoin.java @@ -0,0 +1,45 @@ +package xyz.ng7.rSpawn.Listeners; + +import com.onarandombox.multiverseinventories.MultiverseInventories; +import com.onarandombox.multiverseinventories.WorldGroup; +import java.util.List; +import org.bukkit.Location; +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.PlayerChangedWorldEvent; +import xyz.ng7.rSpawn.MultiverseInventories.SpawnPointSharable; +import xyz.ng7.rSpawn.rSpawn; +import xyz.ng7.rSpawn.Utils.SpawnLocation; + +public class OnJoin implements Listener { + private FileConfiguration c; + private MultiverseInventories i; + private String g; + + public OnJoin(rSpawn rS) { + c = rS.getConfigFile(); + i = rS.getInventories(); + } + + @EventHandler + public void onJoin(PlayerChangedWorldEvent e) { + Player p = e.getPlayer(); + List lwg = i.getGroupManager().getGroupsForWorld(p.getWorld().getName()); + + for (WorldGroup fg: lwg) if (fg.isSharing(SpawnPointSharable.SPAWN_POINT)) { + g = fg.getName(); + break; + } + + if (g != null) { + Location sp = SpawnPointSharable.getPlayerSpawnPoint(p); + + if (sp == null) { + SpawnPointSharable.setPlayerSpawnPoint(p, new SpawnLocation(c, p.getWorld()).gen()); + p.teleport(SpawnPointSharable.getPlayerSpawnPoint(p)); + } + } + } +} diff --git a/src/main/java/xyz/ng7/rSpawn/Listeners/OnRespawn.java b/src/main/java/xyz/ng7/rSpawn/Listeners/OnRespawn.java new file mode 100644 index 0000000..0fc154f --- /dev/null +++ b/src/main/java/xyz/ng7/rSpawn/Listeners/OnRespawn.java @@ -0,0 +1,47 @@ +package xyz.ng7.rSpawn.Listeners; + +import com.onarandombox.multiverseinventories.MultiverseInventories; +import com.onarandombox.multiverseinventories.WorldGroup; +import java.util.List; +import org.bukkit.Location; +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.PlayerRespawnEvent; +import xyz.ng7.rSpawn.MultiverseInventories.SpawnPointSharable; +import xyz.ng7.rSpawn.rSpawn; +import xyz.ng7.rSpawn.Utils.SpawnLocation; + +public class OnRespawn implements Listener { + private FileConfiguration c; + private MultiverseInventories i; + private String g; + + public OnRespawn(rSpawn rS) { + c = rS.getConfigFile(); + i = rS.getInventories(); + } + + @EventHandler + public void onJoin(PlayerRespawnEvent e) { + Player p = e.getPlayer(); + List lwg = i.getGroupManager().getGroupsForWorld(p.getWorld().getName()); + + for (WorldGroup fg: lwg) if (fg.isSharing(SpawnPointSharable.SPAWN_POINT)) { + g = fg.getName(); + break; + } + + if (g != null) { + Location sp = SpawnPointSharable.getPlayerSpawnPoint(p); + + if (e.isBedSpawn()) return; + else if (sp != null) e.setRespawnLocation(sp); + else { + SpawnPointSharable.setPlayerSpawnPoint(p, new SpawnLocation(c, p.getWorld()).gen()); + e.setRespawnLocation(SpawnPointSharable.getPlayerSpawnPoint(p)); + } + } + } +} diff --git a/src/main/java/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable.java b/src/main/java/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable.java new file mode 100644 index 0000000..1df0cc8 --- /dev/null +++ b/src/main/java/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable.java @@ -0,0 +1,129 @@ +package xyz.ng7.rSpawn.MultiverseInventories; + +import com.onarandombox.multiverseinventories.profile.PlayerProfile; +import com.onarandombox.multiverseinventories.share.ProfileEntry; +import com.onarandombox.multiverseinventories.share.Sharable; +import com.onarandombox.multiverseinventories.share.SharableHandler; +import java.nio.ByteBuffer; +import java.util.UUID; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.NamespacedKey; +import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.persistence.PersistentDataAdapterContext; +import org.bukkit.persistence.PersistentDataContainer; +import org.bukkit.persistence.PersistentDataType; +import org.jetbrains.annotations.NotNull; +import xyz.ng7.rSpawn.rSpawn; + +public class SpawnPointSharable { + public static final Sharable SPAWN_POINT = new Sharable.Builder<>("spawn_point", Location.class, new SharableHandler() { + @Override + public void updateProfile(PlayerProfile profile, Player player) { + profile.set(SPAWN_POINT, getPlayerSpawnPoint(player)); + } + + @Override + public boolean updatePlayer(Player player, PlayerProfile profile) { + Location loc = profile.get(SPAWN_POINT); + + if (loc == null) return false; + + setPlayerSpawnPoint(player, loc); + + return true; + } + } + ).defaultSerializer(new ProfileEntry(false, "spawnPoint")).altName("spawn").build(); + + private static final NamespacedKey SPAWN_LOCATION_KEY = new NamespacedKey(rSpawn.getPlugin(rSpawn.class), "spawn_location"); + + private static final LocationTagType LOCATION_TAG_TYPE = new LocationTagType(); + + private static class LocationTagType implements PersistentDataType { + + private static NamespacedKey WORLD_KEY = new NamespacedKey(SPAWN_LOCATION_KEY.getKey(), "world_uuid"); + private static NamespacedKey X_KEY = new NamespacedKey(SPAWN_LOCATION_KEY.getKey(), "x"); + private static NamespacedKey Y_KEY = new NamespacedKey(SPAWN_LOCATION_KEY.getKey(), "y"); + private static NamespacedKey Z_KEY = new NamespacedKey(SPAWN_LOCATION_KEY.getKey(), "z"); + + @Override + public @NotNull + Class getPrimitiveType() { + return PersistentDataContainer.class; + } + + @Override + public @NotNull + Class getComplexType() { + return Location.class; + } + + @NotNull + @Override + public PersistentDataContainer toPrimitive(@NotNull Location complex, @NotNull PersistentDataAdapterContext context) { + PersistentDataContainer primitive = context.newPersistentDataContainer(); + + World world = complex.getWorld(); + if (world != null) primitive.set(WORLD_KEY, UUID_TAG_TYPE, world.getUID()); + + primitive.set(X_KEY, PersistentDataType.DOUBLE, complex.getX()); + primitive.set(Y_KEY, PersistentDataType.DOUBLE, complex.getY()); + primitive.set(Z_KEY, PersistentDataType.DOUBLE, complex.getZ()); + + return primitive; + } + + @NotNull + @Override + public Location fromPrimitive(@NotNull PersistentDataContainer primitive, @NotNull PersistentDataAdapterContext context) { + UUID worldUid = primitive.get(WORLD_KEY, UUID_TAG_TYPE); + Double x = primitive.get(X_KEY, PersistentDataType.DOUBLE); + Double y = primitive.get(Y_KEY, PersistentDataType.DOUBLE); + Double z = primitive.get(Z_KEY, PersistentDataType.DOUBLE); + + return new Location(worldUid != null ? Bukkit.getWorld(worldUid) : null, + x != null ? x : 0D, y != null ? y : 0D, z != null ? z : 0D); + } + } + + private static UUIDTagType UUID_TAG_TYPE = new UUIDTagType(); + + private static class UUIDTagType implements PersistentDataType { + + @Override + public @NotNull Class getPrimitiveType() { + return byte[].class; + } + + @Override + public @NotNull Class getComplexType() { + return UUID.class; + } + + @Override + public @NotNull byte[] toPrimitive(@NotNull UUID complex, @NotNull PersistentDataAdapterContext context) { + ByteBuffer bb = ByteBuffer.wrap(new byte[16]); + bb.putLong(complex.getMostSignificantBits()); + bb.putLong(complex.getLeastSignificantBits()); + return bb.array(); + } + + @Override + public @NotNull UUID fromPrimitive(@NotNull byte[] primitive, @NotNull PersistentDataAdapterContext context) { + ByteBuffer bb = ByteBuffer.wrap(primitive); + long firstLong = bb.getLong(); + long secondLong = bb.getLong(); + return new UUID(firstLong, secondLong); + } + } + + public static Location getPlayerSpawnPoint(Player player) { + return player.getPersistentDataContainer().get(SPAWN_LOCATION_KEY, LOCATION_TAG_TYPE); + } + + public static void setPlayerSpawnPoint(Player player, Location spawnPoint) { + player.getPersistentDataContainer().set(SPAWN_LOCATION_KEY, LOCATION_TAG_TYPE, spawnPoint); + } +} \ No newline at end of file diff --git a/src/main/java/xyz/ng7/rSpawn/Utils/ConfigFile.java b/src/main/java/xyz/ng7/rSpawn/Utils/ConfigFile.java new file mode 100644 index 0000000..9ec826b --- /dev/null +++ b/src/main/java/xyz/ng7/rSpawn/Utils/ConfigFile.java @@ -0,0 +1,32 @@ +package xyz.ng7.rSpawn.Utils; + +import java.io.File; +import org.bukkit.configuration.file.FileConfiguration; +import xyz.ng7.rSpawn.rSpawn; + +public class ConfigFile { + private rSpawn rS; + + public ConfigFile(rSpawn rSpawn) { + rS = rSpawn; + } + + public FileConfiguration run() { + FileConfiguration c = null; + + try { + if (!rS.getDataFolder().exists()) rS.getDataFolder().mkdirs(); + + File f = new File(rS.getDataFolder(), "config.yml"); + + if(!f.exists()) rS.saveDefaultConfig(); + + c = rS.getConfig(); + } catch(Exception e) { + rS.getLogger().severe("Cannot read data folder. Disabling plugin."); + rS.getPluginLoader().disablePlugin(rS); + } + + return c; + } +} diff --git a/src/main/java/xyz/ng7/rSpawn/Utils/SpawnLocation.java b/src/main/java/xyz/ng7/rSpawn/Utils/SpawnLocation.java new file mode 100644 index 0000000..cd6f5b8 --- /dev/null +++ b/src/main/java/xyz/ng7/rSpawn/Utils/SpawnLocation.java @@ -0,0 +1,37 @@ +package xyz.ng7.rSpawn.Utils; + +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.block.Biome; +import org.bukkit.configuration.file.FileConfiguration; + +public class SpawnLocation { + private FileConfiguration c; + private World w; + + public SpawnLocation(FileConfiguration config, World world) { + c = config; + w = world; + } + + private int randomInt(int min, int max) { + return ThreadLocalRandom.current().nextInt(min, max + 1); + } + + public Location gen() { + boolean a = false; + int x, z; + List dB = c.getStringList("disabled-biomes"); + + do { + x = randomInt(-(c.getInt("radius.x")), c.getInt("radius.x")); + z = randomInt(-(c.getInt("radius.z")), c.getInt("radius.z")); + + for (String b: dB) if (w.getBiome(x, z) == Biome.valueOf(b)) a = true; + } while (a); + + return new Location(w, x + 0.5, w.getHighestBlockYAt(x, z), z + 0.5); + } +} diff --git a/src/main/java/xyz/ng7/rSpawn/rSpawn.java b/src/main/java/xyz/ng7/rSpawn/rSpawn.java new file mode 100644 index 0000000..9a15bd6 --- /dev/null +++ b/src/main/java/xyz/ng7/rSpawn/rSpawn.java @@ -0,0 +1,52 @@ +package xyz.ng7.rSpawn; + +import com.onarandombox.multiverseinventories.MultiverseInventories; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.plugin.java.JavaPlugin; +import xyz.ng7.rSpawn.Listeners.OnJoin; +import xyz.ng7.rSpawn.Listeners.OnRespawn; +import xyz.ng7.rSpawn.Utils.ConfigFile; + +public class rSpawn extends JavaPlugin { + private FileConfiguration config; + private MultiverseInventories inventories; + + public rSpawn() { + config = new ConfigFile(this).run(); + inventories = (MultiverseInventories) getServer().getPluginManager().getPlugin("Multiverse-Inventories"); + + if (inventories == null) { + getLogger().severe("Multiverse Inventories not found. Disabling plugin."); + getServer().getPluginManager().disablePlugin(this); + } + } + + private void checkConfigVersion() { + int version = 1; + + if(!config.contains("version") || config.getInt("version") < version) { + getLogger().severe("Your config version is outdated. Please move your config file to another location and restart the server, then copy the old settings to new config file."); + getLogger().severe("Plugin will be disabled to prevent errors."); + getPluginLoader().disablePlugin(this); + } + } + + private void regListeners() { + getServer().getPluginManager().registerEvents(new OnJoin(this), this); + getServer().getPluginManager().registerEvents(new OnRespawn(this), this); + } + + @Override + public void onEnable() { + checkConfigVersion(); + regListeners(); + } + + public FileConfiguration getConfigFile() { + return config; + } + + public MultiverseInventories getInventories() { + return inventories; + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100644 index 0000000..5566cbe --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1,23 @@ +## rSpawn Config File ## +# don't touch this. this ensures updates to config file are installed +version: 1 + + +## Options ## +# players will not spawn in these biomes, full list of biomes available at https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/Biome.html +disabled-biomes: + - COLD_OCEAN + - DEEP_COLD_OCEAN + - DEEP_LUKEWARM_OCEAN + - DEEP_OCEAN + - DEEP_WARM_OCEAN + - LUKEWARM_OCEAN + - OCEAN + - WARM_OCEAN + + +## Range ## +# the radius of the square of allowed spawns from X = 0 and Z = 0 +radius: + x: 4000 + z: 4000 \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..01ac093 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,5 @@ +name: rSpawn +version: 1.0 +main: xyz.ng7.rSpawn.rSpawn +depend: + - Multiverse-Inventories \ No newline at end of file diff --git a/target/classes/config.yml b/target/classes/config.yml new file mode 100644 index 0000000..5566cbe --- /dev/null +++ b/target/classes/config.yml @@ -0,0 +1,23 @@ +## rSpawn Config File ## +# don't touch this. this ensures updates to config file are installed +version: 1 + + +## Options ## +# players will not spawn in these biomes, full list of biomes available at https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/Biome.html +disabled-biomes: + - COLD_OCEAN + - DEEP_COLD_OCEAN + - DEEP_LUKEWARM_OCEAN + - DEEP_OCEAN + - DEEP_WARM_OCEAN + - LUKEWARM_OCEAN + - OCEAN + - WARM_OCEAN + + +## Range ## +# the radius of the square of allowed spawns from X = 0 and Z = 0 +radius: + x: 4000 + z: 4000 \ No newline at end of file diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml new file mode 100644 index 0000000..01ac093 --- /dev/null +++ b/target/classes/plugin.yml @@ -0,0 +1,5 @@ +name: rSpawn +version: 1.0 +main: xyz.ng7.rSpawn.rSpawn +depend: + - Multiverse-Inventories \ No newline at end of file diff --git a/target/classes/xyz/ng7/rSpawn/Listeners/OnJoin.class b/target/classes/xyz/ng7/rSpawn/Listeners/OnJoin.class new file mode 100644 index 0000000000000000000000000000000000000000..3415dc4100e7b02e3c16b9fd178301648efb93cf GIT binary patch literal 2996 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 literal 0 HcmV?d00001 diff --git a/target/classes/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$1.class b/target/classes/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$1.class new file mode 100644 index 0000000000000000000000000000000000000000..6a11e71f4703b20b9f0cfaddddd94712d3680374 GIT binary patch literal 1811 zcmbtUTTc@~6#k|yER;oVA{RwaQ7N|tL=oGN7^0E5lqMyZ=!4m|V;R`aHoIE{eiJYH zfW!ymn~A^47|(1ML0d>u9(Hbf&i9@3oip?E_t$R#7Lkgh9rxQYjt6lX9>y_&gc>F_ zOsSJ;4Ko^MH5d%7DItZw!VsNEY%#=EodRd*GKJ*nN-4+PO)F>9Nw4YTEqlvyh1!RQ zF@IZl4Emas++DRT&*QXBn)?TbhAb`_ZnkWFl*W3+_Qf7|J-#OQxbz)YaL)+-WgH>> z?6&19)baTwLuaL2uza3zoex40znd`gPRVd2*~o%Z$~pT+=`Wx-2UxDU7#Z6-;BE+z zG#$5Snp08&D~VpFjgp#c-E=7dHyn}_dso5%&I`BDPPFE?RY{K*SWv#6g14~=zy+c z9t%1iVNt_l9Z#^N<0+OI`p!vvnzxQ;Aj;*YTa=;ue_a?-4Yp`qVHlR0jE12jn|b~w z{XVm?mfj?s<_bi5^cA^Zy*Fp_Gt6Joor${TY+Q=Ex0PDf<35Ag@TLD((PVAUs#_kV z>=<4*3!11!CB-PvTE!MFQLL_Di7m{bjUH^e2K0JI>7$mWT_>#!ni&S?TuaQf6|M5a#=Jx1&dBTiVrAdw9PIAc}Y5J%zm z<3@n3V}R@;v>w86h|?ZiM{9cK2U?;>Q!^*fVn_5Z8pPTg*o_d+D0*;* zFz*F?lU4t}e1idt%4INMj*v$uZsHcNt*e~>GxJ`bew2xqn(A0dF5J9KoH1^OJ Krx@F4CZ9j#jtDUT literal 0 HcmV?d00001 diff --git a/target/classes/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$LocationTagType.class b/target/classes/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$LocationTagType.class new file mode 100644 index 0000000000000000000000000000000000000000..1f9312806fd987bc0fbf9807f7c7a8e8fc11294d GIT binary patch literal 4906 zcmcIoX?qjb6@IU_k)<&h15ONS5{gr7jFIiI6ztG|MZm?_1}|Wz2^q_S8IVTGXk=`f zwjoW^eM`EpNtYz;r zSq)#+@VbVtDYTrMI6IcUaO(J+!nU!zvy@sWUAbbpsc|D`77IqkTs&p24k<*>`$o~Z zvYhv2Y}m3b_lQEcyJuD*GLm036*i7pwmDwPEtt-X?nFlYkkzVO=l!)6pJPeM#olGuchpzgDGdKU|h9Rr%PGaS~i`cIchJP zwwre>vzYRpP3A4zow{T=vQF0;&rGCk$#f?jD`$xVf3?lsJ!6-RWh0d}?4^{qDh*qv ztR>rUOAg~Xey_!F5Um13v5Kx~XUx=O<=#yjt}&9gU4vjaLr3Uy``ME1S~-c@Dq0Ni zsBPz6FL$Q7({p**bQc^>DW;6t!_;`*9WQ0G^zp=6ACg3!pAAfLB%do}%@sev-Tx*0 z3QAs#NjG1`N8y$3V4hXOpt5oDM;DEP%Q_MRbHyF%X>L{xG6gN;=b^AQIJp{!XW@BQ z*dMfLIw%&pP-zE+{^ooHLyTU{JK06A!)x2;oak7r)+yJ>TsdtNypH#1;0=YYwI!Tn zyXH(nRaeK>i%ve*uojIotVP#cHV-OO0O`1w=#0f&+x-1fa;5@asNvDLmgDFrHYrY-Ze{b%tA8wCqR2Hx!O^ubVXnhJ?#PEBy*X zpTLPid^nRW^W*F5O;@(?|4cSPB&#J921-ojOHRgo&Jt37EPQ@mDa_aFO4GR zIg3JJ?%|{rT(8XN3Y!AWbj*84(>S8+oaQJL9Wsw z1N~(F$LbrfzDRzV`D&~njann0Dc7;=B^G*D@O&$4@3oUvM;=1o;Yq&scR}&%Lj(z7 zS$+jc2&a0IJnBiZC}j&mLh!Wi<0wU`D5JY?A@oaqr_ivex-;+M zehEi8H^kX<7@>zSeN55IbIj)iXC|Tkji)r6)aY(4z8whr_;%2epm(rlg8k?DX$_SN z;g>_nDd}Sr+Rs*zn6LNxh}^;EFh0bVagGI!@_6gv2o(ZGRS~5^pr|ThA0RT<_Yo3( zx6$z)B1(`>c1CXE5so%=Mr9POjAAm1l}ESm=volZpbclSg8&R-nsCfw9_R2XrGR+S z54sBCbq_FU)9Ymr+wd|@W1JxFAjA`xWWs}#XLuK-^$~iXWQP)1)sOgH4mAx^8m2YO zXqeS-&i_LwjuHOdrSk?BVc&vfxyy~zgi%9Jk*cTg16K?DXRR23RYf-e1H8T7$FY$8_c{In5+4KX!N#5d literal 0 HcmV?d00001 diff --git a/target/classes/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$UUIDTagType.class b/target/classes/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$UUIDTagType.class new file mode 100644 index 0000000000000000000000000000000000000000..cf7d879eb4de925e6a393e0e14de578777ab2285 GIT binary patch literal 2764 zcmb_e>sK2^6#q?L8^ZE#1GOSms0JwAqODkiD1lbNKxui@9*!R-VUrFdvpKu76#VZ0 zqhC^wdOUvikMekDcX@^2Bb9Tqb7%I>y}$drkL8a)fBp@?eZ0t^7x@hOkT+l%n9txd zEM$b zJ4;sQEO)cPUrB4tuPJe8yPmxw4{fO&SJ<8vyxVYuRGTlkt9?wIvzlkbgx3FR<2Aah>{w z@OKLx!HLS_j9RLW#z_qkR?SCOMYx_SIUJBBYe z_g&q$CI&Fb&>QsdX_5>SO{`(v#1m|oc#3BxHnp^cZ4*0M8o+ZCcQ9jO91{ko8{Aq7P9Yh;#a$r4iGmK)WH@S+p`*lT)t|`;mkguF*3U9Da-IB%7fEvbaGzhPQB& zzHs{T4DIyg_+b18TFzhP=dQ-1t8WK7qj-l_?O=@7Tl7nVkx#v2c(;x5M62=2mB!!u zTjNx~5poZ4lE`U)|F7wvkX)acZX(r$@mve(Kxm@t%<*8Len41j#9p09kO7FP&`cDe zj^Z}n4@eoq2gng8X$)f$Q{=EU?h(YVY5FMgY_!l;^Ds@no>)XtNEFjO7@_~3=u4Bz z=yU+RiOgJLMn6-(An_ub$fjPSyA`{KBow;g6aK>h`vRFEBd6F$aW|+3eHLO*VkE-e zO%-zwvjkv(3gSbOQf=djqB#lc%6R%0DV~p_c5{O^pMsVt-1wS`xeZG3a6P$;$zIwwK&3_ c`h<+={`-{j1Ky<<`>K0>iaT#j2~8so9!Ywd!T-g<5YJj=sU|CfCgkZaS8&^QPK- zqS;){Q>&E?o@9vT^_rmMyI= z6&c3;;#sZEn+>hPtE;?CJBIgU3kxfyLNT|*kj}hlZ>nbPnri18+H+IAyLYs-?`ZB? z&eBb%d%Vf6F&=A#e@w7kdV{?b7~AJA!X22?P2HJi=u1r9XXsB^RU-6wMmKr3RWEb9 zAowOmgh|GI&DO=-``Pb2(aFizgW5v+M{3;38CsinC~|3Fm`V7#rXbLrw%QR(PWhL* zM2V9$T$p`+>fKBFnuqC|{Re%AsuNtvRf+~S4c#N8Y zXM1hW{MC2iNN5L}~66y>$0$uCLTP@wFa+^Wg8^v6fOAT>9DAa;dG9%7n62OrR z%h}dr;%dos?6v@~6g2QXL)bM+fsLjD2Q3AYc%R{vkCPtfGK}ssyc6yUHt?KbuyaPk z%auaY3yOe!TY_c}0oP_o1%>lP6D90`C=5d)wp2qiYwBA0DX)+>{e1OYRJz0>FHjNC zn+~lkYL1q&Oh==%MA0$Zdyg7jxe8a`vWN1+C7*Nt#SY4dWCBC6CpGkVHR-?eZ-*3x zk+RnQbJ7vu%7bMFoc}y#^oKln>lw*AZkxQdSc${;oh20 z1g=#x6bCp@Z_ab{sO`sTkx9Yu0nI}A5aXf_(Rf@`AL?aMoTwil87fZHUZ$Do8TH}m z9rXP|gAissA>agNX{>Yv@Cm(~LGRovxaw`bi9UC2bow>=8D1gu3gOon=))h7UhV_? z!3Q>qYxv9syN=I2uvI!ki2jZE!7jc=q#tkWl3kIX5Xa9h+*oIe2S=Nc#2naA1UE46 z0Z+I#5=CU6Fp3^Y)CwBtgd}+rUmTQV2P6@}!X9m#v|oJpb`dSc<+!wqSaAo+4vy_& zu-F$rzJsA{49DZ!7}>^&EsXABtQbG}D^A5v?_hijprpA-s#TV))J$m^f?4 z!ZCztJcY=x?JNbsd2;X>>ffV2M*l(fMv+Ah(Z2zP C2G(Q% literal 0 HcmV?d00001 diff --git a/target/classes/xyz/ng7/rSpawn/Utils/ConfigFile.class b/target/classes/xyz/ng7/rSpawn/Utils/ConfigFile.class new file mode 100644 index 0000000000000000000000000000000000000000..2c0254333160ecb45431d643a60ca738fd5415f2 GIT binary patch literal 1524 zcmbVMT~pge6g?{(1V%t`LP!V!L;7J%YBe7%O(97shV(-~QYUoUw?$s70wFQ7OrSp{ zf1t1JObe4_CO;s*iD`RQGL2#AL-Mk__wKp(oV)i*Z~lJy8o(W_=TX3oUJT)rJSwpB z=*FjdxoP574{qz@9ewkeUOqQ5tM@N@a5s-HF{h3BKHS576Aw&$C1Augfe~kK|5rQo zX6?APBcFxsZBC$j-VgoczQAbde=yVQ0=dPgt^@`hKUAx&?F|(_ksAR$1t)T4ur6a? z+ihnq`NeMvOrB2oH1UI`y%>cJ-&^(rrRg(00$p({6u4cQcB0s`H(Fa;eqy^Rv=z(5 zk3ze_5L?G(8QN|p5eXH)J<+mBL&c2eDN<_u)$*-Lw_+R=IRohxwjJ&5{iiFCJC z#5hyRpFpQF7tYp1dmx(MkqM)wgO0nuU*&RRh ziaSBe^TUdXRSRo)WZ^M>Fj2Gc1WyGfP7TTFehHj^OTV_UsoX@se#d^X)g?Vr!>7oO z2ch3nNtNoCQ}LwaNOZoB9vZdhHxo`6GyP0+d#mopG_RLVB0IWYOJdePr-_G}a#vMV zL$-n>Ym-1PNjuL@^~&zVkaE1^xz9id^w-mFt1M37TB&o;PlWI}Fv&knfqx$UDD-&p zWbizUOI$~2Ez>r*=gWr><(a=={E=cVa~(jJzCjLs=!JzVv@T_6jN&RSeLKdi{N!*A z-d079}+)-+!01id~}3y6CeLWI>SVX4hR#|V}z9nqqctm DJfU`S literal 0 HcmV?d00001 diff --git a/target/classes/xyz/ng7/rSpawn/Utils/SpawnLocation.class b/target/classes/xyz/ng7/rSpawn/Utils/SpawnLocation.class new file mode 100644 index 0000000000000000000000000000000000000000..ac534614c3dd0bd5c3d88ea9acf7345a446af8da GIT binary patch literal 2013 zcma)7O;;OL7=CUt$%JGmGzAI;YFnWsDP^o*trVyQ#6~IDLaAugPLd%Egc+Pn3gr)U z=~jDO>&AtiW1;9d9@p;O`#W5S&%GgZXzP*W%$@hXpU?Yo@BH!4FTVkJ6V)U-G1`Qa z7?aDjB;Lh!xr`?;k;Ek4OJGXA-%nC}BY}JhAK=3jrg2j)GdgBd_z1U>xQ#g-^YLqc z(J_CLdnbuB7IfUz@v(p?3S64@{IXf7t*$zOS@hf`r(E-`!0}vj$*I`p6qkuG`zq}= z1kz!t$rfmtc3gX=wpOtHd8<$%hw+P6 zWx?_tx!-4M!Lm~o=$qbrxMjNK%ceiKZf&^coxrJ7O+`yHnVm#i$0ZQkkoX0fe9J9) zYk4;yFO$z_^8(Q|$7RNfvNpLd+uWbbWW#tvPDMdtTd^KkX2o*L=3L-AZdn%1;`0d~ zIuTm}k~II)N8jpX{C(;ay+${6jN=K`y^ded50HBqfz)WN{X zIj`myZP`#lJXDM!iPu0cJ~hyVQwF-xqvM`|&+xf{FEGFkl$@%pbm?Nj@z(6Bj{62I zFx!N0m7H32XwyIuB?ITBdV{&8W6^+(B|5`Mfsn5JP5Me0$ z^A)F=irD@#ea?BpIVeKMpI|W)I&ro%nTJ4ILtl-4z2MYt4dteeHiHnw zxEv&b9(mHjr>Ri!imRrQ(zqjJ9Fh>j1FKTAXO{#9UzW*#drUL-4X3KD-Dc8o)5mG5FEwRTwmdCk@6_tEx8?t+=VBIoKk^XhJKg<8%(3shi;(UgeGs(8n-BQT+@g1M^Vrhso1khDkkz*4?As z-$v{QZXEYYxNbYAu((!HR!&*+! ziET6m2hc&vj+Ws#eMEbDchMR}SNtiC ze}|Yh^8MbQ-H-Ra{uSv(C4bb06UByRdlZj)6=w$>KN6p&@;t4ub~1-kXl4)k*@aO` z0%pF+GM=U87^`s)?YM{`Qp{|>5)nLxiPxBSKQ?elRbrHv-0P&G^!63r;CEQVTeLB# rRp-1-&Si44(DulR>9`_56z>3gxPrLc3&FjPVIcRnD(_VqL@@F%kJjM4 literal 0 HcmV?d00001 diff --git a/target/classes/xyz/ng7/rSpawn/rSpawn.class b/target/classes/xyz/ng7/rSpawn/rSpawn.class new file mode 100644 index 0000000000000000000000000000000000000000..063cb94de5940598e1e0f537e490fe95f2819ee3 GIT binary patch literal 2592 zcmbtWZF3V<6n<{{vT3q?q0kmuXqO_|M###GfV3i7ingYJ6spD7ZE~9~-QKOcn*#m^ zzv~x2@C$TC>QrVNzd7S?a@6PUrpczZe2~fH=I*)YSd}6qnOTdc{`75cqfbNdAy7F49w`08~S86i<>#Tj}P?8To%O~=JBCkN?9yq zaZ4-R&f^Z|41AQs5Uy&?y9O3>7}jw{aZfMz4J;Y>SfI1)t5vruaIWMBRePnjzV1eL zBCG{Y6;1YE~sEx~nouOf@wE7bYhE2ZcTKl43#NI^Db^kGVy^7L;WI zE1&RCeCTXBCSJj5fw4Ul-H%)^w41qTwNFeeec-Rp5ZkfDT<@gd?^(tF#X!*6M;zW|}?s(D(rM2O2N$W{US$BXH`If`b zYcjArUO?R%6jZE0hLICQ7Ei2D26TKz?-e6$K8dBiSK&z%5of5~DEVj?hW1<(DBOwR zTaR4NvsR>4iSv>bt-TpY-DQ>x0zU|gCKP-FoByq2Mk*H7NM~)9`)q@2%JpKhlFff-zj^ZOM+ftc;bNe)BW5Q)Yx8Kyzq-LOAOW8 zGKrY2dMFiYSGSLLNtgvkIaSHTPPLlXLA5B+*;vZiekuv1#7dwzQHrzj996X!qktuw zYU%417j&=lDf!hH&~XBat!wNk+oP1`c5+J9qX(UF^o6W(z$r4YUwo3+UB3~#I8RKZ zhfOOeO}3rNI=S&Lp5`2FREr!}amwur;sH^{!zwyJfzz_LQKXXZRCJBTUr?h&hs2Dg zz_z5a>!pWNSP$V~R(ApsUTH}`?hkwSUQfM<8Jy(XZ;Y?t3_l!h@s1;hznu_zK5~7P zPd}iYJ7B)>3q;{LGRxewZKM4eItqntbnd|58zj4ft_*%h?iuohpOOCqBRn+wySLHP z&?@YpH-n$(tqren9fiTQhY@;l7=0+9ALqEciX)iAASQTfCebm;Q{eSP@(+)Nfirx{ z=$5Tx{Wi`9xY9mN3?2P_+c@++`gZsIBTq3FqdJ_RGW(Atn*kylOd}g63&1h@8{y|T z`8dHiqqt12G^#NMI7GM-~dQ+br3kF_Bs z9@gTKM69{W#9Z}|Gq65G#8RZ&CO38+1^>G=!c8%(u38se9q0GNUPqI}Q$Uu0n~u5~ tj?Uvk9k)(OJL=FR{@6gH?+A#aY248;zKA#XG0yKbKEJQ=r8vape*u=)p(+3X literal 0 HcmV?d00001 diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..b104365 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sun Aug 25 23:50:44 EDT 2019 +version=1.0 +groupId=xyz.ng7 +artifactId=rSpawn 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..98fd541 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,9 @@ +xyz/ng7/rSpawn/Listeners/OnRespawn.class +xyz/ng7/rSpawn/Utils/ConfigFile.class +xyz/ng7/rSpawn/Listeners/OnJoin.class +xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$LocationTagType.class +xyz/ng7/rSpawn/rSpawn.class +xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$UUIDTagType.class +xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable.class +xyz/ng7/rSpawn/Utils/SpawnLocation.class +xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable$1.class 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 new file mode 100644 index 0000000..57ad0a8 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,6 @@ +/home/kermina/Projects/rSpawn/src/main/java/xyz/ng7/rSpawn/Utils/SpawnLocation.java +/home/kermina/Projects/rSpawn/src/main/java/xyz/ng7/rSpawn/Utils/ConfigFile.java +/home/kermina/Projects/rSpawn/src/main/java/xyz/ng7/rSpawn/MultiverseInventories/SpawnPointSharable.java +/home/kermina/Projects/rSpawn/src/main/java/xyz/ng7/rSpawn/Listeners/OnJoin.java +/home/kermina/Projects/rSpawn/src/main/java/xyz/ng7/rSpawn/rSpawn.java +/home/kermina/Projects/rSpawn/src/main/java/xyz/ng7/rSpawn/Listeners/OnRespawn.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/rSpawn-1.0.jar b/target/rSpawn-1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..d4a172a9d2aa6ccc357fa9f32387549056848ef3 GIT binary patch literal 14895 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