From d2bb43dcb0933a9acf299c8010ce566279918b93 Mon Sep 17 00:00:00 2001 From: broccolai Date: Fri, 19 Feb 2021 20:30:56 +0000 Subject: [PATCH] Change vault implementation --- src/main/java/broccolai/tags/TagsPlugin.java | 6 +- .../broccolai/tags/inject/VaultModule.java | 13 ++ .../tags/integrations/VaultIntegration.java | 190 ++---------------- 3 files changed, 39 insertions(+), 170 deletions(-) diff --git a/src/main/java/broccolai/tags/TagsPlugin.java b/src/main/java/broccolai/tags/TagsPlugin.java index 6caaa65..cac9164 100644 --- a/src/main/java/broccolai/tags/TagsPlugin.java +++ b/src/main/java/broccolai/tags/TagsPlugin.java @@ -86,7 +86,11 @@ public void onEnable() { this.injector.getInstance(TagsCommand.class); this.injector.getInstance(TagsAdminCommand.class); - this.injector.getInstance(VaultIntegration.class); + + this.getServer().getPluginManager().registerEvents( + this.injector.getInstance(VaultIntegration.class), + this + ); if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { this.injector.getInstance(PapiIntegration.class).register(); diff --git a/src/main/java/broccolai/tags/inject/VaultModule.java b/src/main/java/broccolai/tags/inject/VaultModule.java index 7f46fd4..87ab5c1 100644 --- a/src/main/java/broccolai/tags/inject/VaultModule.java +++ b/src/main/java/broccolai/tags/inject/VaultModule.java @@ -3,6 +3,7 @@ import com.google.inject.AbstractModule; import com.google.inject.Provides; import com.google.inject.Singleton; +import net.milkbowl.vault.chat.Chat; import net.milkbowl.vault.permission.Permission; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.RegisteredServiceProvider; @@ -10,6 +11,18 @@ public final class VaultModule extends AbstractModule { + @Provides + @Singleton + private Chat provideChat(final @NonNull Plugin plugin) { + RegisteredServiceProvider rsp = plugin.getServer().getServicesManager().getRegistration(Chat.class); + + if (rsp == null) { + throw new RuntimeException(); + } + + return rsp.getProvider(); + } + @Provides @Singleton private Permission providePermission(final @NonNull Plugin plugin) { diff --git a/src/main/java/broccolai/tags/integrations/VaultIntegration.java b/src/main/java/broccolai/tags/integrations/VaultIntegration.java index 12395d3..5a250e0 100644 --- a/src/main/java/broccolai/tags/integrations/VaultIntegration.java +++ b/src/main/java/broccolai/tags/integrations/VaultIntegration.java @@ -7,195 +7,47 @@ import com.google.inject.Inject; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import net.milkbowl.vault.chat.Chat; -import net.milkbowl.vault.permission.Permission; import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.ServicePriority; import org.checkerframework.checker.nullness.qual.NonNull; -public final class VaultIntegration { +public final class VaultIntegration implements Listener { private static final LegacyComponentSerializer LEGACY = LegacyComponentSerializer.builder() .hexColors() .character(LegacyComponentSerializer.SECTION_CHAR) .build(); + private final Plugin plugin; + private final Chat chat; + private final UserPipeline userPipeline; + private final TagsService tagsService; + @Inject public VaultIntegration( final @NonNull Plugin plugin, - final @NonNull Permission permission, + final @NonNull Chat chat, final @NonNull UserPipeline userPipeline, final @NonNull TagsService tagsService ) { - Chat provider = new ChatHandler(permission, userPipeline, tagsService); - Bukkit.getServicesManager().register(Chat.class, provider, plugin, ServicePriority.High); + this.plugin = plugin; + this.chat = chat; + this.userPipeline = userPipeline; + this.tagsService = tagsService; } - public static final class ChatHandler extends Chat { - - private final UserPipeline userPipeline; - private final TagsService tagsService; - - public ChatHandler( - final @NonNull Permission permission, - final @NonNull UserPipeline userPipeline, - final @NonNull TagsService tagsService - ) { - super(permission); - this.userPipeline = userPipeline; - this.tagsService = tagsService; - } - - @Override - public String getName() { - return "Tags"; - } - - @Override - public boolean isEnabled() { - return true; - } - - @SuppressWarnings("deprecation") - @Override - public String getPlayerPrefix(final String world, final String player) { - return this.getPlayerPrefix(world, Bukkit.getOfflinePlayer(player)); - } - - @Override - public String getPlayerPrefix(final String world, final OfflinePlayer player) { + @EventHandler + public void onPlayerJoin(final @NonNull PlayerJoinEvent event) { + Player player = event.getPlayer(); + Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { TagsUser user = this.userPipeline.get(player.getUniqueId()); Tag tag = this.tagsService.load(user); - return LEGACY.serialize(tag.component()); - } - - @Override - public void setPlayerPrefix(final String world, final String player, final String prefix) { - - } - - @Override - public String getPlayerSuffix(final String world, final String player) { - return ""; - } - - @Override - public void setPlayerSuffix(final String world, final String player, final String suffix) { - - } - - @Override - public String getGroupPrefix(final String world, final String group) { - return ""; - } - - @Override - public void setGroupPrefix(final String world, final String group, final String prefix) { - - } - - @Override - public String getGroupSuffix(final String world, final String group) { - return ""; - } - - @Override - public void setGroupSuffix(final String world, final String group, final String suffix) { - - } - - @Override - public int getPlayerInfoInteger(final String world, final String player, final String node, final int defaultValue) { - return 0; - } - - @Override - public void setPlayerInfoInteger(final String world, final String player, final String node, final int value) { - - } - - @Override - public int getGroupInfoInteger(final String world, final String group, final String node, final int defaultValue) { - return 0; - } - - @Override - public void setGroupInfoInteger(final String world, final String group, final String node, final int value) { - - } - - @Override - public double getPlayerInfoDouble(final String world, final String player, final String node, final double defaultValue) { - return 0; - } - - @Override - public void setPlayerInfoDouble(final String world, final String player, final String node, final double value) { - - } - - @Override - public double getGroupInfoDouble(final String world, final String group, final String node, final double defaultValue) { - return 0; - } - - @Override - public void setGroupInfoDouble(final String world, final String group, final String node, final double value) { - - } - - @Override - public boolean getPlayerInfoBoolean( - final String world, - final String player, - final String node, - final boolean defaultValue - ) { - return false; - } - - @Override - public void setPlayerInfoBoolean(final String world, final String player, final String node, final boolean value) { - - } - - @Override - public boolean getGroupInfoBoolean( - final String world, - final String group, - final String node, - final boolean defaultValue - ) { - return false; - } - - @Override - public void setGroupInfoBoolean(final String world, final String group, final String node, final boolean value) { - - } - - @Override - public String getPlayerInfoString(final String world, final String player, final String node, final String defaultValue) { - return null; - } - - @Override - public void setPlayerInfoString(final String world, final String player, final String node, final String value) { - - } - - @Override - public String getGroupInfoString(final String world, final String group, final String node, final String defaultValue) { - return null; - } - - @Override - public void setGroupInfoString(final String world, final String group, final String node, final String value) { - - } - + this.chat.setPlayerPrefix(player, LEGACY.serialize(tag.component())); + }); } - }