Updated minimessage

This commit is contained in:
Teriuihi 2022-05-30 20:09:20 +02:00
parent 92c1ee42a9
commit 05cc57ddec
10 changed files with 102 additions and 46 deletions

View File

@ -33,10 +33,10 @@ allprojects {
dependencies { dependencies {
// Minimessage // Minimessage
implementation("net.kyori:adventure-text-minimessage:4.1.0-SNAPSHOT") // implementation("net.kyori:adventure-text-minimessage:4.1.0-SNAPSHOT")
// Velocity // Velocity
compileOnly("com.velocitypowered:velocity-api:3.0.1") // Velocity compileOnly("com.velocitypowered:velocity-api:3.1.2-SNAPSHOT") // Velocity
annotationProcessor("com.velocitypowered:velocity-api:3.0.1") annotationProcessor("com.velocitypowered:velocity-api:3.1.2-SNAPSHOT")
// JDA // JDA
implementation("net.dv8tion:JDA:5.0.0-alpha.3") { implementation("net.dv8tion:JDA:5.0.0-alpha.3") {
shadow("net.dv8tion:JDA:5.0.0-alpha.3") { shadow("net.dv8tion:JDA:5.0.0-alpha.3") {
@ -55,8 +55,8 @@ dependencies {
shadowJar { shadowJar {
archiveFileName.set("${project.name}-${project.version}.jar") archiveFileName.set("${project.name}-${project.version}.jar")
exclude("net.kyori.adventure") // exclude("net.kyori.adventure")
exclude("net.kyori.examination") // exclude("net.kyori.examination")
minimize { minimize {
//exclude(dependency("net.kyori:.*:.*")) //exclude(dependency("net.kyori:.*:.*"))
} }

View File

@ -14,7 +14,7 @@ dependencyResolutionManagement {
// JDA // JDA
maven("https://m2.dv8tion.net/releases/") maven("https://m2.dv8tion.net/releases/")
// MiniMessage // MiniMessage
maven("https://oss.sonatype.org/content/repositories/snapshots/") // maven("https://oss.sonatype.org/content/repositories/snapshots/")
// LiteBans // LiteBans
maven("https://jitpack.io") maven("https://jitpack.io")
} }

View File

@ -9,7 +9,7 @@ import net.dv8tion.jda.api.events.guild.member.GuildMemberRoleRemoveEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.List; import java.util.List;
@ -23,7 +23,7 @@ public class DiscordRoleListener extends ListenerAdapter {
public DiscordRoleListener() { public DiscordRoleListener() {
plugin = DiscordLink.getPlugin(); plugin = DiscordLink.getPlugin();
bot = plugin.getBot(); bot = plugin.getBot();
miniMessage = MiniMessage.get(); miniMessage = MiniMessage.miniMessage();
} }
/** /**
@ -53,9 +53,10 @@ public class DiscordRoleListener extends ListenerAdapter {
added_roles.forEach(discordRole -> { added_roles.forEach(discordRole -> {
discordLinkPlayer.addRole(discordRole.getInternalName()); discordLinkPlayer.addRole(discordRole.getInternalName());
if (!discordRole.getAnnouncement().isEmpty()) { if (!discordRole.getAnnouncement().isEmpty()) {
Component component = miniMessage.parse( Component component = miniMessage.deserialize(
discordRole.getAnnouncement(), discordRole.getAnnouncement(),
Template.of("player", discordLinkPlayer.getUsername()));
Placeholder.unparsed("player", discordLinkPlayer.getUsername()));
DiscordLink.getPlugin().getProxy().getAllPlayers() DiscordLink.getPlugin().getProxy().getAllPlayers()
.forEach(onlinePlayer -> onlinePlayer.sendMessage(component)); .forEach(onlinePlayer -> onlinePlayer.sendMessage(component));

View File

@ -11,7 +11,7 @@ import com.velocitypowered.api.command.SimpleCommand;
import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.Player;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -24,7 +24,7 @@ public class MinecraftCommand implements SimpleCommand {
public MinecraftCommand() { public MinecraftCommand() {
subCommands = Arrays.asList(new CheckLinked(), new Link(), new Unlink(), new Reload()); subCommands = Arrays.asList(new CheckLinked(), new Link(), new Unlink(), new Reload());
miniMessage = MiniMessage.get(); miniMessage = MiniMessage.miniMessage();
} }
@Override @Override
@ -34,11 +34,11 @@ public class MinecraftCommand implements SimpleCommand {
if (args.length < 1) { if (args.length < 1) {
if (!source.hasPermission("discordlink.link")) if (!source.hasPermission("discordlink.link"))
source.sendMessage(miniMessage.parse(Config.NO_PERMISSION)); source.sendMessage(miniMessage.deserialize(Config.NO_PERMISSION));
else if (source instanceof Player) else if (source instanceof Player)
source.sendMessage(miniMessage.parse(Config.DISCORD_LINK)); source.sendMessage(miniMessage.deserialize(Config.DISCORD_LINK));
else else
source.sendMessage(miniMessage.parse(Config.NO_CONSOLE)); source.sendMessage(miniMessage.deserialize(Config.NO_CONSOLE));
return; return;
} }
@ -98,6 +98,6 @@ public class MinecraftCommand implements SimpleCommand {
if (stringBuilder.length() != 0) if (stringBuilder.length() != 0)
stringBuilder.replace(stringBuilder.length() - 1, stringBuilder.length(), ""); stringBuilder.replace(stringBuilder.length() - 1, stringBuilder.length(), "");
return miniMessage.parse(Config.HELP_MESSAGE, Template.of("commands", stringBuilder.toString())); return miniMessage.deserialize(Config.HELP_MESSAGE, Placeholder.unparsed("commands", stringBuilder.toString()));
} }
} }

View File

@ -6,7 +6,8 @@ import com.alttd.proxydiscordlink.minecraft.commands.SubCommand;
import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.Player;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -22,7 +23,7 @@ public class CheckLinked implements SubCommand {
public CheckLinked() { public CheckLinked() {
name = "checklinked"; name = "checklinked";
permission = "discordlink.checklinked"; permission = "discordlink.checklinked";
miniMessage = MiniMessage.get(); miniMessage = MiniMessage.miniMessage();
} }
public String getName() { public String getName() {
@ -36,11 +37,11 @@ public class CheckLinked implements SubCommand {
@Override @Override
public void execute(String[] args, CommandSource source) { public void execute(String[] args, CommandSource source) {
if (!source.hasPermission(getPermission())) { if (!source.hasPermission(getPermission())) {
source.sendMessage(miniMessage.parse(Config.NO_PERMISSION)); source.sendMessage(miniMessage.deserialize(Config.NO_PERMISSION));
return; return;
} }
if (args.length != 2 || !args[1].matches("\\w{3,16}")) { if (args.length != 2 || !args[1].matches("\\w{3,16}")) {
source.sendMessage(miniMessage.parse(getHelpMessage())); source.sendMessage(miniMessage.deserialize(getHelpMessage()));
return; return;
} }
@ -53,7 +54,7 @@ public class CheckLinked implements SubCommand {
.getPlayer(UUID.fromString(uuidFromName)); .getPlayer(UUID.fromString(uuidFromName));
if (optionalPlayer.isEmpty()) if (optionalPlayer.isEmpty())
{ {
source.sendMessage(miniMessage.parse(Config.INVALID_PLAYER, Template.of("player", args[1]))); source.sendMessage(miniMessage.deserialize(Config.INVALID_PLAYER, Placeholder.unparsed("player", args[1])));
return; return;
} }
} }
@ -62,12 +63,12 @@ public class CheckLinked implements SubCommand {
} }
private void isLinked(CommandSource source, Player player) { private void isLinked(CommandSource source, Player player) {
List<Template> templates = List.of( TagResolver tagResolver = TagResolver.resolver(
Template.of("linked_status", DiscordLink.getPlugin().getDatabase() Placeholder.unparsed("linked_status", DiscordLink.getPlugin().getDatabase()
.playerIsLinked(player.getUniqueId()) ? "linked" : "not linked"), .playerIsLinked(player.getUniqueId()) ? "linked" : "not linked"),
Template.of("player", player.getUsername())); Placeholder.unparsed("player", player.getUsername()));
source.sendMessage(miniMessage.parse(Config.IS_LINKED, templates)); source.sendMessage(miniMessage.deserialize(Config.IS_LINKED, tagResolver));
} }
@Override @Override

View File

@ -8,7 +8,7 @@ import com.alttd.proxydiscordlink.util.Utilities;
import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.Player;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -22,7 +22,7 @@ public class Link implements SubCommand {
public Link() { public Link() {
name = "link"; name = "link";
permission = "discordlink.link"; permission = "discordlink.link";
miniMessage = MiniMessage.get(); miniMessage = MiniMessage.miniMessage();
} }
public String getName() { public String getName() {
@ -36,11 +36,11 @@ public class Link implements SubCommand {
@Override @Override
public void execute(String[] args, CommandSource source) { public void execute(String[] args, CommandSource source) {
if (!(source instanceof Player player)) { if (!(source instanceof Player player)) {
source.sendMessage(miniMessage.parse(Config.NO_CONSOLE)); source.sendMessage(miniMessage.deserialize(Config.NO_CONSOLE));
return; return;
} }
if (!player.hasPermission(getPermission())) { if (!player.hasPermission(getPermission())) {
source.sendMessage(miniMessage.parse(Config.NO_PERMISSION)); source.sendMessage(miniMessage.deserialize(Config.NO_PERMISSION));
return; return;
} }
@ -51,18 +51,18 @@ public class Link implements SubCommand {
Database database = DiscordLink.getPlugin().getDatabase(); Database database = DiscordLink.getPlugin().getDatabase();
if (database.playerIsLinked(player.getUniqueId())) { if (database.playerIsLinked(player.getUniqueId())) {
player.sendMessage(miniMessage.parse(Config.ALREADY_LINKED_ACCOUNTS)); player.sendMessage(miniMessage.deserialize(Config.ALREADY_LINKED_ACCOUNTS));
return; return;
} }
String authCode = DiscordLink.getPlugin().getCache().getCode(player.getUniqueId()); String authCode = DiscordLink.getPlugin().getCache().getCode(player.getUniqueId());
if (authCode != null) { if (authCode != null) {
player.sendMessage(miniMessage.parse(Config.ALREADY_GOT_CODE, Template.of("code", authCode))); player.sendMessage(miniMessage.deserialize(Config.ALREADY_GOT_CODE, Placeholder.unparsed("code", authCode)));
return; return;
} }
authCode = Utilities.getAuthKey(); authCode = Utilities.getAuthKey();
player.sendMessage(miniMessage.parse(Config.GIVE_CODE, Template.of("code", authCode))); player.sendMessage(miniMessage.deserialize(Config.GIVE_CODE, Placeholder.unparsed("code", authCode)));
DiscordLink.getPlugin().getCache() DiscordLink.getPlugin().getCache()
.cacheCode(player.getUniqueId(), authCode); .cacheCode(player.getUniqueId(), authCode);
} }

View File

@ -18,7 +18,7 @@ public class Reload implements SubCommand {
public Reload() { public Reload() {
name = "reload"; name = "reload";
permission = "discordlink.reload"; permission = "discordlink.reload";
miniMessage = MiniMessage.get(); miniMessage = MiniMessage.miniMessage();
} }
@Override @Override
@ -34,7 +34,7 @@ public class Reload implements SubCommand {
@Override @Override
public void execute(String[] args, CommandSource source) { public void execute(String[] args, CommandSource source) {
DiscordLink.getPlugin().reloadConfig(); DiscordLink.getPlugin().reloadConfig();
source.sendMessage(miniMessage.parse(Config.RELOAD_CONFIG)); source.sendMessage(miniMessage.deserialize(Config.RELOAD_CONFIG));
} }
@Override @Override

View File

@ -1,25 +1,79 @@
package com.alttd.proxydiscordlink.minecraft.commands.subcommands; package com.alttd.proxydiscordlink.minecraft.commands.subcommands;
import com.alttd.proxydiscordlink.DiscordLink;
import com.alttd.proxydiscordlink.bot.objects.DiscordRole;
import com.alttd.proxydiscordlink.config.Config;
import com.alttd.proxydiscordlink.database.Database;
import com.alttd.proxydiscordlink.minecraft.commands.SubCommand; import com.alttd.proxydiscordlink.minecraft.commands.SubCommand;
import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer;
import com.alttd.proxydiscordlink.util.Utilities;
import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.proxy.Player;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.luckperms.api.model.user.User;
import net.luckperms.api.node.NodeType;
import net.luckperms.api.node.types.InheritanceNode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
public class Sync implements SubCommand { //TODO implement public class Sync implements SubCommand { //TODO implement
private final String name;
private final String permission;
private final MiniMessage miniMessage;
public Sync() { //TODO finish syncing roles to db and init command
name = "sync";
permission = "discordlink.sync";
miniMessage = MiniMessage.miniMessage();
}
@Override @Override
public String getName() { public String getName() {
return null; return name;
} }
@Override @Override
public String getPermission() { public String getPermission() {
return null; return permission;
} }
@Override @Override
public void execute(String[] args, CommandSource source) { public void execute(String[] args, CommandSource source) {
if (!(source instanceof Player player)) {
source.sendMessage(miniMessage.deserialize(Config.NO_CONSOLE));
return;
}
if (!player.hasPermission(getPermission())) {
source.sendMessage(miniMessage.deserialize(Config.NO_PERMISSION));
return;
}
User user = Utilities.getLuckPerms().getUserManager().getUser(player.getUniqueId());
if (user == null) {
source.sendMessage(miniMessage.deserialize(Config.INVALID_PLAYER));
return;
}
player.sendMessage(syncAccounts(user));
}
private Component syncAccounts(User user) {
Database database = DiscordLink.getPlugin().getDatabase();
if (!database.playerIsLinked(user.getUniqueId())) {
return miniMessage.deserialize(Config.ACCOUNTS_NOT_LINKED);
}
DiscordLinkPlayer discordLinkPlayer = DiscordLinkPlayer.getDiscordLinkPlayer(user.getUniqueId());
List<DiscordRole> discordRoles = DiscordRole.getDiscordRoles().stream().filter(DiscordRole::isUpdateToDiscord).collect(Collectors.toList());
Collection<InheritanceNode> nodes = user.getNodes(NodeType.INHERITANCE);
//TODO reset all roles and add them again, maybe relinking them is easier???
// return miniMessage.deserialize(Config.SYNCHED_ACCOUNTS);
return (null);
} }
@Override @Override
@ -29,6 +83,6 @@ public class Sync implements SubCommand { //TODO implement
@Override @Override
public String getHelpMessage() { public String getHelpMessage() {
return null; return Config.HELP_SYNC;
} }
} }

View File

@ -27,7 +27,7 @@ public class Unlink implements SubCommand {
public Unlink() { public Unlink() {
name = "unlink"; name = "unlink";
permission = "discordlink.unlink"; permission = "discordlink.unlink";
miniMessage = MiniMessage.get(); miniMessage = MiniMessage.miniMessage();
} }
@Override @Override
@ -46,11 +46,11 @@ public class Unlink implements SubCommand {
unlinkOther(args, source); unlinkOther(args, source);
} }
if (!(source instanceof Player player)) { if (!(source instanceof Player player)) {
source.sendMessage(miniMessage.parse(Config.NO_CONSOLE)); source.sendMessage(miniMessage.deserialize(Config.NO_CONSOLE));
return; return;
} }
if (!player.hasPermission(getPermission())) { if (!player.hasPermission(getPermission())) {
source.sendMessage(miniMessage.parse(Config.NO_PERMISSION)); source.sendMessage(miniMessage.deserialize(Config.NO_PERMISSION));
return; return;
} }
@ -59,12 +59,12 @@ public class Unlink implements SubCommand {
private void unlinkOther(String[] args, CommandSource source) { private void unlinkOther(String[] args, CommandSource source) {
if (!source.hasPermission(getPermission() + ".other")) { if (!source.hasPermission(getPermission() + ".other")) {
source.sendMessage(miniMessage.parse(Config.NO_PERMISSION)); source.sendMessage(miniMessage.deserialize(Config.NO_PERMISSION));
return; return;
} }
User user = Utilities.getLuckPerms().getUserManager().getUser(args[1]); User user = Utilities.getLuckPerms().getUserManager().getUser(args[1]);
if (user == null) { if (user == null) {
source.sendMessage(miniMessage.parse(Config.INVALID_PLAYER)); source.sendMessage(miniMessage.deserialize(Config.INVALID_PLAYER));
return; return;
} }
@ -75,7 +75,7 @@ public class Unlink implements SubCommand {
Database database = DiscordLink.getPlugin().getDatabase(); Database database = DiscordLink.getPlugin().getDatabase();
if (!database.playerIsLinked(uuid)) { if (!database.playerIsLinked(uuid)) {
return miniMessage.parse(Config.ACCOUNTS_NOT_LINKED); return miniMessage.deserialize(Config.ACCOUNTS_NOT_LINKED);
} }
DiscordLinkPlayer discordLinkPlayer = DiscordLinkPlayer.getDiscordLinkPlayer(uuid); DiscordLinkPlayer discordLinkPlayer = DiscordLinkPlayer.getDiscordLinkPlayer(uuid);
@ -91,7 +91,7 @@ public class Unlink implements SubCommand {
.filter(role -> discordLinkPlayer.getRoles().contains(role.getInternalName())) .filter(role -> discordLinkPlayer.getRoles().contains(role.getInternalName()))
.collect(Collectors.toList()), .collect(Collectors.toList()),
false); false);
return miniMessage.parse(Config.UNLINKED_ACCOUNTS); return miniMessage.deserialize(Config.UNLINKED_ACCOUNTS);
} }
@Override @Override

View File

@ -20,7 +20,7 @@ import java.util.stream.Collectors;
public class Utilities { public class Utilities {
private static LuckPerms luckPerms; private static LuckPerms luckPerms;
private static MiniMessage miniMessage = MiniMessage.get(); private static MiniMessage miniMessage = MiniMessage.miniMessage();
public static LuckPerms getLuckPerms() { public static LuckPerms getLuckPerms() {
if (luckPerms == null) if (luckPerms == null)
@ -98,7 +98,7 @@ public class Utilities {
public static void broadcast(String message) { public static void broadcast(String message) {
ProxyServer server = DiscordLink.getPlugin().getProxy(); ProxyServer server = DiscordLink.getPlugin().getProxy();
server.sendMessage(miniMessage.parse(message)); server.sendMessage(miniMessage.deserialize(message));
} }
public static List<DiscordRole> getDiscordRolesForUser(UUID uuid, Member member) { public static List<DiscordRole> getDiscordRolesForUser(UUID uuid, Member member) {