mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2024-11-01 05:57:09 +00:00
Lots of fixes and cool shit
- Fixes bug that caused login messages to not show properly - Fixes bug that caused names to now show properly in tab - Adds the ability for commands to be ignored if plugins that they require aren't present - Fixes bug that caused the admin list to fail to load properly - Fixes bug that caused tags to not show properly - Login messages now use MiniMessage
This commit is contained in:
parent
74408b85bf
commit
f53ba1bd76
@ -173,7 +173,8 @@ public class ChatManager extends FreedomService
|
||||
Placeholder.unparsed("rank", flatAbv),
|
||||
TagResolver.resolver("rankcolor", Tag.styling(getColor(display))),
|
||||
Placeholder.unparsed("message", message)));
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
Component defaultFormat = FUtil.miniMessage("<dark_gray>[<aqua>ADMIN<dark_gray>] <dark_red><name> <dark_gray><tag><dark_gray>]<white>: <gold><message>",
|
||||
Placeholder.unparsed("<name>", sender.getName()),
|
||||
|
@ -0,0 +1,10 @@
|
||||
package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface CommandDependencies
|
||||
{
|
||||
String[] value();
|
||||
}
|
@ -63,10 +63,25 @@ public class CommandLoader extends FreedomService
|
||||
|
||||
Set<Class<? extends FreedomCommand>> commandClasses = commandDir.getSubTypesOf(FreedomCommand.class);
|
||||
|
||||
commandLoading:
|
||||
for (Class<? extends FreedomCommand> commandClass : commandClasses)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (commandClass.isAnnotationPresent(CommandDependencies.class))
|
||||
{
|
||||
String[] dependencies = commandClass.getAnnotation(CommandDependencies.class).value();
|
||||
|
||||
for (String plugin : dependencies)
|
||||
{
|
||||
if (!server.getPluginManager().isPluginEnabled(plugin))
|
||||
{
|
||||
FLog.warning("Not loading command due to missing dependency (" + plugin + "): /" + commandClass.getSimpleName().replace("Command_", ""));
|
||||
continue commandLoading;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
add(commandClass.newInstance());
|
||||
}
|
||||
catch (InstantiationException | IllegalAccessException | ExceptionInInitializerError ex)
|
||||
|
@ -4,8 +4,9 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TFD4J"})
|
||||
@CommandPermissions(permission = "cleardiscordqueue", source = SourceType.ONLY_CONSOLE)
|
||||
@CommandParameters(description = "Clear the discord message queue.", usage = "/<command>")
|
||||
@CommandParameters(description = "Clear the Discord message queue.", usage = "/<command>")
|
||||
public class Command_cleardiscordqueue extends FreedomCommand
|
||||
{
|
||||
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TF-Shoppe"})
|
||||
@CommandPermissions(permission = "clownfish", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Obtain a clown fish", usage = "/<command>")
|
||||
public class Command_clownfish extends FreedomCommand
|
||||
|
@ -11,6 +11,7 @@ import org.bukkit.entity.Player;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CommandDependencies({"TF-Shoppe"})
|
||||
@CommandPermissions(permission = "coins", source = SourceType.BOTH)
|
||||
@CommandParameters(description = "Shows the amount of coins you or another player has. Also allows you to give coins to other players.", usage = "/<command> [player] | pay <player> <amount>")
|
||||
public class Command_coins extends FreedomCommand
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TF-Shoppe"})
|
||||
@CommandPermissions(permission = "fireball", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Obtain a fire ball", usage = "/<command>")
|
||||
public class Command_fireball extends FreedomCommand
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TF-Shoppe"})
|
||||
@CommandPermissions(permission = "grapplinghook", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Obtain a grappling hook", usage = "/<command>")
|
||||
public class Command_grapplinghook extends FreedomCommand
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TF-Shoppe"})
|
||||
@CommandPermissions(permission = "lightningrod", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Obtain a lightning rod", usage = "/<command>")
|
||||
public class Command_lightningrod extends FreedomCommand
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TFD4J"})
|
||||
@CommandPermissions(permission = "linkdiscord", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Link your Discord account to your Minecraft account", usage = "/<command> [<name> <id>]")
|
||||
public class Command_linkdiscord extends FreedomCommand
|
||||
|
@ -2,6 +2,8 @@ package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import me.totalfreedom.totalfreedommod.api.ShopItem;
|
||||
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
@ -30,21 +32,25 @@ public class Command_loginmessage extends FreedomCommand
|
||||
checkPermission("tfm.loginmessage.custom");
|
||||
|
||||
String message = StringUtils.join(args, " ");
|
||||
if (!message.contains("%rank%") && !message.contains("%coloredrank%"))
|
||||
if (!message.contains("<rank>") && !message.contains("<coloredrank>"))
|
||||
{
|
||||
msg("Your login message must contain your rank. Use either %rank% or %coloredrank% to specify where you want the rank", ChatColor.RED);
|
||||
msgNew("<red>Your login message must contain your rank. Use either \\\\<rank> or \\\\<coloredrank> to specify where you want the rank.");
|
||||
return true;
|
||||
}
|
||||
int length = message.replace("%name%", "").replace("%rank%", "").replace("%coloredrank%", "").replace("%art%", "").length();
|
||||
int length = FUtil.steamroll(FUtil.miniMessage(message, Placeholder.unparsed("name", ""),
|
||||
Placeholder.unparsed("rank", ""),
|
||||
Placeholder.unparsed("coloredrank", ""),
|
||||
Placeholder.unparsed("art", ""))).length();
|
||||
if (length > 100)
|
||||
{
|
||||
msg("Your login message cannot be more than 100 characters (excluding your rank and your name)", ChatColor.RED);
|
||||
msgNew("<red>Your login message cannot be more than 100 characters (excluding your rank and your name)");
|
||||
return true;
|
||||
}
|
||||
PlayerData data = getData(playerSender);
|
||||
data.setLoginMessage(message);
|
||||
plugin.pl.save(data);
|
||||
msg("Your login message is now the following:\n" + plugin.rm.craftLoginMessage(playerSender, message), ChatColor.GREEN);
|
||||
msgNew("<green>Your login message is now the following:");
|
||||
msg(plugin.rm.craftLoginMessage(playerSender, message));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TF-Shoppe"})
|
||||
@CommandPermissions(permission = "manageshop", source = SourceType.BOTH)
|
||||
@CommandParameters(description = "Manage the shop", usage = "/<command> <coins: <add | set | remove> <amount> <player | all> | items: <give | take> <item> <player>", aliases = "ms")
|
||||
public class Command_manageshop extends FreedomCommand
|
||||
|
@ -12,7 +12,7 @@ import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@CommandPermissions(permission = "tfm.mute", source = SourceType.BOTH)
|
||||
@CommandPermissions(permission = "mute", source = SourceType.BOTH)
|
||||
@CommandParameters(description = "Mutes a player with brute force.", usage = "/<command> <[-q] <player> [reason] | list | purge | all>", aliases = "stfu")
|
||||
public class Command_mute extends FreedomCommand
|
||||
{
|
||||
|
@ -51,7 +51,7 @@ public class Command_myadmin extends FreedomCommand
|
||||
target = getAdmin(targetPlayer);
|
||||
if (target == null)
|
||||
{
|
||||
msgNew("<red>That player is not an admin");
|
||||
msgNew("<red>That player is not an admin.");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"PlotSquared"})
|
||||
@CommandPermissions(permission = "plotworld", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Go to the PlotWorld.", usage = "/<command>", aliases = "pw")
|
||||
public class Command_plotworld extends FreedomCommand
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TF-Shoppe"})
|
||||
@CommandPermissions(permission = "rideablepearl", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Obtain a rideable ender pearl", usage = "/<command>")
|
||||
public class Command_rideablepearl extends FreedomCommand
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"WorldEdit"})
|
||||
@CommandPermissions(permission = "worldedit.limit", source = SourceType.BOTH)
|
||||
@CommandParameters(description = "Sets everyone's WorldEdit block modification limit to the default limit or to a custom limit.", usage = "/<command> [limit]", aliases = "setl,swl")
|
||||
public class Command_setlimit extends FreedomCommand
|
||||
|
@ -7,6 +7,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"WorldEdit"})
|
||||
@CommandPermissions(permission = "worldedit.limit.other", source = SourceType.BOTH)
|
||||
@CommandParameters(description = "Sets a specific player's WorldEdit block modification limit to the default limit or to a custom limit.", usage = "/<command> <player> [limit]", aliases = "setpl,spl")
|
||||
public class Command_setplayerlimit extends FreedomCommand
|
||||
|
@ -5,6 +5,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TF-Shoppe"})
|
||||
@CommandPermissions(permission = "shop", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Open the shop GUI", usage = "/<command>", aliases = "sh")
|
||||
public class Command_shop extends FreedomCommand
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TF-Shoppe"})
|
||||
@CommandPermissions(permission = "stackingpotato", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Obtain a stacking potato", usage = "/<command>")
|
||||
public class Command_stackingpotato extends FreedomCommand
|
||||
|
@ -40,27 +40,17 @@ public class Command_tag extends FreedomCommand
|
||||
{
|
||||
case "list":
|
||||
{
|
||||
msg("Tags for all online players:");
|
||||
|
||||
for (final Player player : server.getOnlinePlayers())
|
||||
{
|
||||
if (plugin.al.isVanished(player.getUniqueId()) && !plugin.al.isAdmin(sender))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
final FPlayer playerdata = plugin.pl.getPlayer(player);
|
||||
if (playerdata.getTag() != null)
|
||||
{
|
||||
msg(player.getName() + ": " + playerdata.getTag());
|
||||
}
|
||||
}
|
||||
msgNew("Tags for all online players:");
|
||||
server.getOnlinePlayers().stream().filter(player -> !(plugin.al.isVanished(player.getUniqueId()) && !isAdmin(sender)) && plugin.pl.getPlayer(player).getTag() != null).forEach(player -> {
|
||||
msgNew("<player>: <tag>", Placeholder.unparsed("player", player.getName()),
|
||||
Placeholder.component("tag", plugin.pl.getPlayer(player).getTag()));
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
case "clearall":
|
||||
{
|
||||
if (!plugin.al.isAdmin(sender))
|
||||
if (!sender.hasPermission("tfm.tag.clear.all"))
|
||||
{
|
||||
noPerms();
|
||||
return true;
|
||||
@ -79,7 +69,7 @@ public class Command_tag extends FreedomCommand
|
||||
}
|
||||
}
|
||||
|
||||
msg(count + " tag(s) removed.");
|
||||
msgNew("<count> tag(s) removed.", Placeholder.unparsed("count", String.valueOf(count)));
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -87,8 +77,9 @@ public class Command_tag extends FreedomCommand
|
||||
{
|
||||
if (senderIsConsole)
|
||||
{
|
||||
msg("\"/tag off\" can't be used from the console. Use \"/tag clear <player>\" or \"/tag clearall\" instead.");
|
||||
} else
|
||||
msgNew("<red>\"/tag off\" can't be used from the console.");
|
||||
}
|
||||
else
|
||||
{
|
||||
plugin.pl.getPlayer(playerSender).setTag(null);
|
||||
|
||||
@ -97,7 +88,8 @@ public class Command_tag extends FreedomCommand
|
||||
save(playerSender, null);
|
||||
}
|
||||
|
||||
msg("Your tag has been removed." + (save ? " (Saved)" : ""));
|
||||
msgNew("Your tag has been removed. <saved>",
|
||||
Placeholder.unparsed("saved", save ? "(Saved)" : ""));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -107,13 +99,14 @@ public class Command_tag extends FreedomCommand
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else if (args.length >= 2)
|
||||
}
|
||||
else if (args.length >= 2)
|
||||
{
|
||||
switch (args[0].toLowerCase())
|
||||
{
|
||||
case "clear":
|
||||
{
|
||||
if (!plugin.al.isAdmin(sender))
|
||||
if (!sender.hasPermission("tfm.tag.clear.others"))
|
||||
{
|
||||
noPerms();
|
||||
return true;
|
||||
@ -133,7 +126,9 @@ public class Command_tag extends FreedomCommand
|
||||
save(player, null);
|
||||
}
|
||||
|
||||
msg("Removed " + player.getName() + "'s tag." + (save ? " (Saved)" : ""));
|
||||
msgNew("Removed <player>'s tag. <saved>",
|
||||
Placeholder.unparsed("player", player.getName()),
|
||||
Placeholder.unparsed("saved", save ? "(Saved)" : ""));
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -162,11 +157,13 @@ public class Command_tag extends FreedomCommand
|
||||
{
|
||||
msgNew("<red>That tag is too long (Max is <max> characters).", Placeholder.unparsed("max", String.valueOf(tagLimit)));
|
||||
return true;
|
||||
} else if (!plugin.al.isAdmin(sender) && ConfigEntry.FORBIDDEN_WORDS.getStringList().stream().anyMatch(word -> steamrolled.toLowerCase().contains(word)))
|
||||
}
|
||||
else if (!plugin.al.isAdmin(sender) && ConfigEntry.FORBIDDEN_WORDS.getStringList().stream().anyMatch(word -> steamrolled.toLowerCase().contains(word)))
|
||||
{
|
||||
msgNew("<red>That tag contains a forbidden word.");
|
||||
return true;
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
plugin.pl.getPlayer(playerSender).setTag(tag);
|
||||
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TF-Shoppe"})
|
||||
@CommandPermissions(permission = "clownfish.toggle", source = SourceType.BOTH)
|
||||
@CommandParameters(description = "Toggle whether or not a player has the ability to use clownfish", usage = "/<command> <player>", aliases = "togglecf")
|
||||
public class Command_toggleclownfish extends FreedomCommand
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TFD4J"})
|
||||
@CommandPermissions(permission = "discord.toggle", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Toggle the display of Discord messages in-game.", usage = "/<command>", aliases = "tdiscord,tdisc")
|
||||
public class Command_togglediscord extends FreedomCommand
|
||||
|
@ -6,8 +6,9 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TF-Shoppe"})
|
||||
@CommandPermissions(permission = "trail", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Trails rainbow wool behind you as you walk/fly.", usage = "/<command>")
|
||||
@CommandParameters(description = "Trails rainbow particles behind you as you walk/fly.", usage = "/<command>")
|
||||
public class Command_trail extends FreedomCommand
|
||||
{
|
||||
|
||||
|
@ -5,6 +5,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"LibsDisguises"})
|
||||
@CommandPermissions(permission = "undisguiseall", source = SourceType.BOTH)
|
||||
@CommandParameters(description = "Undisguise all online players on the server", usage = "/<command> [-a]", aliases = "uall")
|
||||
public class Command_undisguiseall extends FreedomCommand
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandDependencies({"TFD4J"})
|
||||
@CommandPermissions(permission = "unlinkdiscord", source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Unlink your Discord account from your Minecraft account", usage = "/<command> [player]")
|
||||
public class Command_unlinkdiscord extends FreedomCommand
|
||||
|
@ -34,7 +34,7 @@ public class Command_vanish extends FreedomCommand
|
||||
else
|
||||
{
|
||||
msgNew("<gold>You have unvanished.");
|
||||
FUtil.bcastMsg(plugin.rm.craftLoginMessage(playerSender, null));
|
||||
server.broadcast(plugin.rm.craftLoginMessage(playerSender, null));
|
||||
server.broadcast(Component.translatable("multiplayer.player.joined", Component.text(playerSender.getName()))
|
||||
.color(NamedTextColor.YELLOW));
|
||||
|
||||
|
@ -391,7 +391,7 @@ public abstract class FreedomCommand implements CommandExecutor, TabCompleter
|
||||
|
||||
public boolean permissionCheck()
|
||||
{
|
||||
if (!sender.hasPermission(permission) || !(sender instanceof ConsoleCommandSender))
|
||||
if (!sender.hasPermission(permission) || !source.permissionCheck(sender))
|
||||
{
|
||||
msg(ChatColor.RED + "You do not have permission to use this command.");
|
||||
return true;
|
||||
|
@ -1,6 +1,15 @@
|
||||
package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public enum SourceType
|
||||
{
|
||||
ONLY_IN_GAME, ONLY_CONSOLE, BOTH
|
||||
ONLY_IN_GAME, ONLY_CONSOLE, BOTH;
|
||||
|
||||
public boolean permissionCheck(CommandSender sender)
|
||||
{
|
||||
return (sender instanceof Player && this == ONLY_IN_GAME) || (sender instanceof ConsoleCommandSender && this == ONLY_CONSOLE) || this == BOTH;
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,13 @@
|
||||
package me.totalfreedom.totalfreedommod.player;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.collect.Lists;
|
||||
import me.totalfreedom.totalfreedommod.api.ShopItem;
|
||||
import me.totalfreedom.totalfreedommod.util.FConverter;
|
||||
import me.totalfreedom.totalfreedommod.util.FLog;
|
||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
@ -50,7 +53,7 @@ public class PlayerData
|
||||
ips.addAll(FUtil.stringToList(resultSet.getString("ips")));
|
||||
notes.clear();
|
||||
notes.addAll(FUtil.stringToList(resultSet.getString("notes")));
|
||||
tag = LegacyComponentSerializer.legacyAmpersand().deserialize(resultSet.getString("tag"));
|
||||
tag = FUtil.miniMessage(resultSet.getString("tag"));
|
||||
discordID = resultSet.getString("discord_id");
|
||||
masterBuilder = resultSet.getBoolean("master_builder");
|
||||
rideMode = RideMode.valueOf(resultSet.getString("ride_mode").toUpperCase());
|
||||
@ -59,11 +62,19 @@ public class PlayerData
|
||||
items.addAll(FUtil.stringToList(resultSet.getString("items")));
|
||||
totalVotes = resultSet.getInt("total_votes");
|
||||
displayDiscord = resultSet.getBoolean("display_discord");
|
||||
loginMessage = resultSet.getString("login_message");
|
||||
//--
|
||||
String tempLoginMessage = resultSet.getString("login_message");
|
||||
if (!Strings.isNullOrEmpty(tempLoginMessage) && FConverter.needsConversion(tempLoginMessage))
|
||||
{
|
||||
tempLoginMessage = FConverter.convertLoginMessage(tempLoginMessage);
|
||||
}
|
||||
loginMessage = tempLoginMessage;
|
||||
//--
|
||||
inspect = resultSet.getBoolean("inspect");
|
||||
} catch (SQLException e)
|
||||
{
|
||||
FLog.severe("Failed to load player: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@ -190,7 +201,7 @@ public class PlayerData
|
||||
objectMap.put("uuid", uuid.toString());
|
||||
objectMap.put("ips", FUtil.listToString(ips));
|
||||
objectMap.put("notes", FUtil.listToString(notes));
|
||||
objectMap.put("tag", tag.toString());
|
||||
objectMap.put("tag", FUtil.miniMessage(tag));
|
||||
objectMap.put("discord_id", discordID);
|
||||
objectMap.put("master_builder", masterBuilder);
|
||||
objectMap.put("ride_mode", rideMode.name());
|
||||
|
@ -59,7 +59,7 @@ public class DisplayableGroup implements Displayable
|
||||
|
||||
cfg.thenAcceptAsync(g -> {
|
||||
WeightNode weightNode = WeightNode.builder(weight).build();
|
||||
PrefixNode prefixNode = PrefixNode.builder().prefix(FUtil.miniMessage(GroupProvider.OPEN.append(tag.color(color)).append(GroupProvider.CLOSE))).build();
|
||||
PrefixNode prefixNode = PrefixNode.builder().prefix(FUtil.miniMessage(GroupProvider.OPEN.append(tag.color(color)).append(GroupProvider.CLOSE))).priority(1).build();
|
||||
g.getData(DataType.NORMAL).add(prefixNode);
|
||||
g.getData(DataType.NORMAL).add(weightNode);
|
||||
}).join(); // Block until the group is created and loaded.
|
||||
|
@ -7,6 +7,8 @@ import me.totalfreedom.totalfreedommod.player.FPlayer;
|
||||
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@ -165,11 +167,12 @@ public class RankManager extends FreedomService
|
||||
FPlayer fPlayer = plugin.pl.getPlayer(player);
|
||||
PlayerData data = plugin.pl.getData(player);
|
||||
Displayable display = getDisplay(player);
|
||||
|
||||
if (plugin.al.isAdmin(player) || data.isMasterBuilder() || FUtil.isDeveloper(player))
|
||||
{
|
||||
String displayName = display.getColor() + player.getName();
|
||||
player.setPlayerListName(displayName);
|
||||
} else
|
||||
player.playerListName(Component.text(player.getName()).color(display.getColor()));
|
||||
}
|
||||
else
|
||||
{
|
||||
fPlayer.setTag(null);
|
||||
player.setPlayerListName(null);
|
||||
@ -203,7 +206,7 @@ public class RankManager extends FreedomService
|
||||
if ((isAdmin || FUtil.isDeveloper(player) || plugin.pl.getData(player).isMasterBuilder()
|
||||
|| plugin.pl.getData(player).hasLoginMessage()) && !plugin.al.isVanished(player.getUniqueId()))
|
||||
{
|
||||
FUtil.bcastMsg(craftLoginMessage(player, null));
|
||||
server.broadcast(craftLoginMessage(player, null));
|
||||
}
|
||||
|
||||
// Set display
|
||||
@ -215,7 +218,7 @@ public class RankManager extends FreedomService
|
||||
}
|
||||
}
|
||||
|
||||
public String craftLoginMessage(Player player, String message)
|
||||
public Component craftLoginMessage(Player player, String message)
|
||||
{
|
||||
Displayable display = plugin.rm.getDisplay(player);
|
||||
PlayerData playerData = plugin.pl.getData(player);
|
||||
@ -224,21 +227,22 @@ public class RankManager extends FreedomService
|
||||
if (playerData.hasLoginMessage())
|
||||
{
|
||||
message = playerData.getLoginMessage();
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
if (display.hasDefaultLoginMessage())
|
||||
{
|
||||
message = "%name% is %art% %coloredrank%";
|
||||
message = "<aqua><name> is <art> <coloredrank>";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (message != null)
|
||||
{
|
||||
return FUtil.colorize(ChatColor.AQUA + (message.contains("%name%") ? "" : player.getName() + " is ")
|
||||
+ FUtil.colorize(message).replace("%name%", player.getName())
|
||||
.replace("%rank%", FUtil.miniMessage(display.getName()))
|
||||
.replace("%coloredrank%", FUtil.miniMessage(display.getColoredName()))
|
||||
.replace("%art%", FUtil.miniMessage(display.getArticle())));
|
||||
return FUtil.miniMessage(message,
|
||||
Placeholder.unparsed("name", player.getName()),
|
||||
Placeholder.component("rank", display.getName()),
|
||||
Placeholder.component("coloredrank", display.getColoredName()),
|
||||
Placeholder.component("art", display.getArticle()));
|
||||
}
|
||||
|
||||
return null;
|
||||
|
@ -20,4 +20,14 @@ public class FConverter
|
||||
.replaceAll("%msg%", "<message>")))
|
||||
.replaceAll("\\\\<", "<"); // GOD FUCKING DAMMIT
|
||||
}
|
||||
|
||||
public static String convertLoginMessage(String message)
|
||||
{
|
||||
return FUtil.MINI_MESSAGE.serialize(FUtil.LEGACY_AMPERSAND.deserialize(
|
||||
message.replaceAll("%name%", "<name>")
|
||||
.replaceAll("%rank%", "<rank>")
|
||||
.replaceAll("%coloredrank%", "<coloredrank>")
|
||||
.replaceAll("%art%", "<art>")))
|
||||
.replaceAll("\\\\<", "<"); // GOD FUCKING DAMMIT
|
||||
}
|
||||
}
|
||||
|
@ -200,7 +200,7 @@ public class Shop extends FreedomService implements ShoppeCommons
|
||||
ItemStack icon = new ItemStack(Material.NAME_TAG);
|
||||
ItemMeta meta = icon.getItemMeta();
|
||||
assert meta != null;
|
||||
meta.setDisplayName(FUtil.colorize(plugin.rm.craftLoginMessage(player, loginMessage)));
|
||||
meta.displayName(plugin.rm.craftLoginMessage(player, loginMessage));
|
||||
icon.setItemMeta(meta);
|
||||
gui.setItem(slot, icon);
|
||||
slot++;
|
||||
@ -423,7 +423,8 @@ public class Shop extends FreedomService implements ShoppeCommons
|
||||
String message = ConfigEntry.SHOP_LOGIN_MESSAGES.getStringList().get(slot);
|
||||
data.setLoginMessage(message);
|
||||
plugin.pl.save(data);
|
||||
player.sendMessage(ChatColor.GREEN + "Your login message is now the following:\n" + plugin.rm.craftLoginMessage(player, message));
|
||||
player.sendMessage(ChatColor.GREEN + "Your login message is now the following:");
|
||||
player.sendMessage(plugin.rm.craftLoginMessage(player, message));
|
||||
}
|
||||
|
||||
player.closeInventory();
|
||||
|
Loading…
Reference in New Issue
Block a user