From 516f067fb9d3ad829e51a59f5619b2952cf5f3d1 Mon Sep 17 00:00:00 2001 From: Aria Date: Mon, 27 Feb 2023 23:17:07 -0700 Subject: [PATCH] Finish fixing warps --- build.gradle | 1 - gradle.properties | 2 +- .../zontreck/essentials/AriasEssentials.java | 16 +++----- .../essentials/commands/CommandRegister.java | 12 ++++++ .../essentials/homes/HomesProvider.java | 4 +- .../essentials/util/EssentialsDatastore.java | 39 ++++++++++++++++++- .../essentials/util/ForgeEventsHandler.java | 37 ++++++++++++++++++ .../essentials/warps/WarpsProvider.java | 17 ++------ src/main/resources/META-INF/mods.toml | 10 ++--- 9 files changed, 103 insertions(+), 35 deletions(-) create mode 100644 src/main/java/dev/zontreck/essentials/util/ForgeEventsHandler.java diff --git a/build.gradle b/build.gradle index 45af514..bceedda 100644 --- a/build.gradle +++ b/build.gradle @@ -137,7 +137,6 @@ dependencies { minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}" implementation fg.deobf("dev.zontreck:libzontreck:${mc_version}-${libz_version}:dev") - compileOnly fg.deobf("dev.zontreck:libzontreck:${mc_version}-${libz_version}:dev") runtimeOnly fg.deobf("dev.zontreck:libzontreck:${mc_version}-${libz_version}") } diff --git a/gradle.properties b/gradle.properties index ddda854..417e091 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,4 +12,4 @@ my_modid="ariasessentials" mc_version=1.18.2 forge_version=40.2.1 parchment_version=2022.11.06 -libz_version=1.0.5.4 +libz_version=1.0.5.0227232305 diff --git a/src/main/java/dev/zontreck/essentials/AriasEssentials.java b/src/main/java/dev/zontreck/essentials/AriasEssentials.java index 71750ac..d54f0bc 100644 --- a/src/main/java/dev/zontreck/essentials/AriasEssentials.java +++ b/src/main/java/dev/zontreck/essentials/AriasEssentials.java @@ -1,5 +1,8 @@ package dev.zontreck.essentials; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -11,6 +14,7 @@ import com.mojang.logging.LogUtils; import dev.zontreck.essentials.commands.CommandRegister; import dev.zontreck.essentials.homes.Homes; import dev.zontreck.essentials.homes.HomesProvider; +import dev.zontreck.essentials.util.EssentialsDatastore; import dev.zontreck.libzontreck.events.ProfileLoadedEvent; import dev.zontreck.libzontreck.events.ProfileUnloadedEvent; import dev.zontreck.libzontreck.profiles.Profile; @@ -33,6 +37,7 @@ public class AriasEssentials { { IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); + EssentialsDatastore.initialize(); MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(new CommandRegister()); } @@ -52,15 +57,4 @@ public class AriasEssentials { } - @SubscribeEvent - public void onProfileLoaded(ProfileLoadedEvent ev) - { - player_homes.put(UUID.fromString(ev.profile.user_id), HomesProvider.getHomesForPlayer(ev.profile.user_id)); - } - - @SubscribeEvent - public void onProfileUnloaded(ProfileUnloadedEvent ev) - { - player_homes.remove(UUID.fromString(ev.user_id)); - } } diff --git a/src/main/java/dev/zontreck/essentials/commands/CommandRegister.java b/src/main/java/dev/zontreck/essentials/commands/CommandRegister.java index fc38b3e..5bccfad 100644 --- a/src/main/java/dev/zontreck/essentials/commands/CommandRegister.java +++ b/src/main/java/dev/zontreck/essentials/commands/CommandRegister.java @@ -10,6 +10,12 @@ import dev.zontreck.essentials.commands.teleport.TPAHereCommand; import dev.zontreck.essentials.commands.teleport.TPAcceptCommand; import dev.zontreck.essentials.commands.teleport.TPCancelCommand; import dev.zontreck.essentials.commands.teleport.TPDenyCommand; +import dev.zontreck.essentials.commands.warps.DelWarpCommand; +import dev.zontreck.essentials.commands.warps.RTPWarpCommand; +import dev.zontreck.essentials.commands.warps.SetWarpCommand; +import dev.zontreck.essentials.commands.warps.WarpCommand; +import dev.zontreck.essentials.commands.warps.WarpsCommand; +import dev.zontreck.essentials.warps.Warps; import net.minecraftforge.event.RegisterCommandsEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -28,5 +34,11 @@ public class CommandRegister { TPACommand.register(ev.getDispatcher()); TPCancelCommand.register(ev.getDispatcher()); TPDenyCommand.register(ev.getDispatcher()); + + DelWarpCommand.register(ev.getDispatcher()); + RTPWarpCommand.register(ev.getDispatcher()); + SetWarpCommand.register(ev.getDispatcher()); + WarpCommand.register(ev.getDispatcher()); + WarpsCommand.register(ev.getDispatcher()); } } diff --git a/src/main/java/dev/zontreck/essentials/homes/HomesProvider.java b/src/main/java/dev/zontreck/essentials/homes/HomesProvider.java index 266c6cb..fc0bda1 100644 --- a/src/main/java/dev/zontreck/essentials/homes/HomesProvider.java +++ b/src/main/java/dev/zontreck/essentials/homes/HomesProvider.java @@ -16,7 +16,7 @@ public class HomesProvider { */ public static Homes getHomesForPlayer(String player) { - Path homesFile = EssentialsDatastore.of(player).resolve("homes.nbt"); + Path homesFile = EssentialsDatastore.of(player,true).resolve("homes.nbt"); Homes homes = new Homes(player); if(homesFile.toFile().exists()) @@ -37,7 +37,7 @@ public class HomesProvider { public static void commitHomes(Homes playerHomes) { - Path homesFile = EssentialsDatastore.of(playerHomes.playerID).resolve("homes.nbt"); + Path homesFile = EssentialsDatastore.of(playerHomes.playerID,true).resolve("homes.nbt"); try { NbtIo.write(playerHomes.serialize(), homesFile.toFile()); diff --git a/src/main/java/dev/zontreck/essentials/util/EssentialsDatastore.java b/src/main/java/dev/zontreck/essentials/util/EssentialsDatastore.java index c9dc9a7..3decbdc 100644 --- a/src/main/java/dev/zontreck/essentials/util/EssentialsDatastore.java +++ b/src/main/java/dev/zontreck/essentials/util/EssentialsDatastore.java @@ -1,5 +1,7 @@ package dev.zontreck.essentials.util; +import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import dev.zontreck.libzontreck.util.FileTreeDatastore; @@ -7,12 +9,45 @@ import dev.zontreck.libzontreck.util.FileTreeDatastore; public class EssentialsDatastore extends FileTreeDatastore { public static final Path AEBASE; + static{ AEBASE = FileTreeDatastore.of("essentials"); + if(!AEBASE.toFile().exists()) + { + try { + Files.createDirectory(AEBASE); + } catch (IOException e) { + e.printStackTrace(); + } + } } - public static Path of(String path) + public static void initialize() { - return AEBASE.resolve(path); + if(!AEBASE.toFile().exists()) + { + try { + Files.createDirectory(AEBASE); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + public static Path of(String path, boolean directory) + { + Path p = AEBASE.resolve(path); + if(!directory)return p; + if(!p.toFile().exists()) + { + try { + Files.createDirectory(p); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + return p; } } diff --git a/src/main/java/dev/zontreck/essentials/util/ForgeEventsHandler.java b/src/main/java/dev/zontreck/essentials/util/ForgeEventsHandler.java new file mode 100644 index 0000000..83cf419 --- /dev/null +++ b/src/main/java/dev/zontreck/essentials/util/ForgeEventsHandler.java @@ -0,0 +1,37 @@ +package dev.zontreck.essentials.util; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.UUID; + +import dev.zontreck.essentials.AriasEssentials; +import dev.zontreck.essentials.homes.HomesProvider; +import dev.zontreck.libzontreck.events.ProfileLoadedEvent; +import dev.zontreck.libzontreck.events.ProfileUnloadedEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +@Mod.EventBusSubscriber(modid = AriasEssentials.MODID, bus = Mod.EventBusSubscriber.Bus.FORGE) +public class ForgeEventsHandler { + + @SubscribeEvent + public void onProfileLoaded(final ProfileLoadedEvent ev) + { + //Path playerStore = EssentialsDatastore.of(ev.profile.user_id,true); + + AriasEssentials.player_homes.put(UUID.fromString(ev.profile.user_id), HomesProvider.getHomesForPlayer(ev.profile.user_id)); + AriasEssentials.LOGGER.info("Homes loaded"); + + + + } + + @SubscribeEvent + public void onProfileUnloaded(final ProfileUnloadedEvent ev) + { + AriasEssentials.player_homes.remove(UUID.fromString(ev.user_id)); + AriasEssentials.LOGGER.info("Homes unloaded"); + } +} diff --git a/src/main/java/dev/zontreck/essentials/warps/WarpsProvider.java b/src/main/java/dev/zontreck/essentials/warps/WarpsProvider.java index 2012958..cc478d6 100644 --- a/src/main/java/dev/zontreck/essentials/warps/WarpsProvider.java +++ b/src/main/java/dev/zontreck/essentials/warps/WarpsProvider.java @@ -9,19 +9,10 @@ import net.minecraft.nbt.NbtIo; public class WarpsProvider extends EssentialsDatastore { - public static final Path BASE = of("warps"); - public static final Path WARPS_DATA = BASE.resolve("warps.nbt"); + public static final Path BASE = of("warps.nbt", false); public static final Warps WARPS_INSTANCE; static{ - if(!BASE.toFile().exists()){ - try { - Files.createDirectory(BASE); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } WARPS_INSTANCE = getOrCreate(); } @@ -32,10 +23,10 @@ public class WarpsProvider extends EssentialsDatastore private static Warps getOrCreate() { Warps instance = null; - if(WARPS_DATA.toFile().exists()) + if(BASE.toFile().exists()) { try{ - instance= Warps.deserialize(NbtIo.read(WARPS_DATA.toFile())); + instance= Warps.deserialize(NbtIo.read(BASE.toFile())); }catch(Exception e){ instance=Warps.getNew(); @@ -50,7 +41,7 @@ public class WarpsProvider extends EssentialsDatastore public static void updateFile() { try { - NbtIo.write(WARPS_INSTANCE.serialize(), WARPS_DATA.toFile()); + NbtIo.write(WARPS_INSTANCE.serialize(), BASE.toFile()); } catch (IOException e) { e.printStackTrace(); } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index c12a964..9769404 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -15,7 +15,7 @@ license="All rights reserved" # A list of mods - how many allowed here is determined by the individual mod loader [[mods]] #mandatory # The modid of the mod -modId="essentials" #mandatory +modId="ariasessentials" #mandatory # The version number of the mod - there's a few well known ${} variables useable here or just hardcode it # ${file.jarVersion} will substitute the value of the Implementation-Version as read from the mod's JAR file metadata # see the associated build.gradle script for how to populate this completely automatically during a build @@ -37,7 +37,7 @@ description=''' This mod provides homes, warps, and teleporting of all kinds ''' # A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. -[[dependencies.essentials]] #optional +[[dependencies.ariasessentials]] #optional # the modid of the dependency modId="forge" #mandatory # Does this dependency have to exist - if not, ordering below must be specified @@ -49,16 +49,16 @@ This mod provides homes, warps, and teleporting of all kinds # Side this dependency is applied on - BOTH, CLIENT or SERVER side="BOTH" # Here's another dependency -[[dependencies.essentials]] +[[dependencies.ariasessentials]] modId="minecraft" mandatory=true # This version range declares a minimum of the current minecraft version up to but not including the next major version versionRange="[1.18.2,1.19)" ordering="NONE" side="BOTH" -[[dependencies.essentials]] +[[dependencies.ariasessentials]] modId="libzontreck" mandatory=true - versionRange="[1,)" + versionRange="[1.0.5,1.0.6)" ordering="NONE" side="BOTH" \ No newline at end of file