Add MiniMessage
This commit is contained in:
parent
bb5c642f31
commit
083012abfe
74 changed files with 1328 additions and 1078 deletions
|
|
@ -3,13 +3,18 @@ package net.frankheijden.serverutils.bungee.commands;
|
|||
import cloud.commandframework.Command;
|
||||
import cloud.commandframework.CommandManager;
|
||||
import cloud.commandframework.context.CommandContext;
|
||||
import net.frankheijden.serverutils.bungee.entities.BungeeCommandSender;
|
||||
import net.frankheijden.serverutils.bungee.entities.BungeeAudience;
|
||||
import net.frankheijden.serverutils.bungee.entities.BungeePlugin;
|
||||
import net.frankheijden.serverutils.common.commands.CommandPlugins;
|
||||
import net.frankheijden.serverutils.common.config.MessageKey;
|
||||
import net.frankheijden.serverutils.common.config.MessagesResource;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import net.kyori.adventure.text.minimessage.Template;
|
||||
import net.md_5.bungee.api.plugin.Plugin;
|
||||
import net.md_5.bungee.api.plugin.PluginDescription;
|
||||
|
||||
public class BungeeCommandPlugins extends CommandPlugins<BungeePlugin, Plugin, BungeeCommandSender> {
|
||||
public class BungeeCommandPlugins extends CommandPlugins<BungeePlugin, Plugin, BungeeAudience> {
|
||||
|
||||
public BungeeCommandPlugins(BungeePlugin plugin) {
|
||||
super(plugin);
|
||||
|
|
@ -17,8 +22,8 @@ public class BungeeCommandPlugins extends CommandPlugins<BungeePlugin, Plugin, B
|
|||
|
||||
@Override
|
||||
protected void register(
|
||||
CommandManager<BungeeCommandSender> manager,
|
||||
Command.Builder<BungeeCommandSender> builder
|
||||
CommandManager<BungeeAudience> manager,
|
||||
Command.Builder<BungeeAudience> builder
|
||||
) {
|
||||
manager.command(builder
|
||||
.flag(parseFlag("version"))
|
||||
|
|
@ -27,27 +32,26 @@ public class BungeeCommandPlugins extends CommandPlugins<BungeePlugin, Plugin, B
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void handlePlugins(CommandContext<BungeeCommandSender> context) {
|
||||
BungeeCommandSender sender = context.getSender();
|
||||
protected void handlePlugins(CommandContext<BungeeAudience> context) {
|
||||
BungeeAudience sender = context.getSender();
|
||||
boolean hasVersionFlag = context.flags().contains("version");
|
||||
boolean hasModulesFlag = context.flags().contains("modules");
|
||||
|
||||
MessagesResource messages = plugin.getMessagesResource();
|
||||
handlePlugins(sender, plugin.getPluginManager().getPluginsSorted(hasModulesFlag), bungeePlugin -> {
|
||||
PluginDescription description = bungeePlugin.getDescription();
|
||||
|
||||
String message = plugin.getMessagesResource().getMessage(
|
||||
"serverutils.plugins.format",
|
||||
"%plugin%", description.getName()
|
||||
);
|
||||
|
||||
TextComponent.Builder builder = Component.text();
|
||||
builder.append(messages.get(MessageKey.PLUGINS_FORMAT).toComponent(
|
||||
Template.of("plugin", description.getName())
|
||||
));
|
||||
if (hasVersionFlag) {
|
||||
message += plugin.getMessagesResource().getMessage(
|
||||
"serverutils.plugins.version",
|
||||
"%version%", description.getVersion()
|
||||
);
|
||||
builder.append(messages.get(MessageKey.PLUGINS_FORMAT).toComponent(
|
||||
Template.of("version", description.getVersion())
|
||||
));
|
||||
}
|
||||
|
||||
return message;
|
||||
return builder.build();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,27 +5,28 @@ import java.util.Map;
|
|||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
import net.frankheijden.serverutils.bungee.ServerUtils;
|
||||
import net.frankheijden.serverutils.bungee.entities.BungeeCommandSender;
|
||||
import net.frankheijden.serverutils.bungee.entities.BungeeAudience;
|
||||
import net.frankheijden.serverutils.bungee.entities.BungeePlugin;
|
||||
import net.frankheijden.serverutils.bungee.reflection.RPluginManager;
|
||||
import net.frankheijden.serverutils.common.commands.CommandServerUtils;
|
||||
import net.frankheijden.serverutils.common.utils.FormatBuilder;
|
||||
import net.frankheijden.serverutils.common.utils.ListBuilder;
|
||||
import net.frankheijden.serverutils.common.utils.KeyValueComponentBuilder;
|
||||
import net.frankheijden.serverutils.common.utils.ListComponentBuilder;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.md_5.bungee.api.plugin.Command;
|
||||
import net.md_5.bungee.api.plugin.Plugin;
|
||||
import net.md_5.bungee.api.plugin.PluginDescription;
|
||||
import net.md_5.bungee.api.plugin.PluginManager;
|
||||
|
||||
public class BungeeCommandServerUtils extends CommandServerUtils<BungeePlugin, Plugin, BungeeCommandSender> {
|
||||
public class BungeeCommandServerUtils extends CommandServerUtils<BungeePlugin, Plugin, BungeeAudience> {
|
||||
|
||||
public BungeeCommandServerUtils(BungeePlugin plugin) {
|
||||
super(plugin, Plugin[]::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected FormatBuilder createPluginInfo(
|
||||
FormatBuilder builder,
|
||||
Function<Consumer<ListBuilder<String>>, String> listBuilderFunction,
|
||||
protected KeyValueComponentBuilder createPluginInfo(
|
||||
KeyValueComponentBuilder builder,
|
||||
Function<Consumer<ListComponentBuilder<String>>, Component> listBuilderFunction,
|
||||
Plugin bungeePlugin
|
||||
) {
|
||||
PluginDescription desc = bungeePlugin.getDescription();
|
||||
|
|
@ -42,9 +43,9 @@ public class BungeeCommandServerUtils extends CommandServerUtils<BungeePlugin, P
|
|||
}
|
||||
|
||||
@Override
|
||||
protected FormatBuilder createCommandInfo(
|
||||
FormatBuilder builder,
|
||||
Function<Consumer<ListBuilder<String>>, String> listBuilderFunction,
|
||||
protected KeyValueComponentBuilder createCommandInfo(
|
||||
KeyValueComponentBuilder builder,
|
||||
Function<Consumer<ListComponentBuilder<String>>, Component> listBuilderFunction,
|
||||
String commandName
|
||||
) {
|
||||
PluginManager proxyPluginManager = ServerUtils.getInstance().getProxy().getPluginManager();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
package net.frankheijden.serverutils.bungee.entities;
|
||||
|
||||
import net.frankheijden.serverutils.common.entities.ServerUtilsAudience;
|
||||
import net.kyori.adventure.audience.Audience;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
public class BungeeAudience extends ServerUtilsAudience<CommandSender> {
|
||||
|
||||
protected BungeeAudience(Audience audience, CommandSender source) {
|
||||
super(audience, source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlayer() {
|
||||
return source instanceof ProxiedPlayer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String permission) {
|
||||
return source.hasPermission(permission);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
package net.frankheijden.serverutils.bungee.entities;
|
||||
|
||||
import net.frankheijden.serverutils.bungee.ServerUtils;
|
||||
import net.frankheijden.serverutils.common.providers.ServerUtilsAudienceProvider;
|
||||
import net.kyori.adventure.platform.bungeecord.BungeeAudiences;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
|
||||
public class BungeeAudienceProvider implements ServerUtilsAudienceProvider<CommandSender> {
|
||||
|
||||
private final BungeeAudiences audiences;
|
||||
private final BungeeAudience consoleServerAudience;
|
||||
|
||||
/**
|
||||
* Constructs a new BungeeAudienceProvider.
|
||||
*/
|
||||
public BungeeAudienceProvider(ServerUtils plugin, BungeeAudiences audiences) {
|
||||
this.audiences = audiences;
|
||||
this.consoleServerAudience = new BungeeAudience(
|
||||
audiences.console(),
|
||||
plugin.getProxy().getConsole()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BungeeAudience getConsoleServerAudience() {
|
||||
return consoleServerAudience;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BungeeAudience get(CommandSender source) {
|
||||
return new BungeeAudience(audiences.sender(source), source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void broadcast(Component component, String permission) {
|
||||
audiences.filter(sender -> sender.hasPermission(permission)).sendMessage(component);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
package net.frankheijden.serverutils.bungee.entities;
|
||||
|
||||
import net.frankheijden.serverutils.common.providers.ChatProvider;
|
||||
import net.frankheijden.serverutils.common.utils.HexUtils;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.ProxyServer;
|
||||
|
||||
public class BungeeChatProvider implements ChatProvider<BungeeCommandSender, CommandSender> {
|
||||
|
||||
@Override
|
||||
public BungeeCommandSender getConsoleSender() {
|
||||
return new BungeeCommandSender(ProxyServer.getInstance().getConsole());
|
||||
}
|
||||
|
||||
@Override
|
||||
public BungeeCommandSender get(CommandSender source) {
|
||||
return new BungeeCommandSender(source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String color(String str) {
|
||||
return ChatColor.translateAlternateColorCodes('&', HexUtils.convertHexString(str));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void broadcast(String permission, String message) {
|
||||
ProxyServer.getInstance().getPlayers().stream()
|
||||
.filter(p -> p.hasPermission(permission))
|
||||
.forEach(p -> p.sendMessage(message));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
package net.frankheijden.serverutils.bungee.entities;
|
||||
|
||||
import net.frankheijden.serverutils.common.entities.ServerCommandSender;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
public class BungeeCommandSender implements ServerCommandSender<CommandSender> {
|
||||
|
||||
private final CommandSender sender;
|
||||
|
||||
public BungeeCommandSender(CommandSender sender) {
|
||||
this.sender = sender;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(String message) {
|
||||
sender.sendMessage(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String permission) {
|
||||
return sender.hasPermission(permission);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether or not the given instance is a player.
|
||||
* @return Boolean true or false.
|
||||
*/
|
||||
@Override
|
||||
public boolean isPlayer() {
|
||||
return sender instanceof ProxiedPlayer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommandSender getSource() {
|
||||
return sender;
|
||||
}
|
||||
}
|
||||
|
|
@ -11,17 +11,19 @@ import net.frankheijden.serverutils.bungee.listeners.BungeePlayerListener;
|
|||
import net.frankheijden.serverutils.bungee.managers.BungeePluginManager;
|
||||
import net.frankheijden.serverutils.bungee.managers.BungeeTaskManager;
|
||||
import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin;
|
||||
import net.kyori.adventure.platform.bungeecord.BungeeAudiences;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.plugin.Plugin;
|
||||
import net.md_5.bungee.api.scheduler.ScheduledTask;
|
||||
|
||||
public class BungeePlugin extends ServerUtilsPlugin<Plugin, ScheduledTask, BungeeCommandSender, CommandSender, BungeePluginDescription> {
|
||||
public class BungeePlugin extends ServerUtilsPlugin<Plugin, ScheduledTask, BungeeAudience, CommandSender, BungeePluginDescription> {
|
||||
|
||||
private final ServerUtils plugin;
|
||||
private final BungeePluginManager pluginManager;
|
||||
private final BungeeTaskManager taskManager;
|
||||
private final BungeeResourceProvider resourceProvider;
|
||||
private final BungeeChatProvider chatProvider;
|
||||
private final BungeeAudiences audiences;
|
||||
private final BungeeAudienceProvider chatProvider;
|
||||
|
||||
/**
|
||||
* Creates a new BungeePlugin instance of ServerUtils.
|
||||
|
|
@ -32,16 +34,17 @@ public class BungeePlugin extends ServerUtilsPlugin<Plugin, ScheduledTask, Bunge
|
|||
this.pluginManager = new BungeePluginManager();
|
||||
this.taskManager = new BungeeTaskManager();
|
||||
this.resourceProvider = new BungeeResourceProvider(plugin);
|
||||
this.chatProvider = new BungeeChatProvider();
|
||||
this.audiences = BungeeAudiences.create(plugin);
|
||||
this.chatProvider = new BungeeAudienceProvider(plugin, audiences);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BungeeCommandManager<BungeeCommandSender> newCommandManager() {
|
||||
protected BungeeCommandManager<BungeeAudience> newCommandManager() {
|
||||
return new BungeeCommandManager<>(
|
||||
plugin,
|
||||
AsynchronousCommandExecutionCoordinator.<BungeeCommandSender>newBuilder().build(),
|
||||
AsynchronousCommandExecutionCoordinator.<BungeeAudience>newBuilder().build(),
|
||||
chatProvider::get,
|
||||
BungeeCommandSender::getSource
|
||||
BungeeAudience::getSource
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -71,7 +74,7 @@ public class BungeePlugin extends ServerUtilsPlugin<Plugin, ScheduledTask, Bunge
|
|||
}
|
||||
|
||||
@Override
|
||||
public BungeeChatProvider getChatProvider() {
|
||||
public BungeeAudienceProvider getChatProvider() {
|
||||
return chatProvider;
|
||||
}
|
||||
|
||||
|
|
@ -90,6 +93,11 @@ public class BungeePlugin extends ServerUtilsPlugin<Plugin, ScheduledTask, Bunge
|
|||
plugin.getProxy().getPluginManager().registerListener(plugin, new BungeePlayerListener(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void disablePlugin() {
|
||||
this.audiences.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void reloadPlugin() {
|
||||
new BungeeCommandPlugins(this).register(commandManager);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package net.frankheijden.serverutils.bungee.listeners;
|
||||
|
||||
import net.frankheijden.serverutils.bungee.entities.BungeeCommandSender;
|
||||
import net.frankheijden.serverutils.bungee.entities.BungeeAudience;
|
||||
import net.frankheijden.serverutils.bungee.entities.BungeePlugin;
|
||||
import net.frankheijden.serverutils.common.listeners.PlayerListener;
|
||||
import net.md_5.bungee.api.event.ServerConnectEvent;
|
||||
|
|
@ -8,8 +8,7 @@ import net.md_5.bungee.api.plugin.Listener;
|
|||
import net.md_5.bungee.api.plugin.Plugin;
|
||||
import net.md_5.bungee.event.EventHandler;
|
||||
|
||||
public class BungeePlayerListener
|
||||
extends PlayerListener<BungeePlugin, Plugin, BungeeCommandSender>
|
||||
public class BungeePlayerListener extends PlayerListener<BungeePlugin, Plugin, BungeeAudience>
|
||||
implements Listener {
|
||||
|
||||
public BungeePlayerListener(BungeePlugin plugin) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue