61 lines
2.8 KiB
Java
61 lines
2.8 KiB
Java
package me.totalfreedom.totalfreedommod.command;
|
|
|
|
import me.totalfreedom.totalfreedommod.api.ShopItem;
|
|
import me.totalfreedom.totalfreedommod.command.handling.CommandParameters;
|
|
import me.totalfreedom.totalfreedommod.command.handling.CommandPermissions;
|
|
import me.totalfreedom.totalfreedommod.command.handling.FreedomCommand;
|
|
import me.totalfreedom.totalfreedommod.command.handling.SourceType;
|
|
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;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.entity.Player;
|
|
|
|
@CommandPermissions(permission = "loginmessage", source = SourceType.ONLY_IN_GAME)
|
|
@CommandParameters(description = "Change your login message", usage = "/<command> [message]")
|
|
public class Command_loginmessage extends FreedomCommand
|
|
{
|
|
@Override
|
|
public boolean run(final CommandSender sender, final Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
{
|
|
if (plugin.sh == null && !sender.hasPermission("tfm.loginmessage.custom") || !plugin.pl.getData(playerSender).hasItem(ShopItem.LOGIN_MESSAGES) && !isAdmin(playerSender))
|
|
{
|
|
msg("You did not purchase the ability to use login messages, or the shop is not present! Purchase the ability from the shop.", ChatColor.RED);
|
|
return true;
|
|
}
|
|
|
|
if (args.length == 0)
|
|
{
|
|
playerSender.openInventory(plugin.sh.generateLoginMessageGUI(playerSender));
|
|
return true;
|
|
}
|
|
|
|
checkPermission("tfm.loginmessage.custom");
|
|
|
|
String message = StringUtils.join(args, " ");
|
|
if (!message.contains("<rank>") && !message.contains("<coloredrank>"))
|
|
{
|
|
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 = FUtil.steamroll(FUtil.miniMessage(message, Placeholder.unparsed("name", ""),
|
|
Placeholder.unparsed("rank", ""),
|
|
Placeholder.unparsed("coloredrank", ""),
|
|
Placeholder.unparsed("art", ""))).length();
|
|
if (length > 100)
|
|
{
|
|
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);
|
|
msgNew("<green>Your login message is now the following:");
|
|
msg(plugin.rm.craftLoginMessage(playerSender, message));
|
|
return true;
|
|
}
|
|
}
|