Skip to content

Commit

Permalink
Change vault implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
broccolai committed Feb 19, 2021
1 parent f0b6e73 commit d2bb43d
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 170 deletions.
6 changes: 5 additions & 1 deletion src/main/java/broccolai/tags/TagsPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
13 changes: 13 additions & 0 deletions src/main/java/broccolai/tags/inject/VaultModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,26 @@
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;
import org.checkerframework.checker.nullness.qual.NonNull;

public final class VaultModule extends AbstractModule {

@Provides
@Singleton
private Chat provideChat(final @NonNull Plugin plugin) {
RegisteredServiceProvider<Chat> 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) {
Expand Down
190 changes: 21 additions & 169 deletions src/main/java/broccolai/tags/integrations/VaultIntegration.java
Original file line number Diff line number Diff line change
Expand Up @@ -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()));
});
}

}

0 comments on commit d2bb43d

Please sign in to comment.