From 192e542a6a4579f4065724bc0b91a40f3d23513c Mon Sep 17 00:00:00 2001 From: david Date: Sat, 27 Apr 2024 16:08:04 +0200 Subject: [PATCH] cleanup --- .../java/net/thenextlvl/worlds/Worlds.java | 33 ++++++++++--------- plugin/src/main/resources/worlds.properties | 10 +++--- .../main/resources/worlds_german.properties | 10 +++--- 3 files changed, 28 insertions(+), 25 deletions(-) diff --git a/plugin/src/main/java/net/thenextlvl/worlds/Worlds.java b/plugin/src/main/java/net/thenextlvl/worlds/Worlds.java index 92197e28..538f2774 100644 --- a/plugin/src/main/java/net/thenextlvl/worlds/Worlds.java +++ b/plugin/src/main/java/net/thenextlvl/worlds/Worlds.java @@ -3,7 +3,6 @@ import core.annotation.FieldsAreNotNullByDefault; import core.annotation.ParametersAreNotNullByDefault; import core.i18n.file.ComponentBundle; -import core.io.IO; import lombok.Getter; import lombok.experimental.Accessors; import net.kyori.adventure.text.minimessage.MiniMessage; @@ -12,13 +11,15 @@ import net.thenextlvl.worlds.command.world.WorldCommand; import net.thenextlvl.worlds.image.Image; import net.thenextlvl.worlds.image.WorldImage; -import net.thenextlvl.worlds.link.LinkFile; +import net.thenextlvl.worlds.link.CraftLinkRegistry; +import net.thenextlvl.worlds.link.LinkRegistry; +import net.thenextlvl.worlds.listener.PortalListener; import net.thenextlvl.worlds.listener.WorldListener; import net.thenextlvl.worlds.preset.Presets; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import org.bukkit.event.player.PlayerKickEvent; +import org.bukkit.plugin.ServicePriority; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; @@ -30,23 +31,29 @@ @FieldsAreNotNullByDefault @ParametersAreNotNullByDefault public class Worlds extends JavaPlugin { - private final LinkFile linkFile = new LinkFile(IO.of(Bukkit.getWorldContainer(), ".links")); + private final CraftLinkRegistry linkRegistry = new CraftLinkRegistry(this); + private final File presetsFolder = new File(getDataFolder(), "presets"); - private final Metrics metrics = new Metrics(this, 19652); private final File translations = new File(getDataFolder(), "translations"); + private final ComponentBundle bundle = new ComponentBundle(translations, audience -> audience instanceof Player player ? player.locale() : Locale.US) .register("worlds", Locale.US) .register("worlds_german", Locale.GERMANY) .fallback(Locale.US); + private final Metrics metrics = new Metrics(this, 19652); + @Override public void onLoad() { - saveDefaultPresets(); bundle().miniMessage(MiniMessage.builder().tags(TagResolver.resolver( TagResolver.standard(), Placeholder.component("prefix", bundle().component(Locale.US, "prefix")) )).build()); + + Bukkit.getServicesManager().register(LinkRegistry.class, linkRegistry(), this, ServicePriority.Highest); + + saveDefaultPresets(); } @Override @@ -54,6 +61,7 @@ public void onEnable() { Image.findImages().stream() .filter(WorldImage::loadOnStart) .forEach(Image::load); + linkRegistry.loadLinks(); registerListeners(); registerCommands(); } @@ -66,24 +74,19 @@ public void onDisable() { .forEach(image -> { var worldImage = image.getWorldImage(); if (worldImage.deletion() != null) { - image.getWorld().getPlayers().forEach(player -> player.kick( - Bukkit.shutdownMessage(), - PlayerKickEvent.Cause.RESTART_COMMAND - )); + image.getWorld().getPlayers().forEach(player -> player.kick(Bukkit.shutdownMessage())); image.deleteImmediately(worldImage.deletion().keepImage(), false); } else if (!worldImage.autoSave()) { - image.getWorld().getPlayers().forEach(player -> player.kick( - Bukkit.shutdownMessage(), - PlayerKickEvent.Cause.RESTART_COMMAND - )); + image.getWorld().getPlayers().forEach(player -> player.kick(Bukkit.shutdownMessage())); image.unload(); } }); + linkRegistry.saveLinks(); metrics.shutdown(); - linkFile().save(); } private void registerListeners() { + Bukkit.getPluginManager().registerEvents(new PortalListener(this), this); Bukkit.getPluginManager().registerEvents(new WorldListener(this), this); } diff --git a/plugin/src/main/resources/worlds.properties b/plugin/src/main/resources/worlds.properties index 5dd17901..1fcdf367 100644 --- a/plugin/src/main/resources/worlds.properties +++ b/plugin/src/main/resources/worlds.properties @@ -11,8 +11,8 @@ world.known= A world called does already exi world.unknown= A world called does not exist world.preset.invalid= The world preset is not a valid json string world.preset.flat= Presets are only applicable on flat maps -world.copy.success= Successfully copied world -world.copy.failed= Failed to copy world +world.clone.success= Successfully cloned world +world.clone.failed= Failed to clone world world.spawn.set.success= Set world spawn at , , [] world.spawn.set.failed= Failed to change world spawn world.info.name= Name: @@ -29,10 +29,10 @@ world.delete.nothing= There is nothing to delete world.delete.failed= Failed to delete the world world.delete.scheduled= The world will be deleted on the next restart image.delete.failed= Failed to delete the image -link.exists= The link : -> does already exists +link.exists= The link : -> does already exists link.exists.not= The link does not exist -link.deleted= Deleted the link : -> -link.created= Created a new link : -> +link.deleted= Deleted the link : -> +link.created= Created a new link : -> link.list.empty= There are no links yet link.list= Links (): image.exists.not= An image called does not exist diff --git a/plugin/src/main/resources/worlds_german.properties b/plugin/src/main/resources/worlds_german.properties index a25216dc..8355ab78 100644 --- a/plugin/src/main/resources/worlds_german.properties +++ b/plugin/src/main/resources/worlds_german.properties @@ -10,8 +10,8 @@ world.known= Eine Welt mit dem namen existie world.unknown= Eine Welt mit dem namen existiert nicht world.preset.invalid= Die Welten Voreinstellung ist kein gültiger json Text world.preset.flat= Voreinstellungen sind nur auf flache Welten anwendbar -world.copy.success= Die Welt wurde erfolgreich kopiert -world.copy.failed= Die Welt konnte nicht kopiert werden +world.clone.success= Die Welt wurde erfolgreich geklont +world.clone.failed= Die Welt konnte nicht geklont werden world.spawn.set.success= Der spawn ist jetzt bei , , [] world.spawn.set.failed= Der spawn konnte nicht neu gesetzt werden world.info.name= Name: @@ -28,10 +28,10 @@ world.unload.success= Die Welt wurde erfolg world.delete.failed= Die Welt konnte nicht gelöscht werden world.delete.scheduled= Die Welt wird beim nächsten Neustart gelöscht image.delete.failed= Das Abbild konnte nicht gelöscht werden -link.exists= Der Link : -> existiert bereits +link.exists= Der Link : -> existiert bereits link.exists.not= Der Link existiert nicht -link.deleted= Der Link : -> wurde gelöscht -link.created= Der Link : -> wurde erstellt +link.deleted= Der Link : -> wurde gelöscht +link.created= Der Link : -> wurde erstellt link.list.empty= Es existieren noch keine links link.list= Links (): image.exists.not= Ein Abbild mit dem namen existiert nicht