feat: center titles based on length

This commit is contained in:
Sekwah 2023-12-03 05:03:08 +00:00
parent 9e5acdb2e5
commit 4424ee77e6
9 changed files with 73 additions and 25 deletions

View File

@ -100,7 +100,7 @@ task copyPlugin() {
println "$buildDir/MinecraftServer/plugins/Advanced-Portals-${getVersion()}.jar" println "$buildDir/MinecraftServer/plugins/Advanced-Portals-${getVersion()}.jar"
try { try {
delete fileTree("$buildDir/MinecraftServer/plugins/") { delete fileTree("$buildDir/MinecraftServer/plugins/") {
include "*.jar" include "Advanced-Portals*.jar"
} }
} }
catch (RuntimeException e) { catch (RuntimeException e) {

View File

@ -64,8 +64,9 @@ public class CommandWithSubCommands implements CommandTemplate {
String subCommand = args[1].toLowerCase(); String subCommand = args[1].toLowerCase();
if(this.subCommandRegistry.isArgRegistered(subCommand)) { if(this.subCommandRegistry.isArgRegistered(subCommand)) {
sender.sendMessage(""); sender.sendMessage("");
sender.sendMessage(Lang.translateInsertVariables("command.help.subcommandheader", var helpTitle = Lang.centeredTitle(Lang.translateInsertVariables("command.help.subcommandheader",
command, subCommand)); command, helpPage, pages));
sender.sendMessage(helpTitle);
sender.sendMessage("\u00A77" + this.getSubCommand(subCommand).getDetailedHelpText()); sender.sendMessage("\u00A77" + this.getSubCommand(subCommand).getDetailedHelpText());
} }
else { else {
@ -75,8 +76,11 @@ public class CommandWithSubCommands implements CommandTemplate {
} }
} }
sender.sendMessage(""); sender.sendMessage("");
sender.sendMessage(Lang.translateInsertVariables("command.help.header",
var helpTitle = Lang.centeredTitle(Lang.translateInsertVariables("command.help.header",
command, helpPage, pages)); command, helpPage, pages));
sender.sendMessage(helpTitle);
sender.sendMessage("\u00A7a█\u00A77 = Permission \u00A7c█\u00A77 = No Permission"); sender.sendMessage("\u00A7a█\u00A77 = Permission \u00A7c█\u00A77 = No Permission");
int subCommandOffset = (helpPage - 1) * this.subCommandsPerPage; int subCommandOffset = (helpPage - 1) * this.subCommandsPerPage;
int displayEnd = subCommandOffset + this.subCommandsPerPage; int displayEnd = subCommandOffset + this.subCommandsPerPage;

View File

@ -1,10 +1,13 @@
package com.sekwah.advancedportals.core.commands.subcommands.desti; package com.sekwah.advancedportals.core.commands.subcommands.desti;
import com.google.inject.Inject;
import com.sekwah.advancedportals.core.commands.SubCommand; import com.sekwah.advancedportals.core.commands.SubCommand;
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer; import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
import com.sekwah.advancedportals.core.connector.containers.PlayerContainer; import com.sekwah.advancedportals.core.connector.containers.PlayerContainer;
import com.sekwah.advancedportals.core.destination.Destination;
import com.sekwah.advancedportals.core.serializeddata.DataTag; import com.sekwah.advancedportals.core.serializeddata.DataTag;
import com.sekwah.advancedportals.core.permissions.PortalPermissions; import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.services.DestinationServices;
import com.sekwah.advancedportals.core.util.Lang; import com.sekwah.advancedportals.core.util.Lang;
import com.sekwah.advancedportals.core.util.TagReader; import com.sekwah.advancedportals.core.util.TagReader;
@ -13,6 +16,9 @@ import java.util.List;
public class CreateDestiSubCommand implements SubCommand { public class CreateDestiSubCommand implements SubCommand {
@Inject
DestinationServices destinationServices;
@Override @Override
public void onCommand(CommandSenderContainer sender, String[] args) { public void onCommand(CommandSenderContainer sender, String[] args) {
if(args.length > 1) { if(args.length > 1) {
@ -21,25 +27,31 @@ public class CreateDestiSubCommand implements SubCommand {
sender.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.createdesti.console")); sender.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.createdesti.console"));
return; return;
} }
ArrayList<DataTag> destiTags = TagReader.getTagsFromArgs(args); ArrayList<DataTag> destinationTags = TagReader.getTagsFromArgs(args);
// TODO sort desti service
/*Destination desti = AdvancedPortalsCore.getDestinationServices().createDesti(args[1], player, player.getLoc(), destiTags); Destination destination = destinationServices.createDesti(args[1], player, player.getLoc(), destinationTags);
if(desti != null) { if(destination != null) {
sender.sendMessage(Lang.translateColor("messageprefix.positive") + Lang.translateColor("command.createdesti.complete")); sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.createdesti.complete"));
sender.sendMessage(Lang.translateColor("command.create.tags")); sender.sendMessage(Lang.translate("command.create.tags"));
ArrayList<DataTag> destiArgs = desti.getArgs();
if(destiArgs.size() == 0) { ArrayList<DataTag> destiArgs = destination.getArgs();
sender.sendMessage(Lang.translateColor("desti.info.noargs"));
if(destiArgs.isEmpty()) {
sender.sendMessage(Lang.translate("desti.info.noargs"));
} }
else { else {
for (DataTag tag : destiArgs) { for (DataTag tag : destiArgs) {
sender.sendMessage("\u00A7a" + tag.NAME + "\u00A77:\u00A7e" + tag.VALUE); if(tag.VALUES.length == 1) {
sender.sendMessage("\u00A7a" + tag.NAME + "\u00A77:\u00A7e" + tag.VALUES[0]);
} else {
sender.sendMessage("\u00A7a" + tag.NAME + "\u00A77:\u00A7e" + tag.VALUES[0]);
}
} }
} }
} }
else { else {
sender.sendMessage(Lang.translateColor("messageprefix.negative") + Lang.translateColor("command.createdesti.error")); sender.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.createdesti.error"));
}*/ }
} }
else { else {
sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.error.noname")); sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.error.noname"));

View File

@ -10,7 +10,7 @@ import java.util.List;
public class NameTag implements Tag.Activation, Tag.AutoComplete { public class NameTag implements Tag.Activation, Tag.AutoComplete {
private final TagType[] tagTypes = new TagType[]{ TagType.PORTAL }; private final TagType[] tagTypes = new TagType[]{ TagType.PORTAL, TagType.DESTINATION };
@Override @Override
public TagType[] getTagTypes() { public TagType[] getTagTypes() {

View File

@ -74,6 +74,38 @@ public class Lang {
return Collections.emptyMap(); return Collections.emptyMap();
} }
/**
* Length of text excluding colour codes
* @param text
* @return
*/
public static int textLength(String text) {
int length = 0;
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if(c == '\u00A7') {
i++;
}
else {
length++;
}
}
return length;
}
/**
* The default font is not monospaced, so this will likely be a little thinner to be on the safe side
* @param title
* @return
*/
public static String centeredTitle(String title) {
var titleLength = 54 - (Lang.textLength(title));
int eachSide = titleLength / 2;
return "\u00A7e" + "=".repeat(eachSide) + " " + title + " \u00A7e" + "=".repeat(eachSide);
}
private void injectTranslations(String fileName) { private void injectTranslations(String fileName) {
try { try {
URL url = Lang.instance.getClass().getClassLoader().getResource("lang/" + fileName + ".lang"); URL url = Lang.instance.getClass().getClassLoader().getResource("lang/" + fileName + ".lang");

View File

@ -49,8 +49,8 @@ logger.plugincrafterror=Diese Version von Craftbukkit/Spigot wird derzeit nicht
command.noargs= Du musst einen Sub-Command angeben. Bitte benutze &e/%1$s help &c. Falls du eine Liste von möglichen Sub_Command willst. command.noargs= Du musst einen Sub-Command angeben. Bitte benutze &e/%1$s help &c. Falls du eine Liste von möglichen Sub_Command willst.
command.subcommand.invalid= Das ist ein ungültiger Sub-Command. command.subcommand.invalid= Das ist ein ungültiger Sub-Command.
command.help.header=&e--------------- &a%1$s Hilfe - Seite %2$s of %3$s&e --------------- command.help.header=&a%1$s Hilfe - Seite %2$s of %3$s
command.help.subcommandheader=&e--------- &a%1$s Hilfe - %2$s&e --------- command.help.subcommandheader=&a%1$s Hilfe - %2$s
command.help.invalidhelp= &e%1$s&c ist keine gültige Seitennummer oder Sub-Command. command.help.invalidhelp= &e%1$s&c ist keine gültige Seitennummer oder Sub-Command.
command.reload.help=Ladet die Portal-Dateien neu command.reload.help=Ladet die Portal-Dateien neu

View File

@ -47,8 +47,8 @@ logger.plugincrafterror=This version of craftbukkit is not yet supported or some
command.noargs= Sorry but you need to specify a sub command, please use &e/%1$s help &cif you would like a list of possible subcommands. command.noargs= Sorry but you need to specify a sub command, please use &e/%1$s help &cif you would like a list of possible subcommands.
command.subcommand.invalid= Sorry but that is not a valid sub command. command.subcommand.invalid= Sorry but that is not a valid sub command.
command.help.header=&e--------------- &a%1$s Help - Page %2$s of %3$s&e --------------- command.help.header=&a%1$s Help - Page %2$s of %3$s
command.help.subcommandheader=&e--------- &a%1$s Help - %2$s&e --------- command.help.subcommandheader=&a%1$s Help - %2$s
command.help.invalidhelp= Sorry but &e%1$s&c is not a valid page number or sub command. command.help.invalidhelp= Sorry but &e%1$s&c is not a valid page number or sub command.
command.reload.help=Reloads portal data command.reload.help=Reloads portal data

View File

@ -46,8 +46,8 @@ logger.plugincrafterror=Cette version craftbukkit n'est pas supportée, veuillez
command.noargs= Vous devez spécifier une sous commande, utilisez &e/%1$s help &cpour avoir la liste des commandes possibles. command.noargs= Vous devez spécifier une sous commande, utilisez &e/%1$s help &cpour avoir la liste des commandes possibles.
command.subcommand.invalid= Ce n'est pas une sous commande. command.subcommand.invalid= Ce n'est pas une sous commande.
command.help.header=&e--------------- &a%1$s Aide - Page %2$s sur %3$s&e --------------- command.help.header=&a%1$s Aide - Page %2$s sur %3$s
command.help.subcommandheader=&e--------- &a%1$s Aide - %2$s&e --------- command.help.subcommandheader=&a%1$s Aide - %2$s
command.help.invalidhelp= Désolé mais &e%1$s&c n'est pas une page ou sous commande valide. command.help.invalidhelp= Désolé mais &e%1$s&c n'est pas une page ou sous commande valide.
command.reload.help=Recharge les fichiers command.reload.help=Recharge les fichiers

View File

@ -46,8 +46,8 @@ logger.plugincrafterror=A craftbukkit ezen verziója még nem támogatott, vagy
command.noargs= Sajnálom, de meg kell adni egy al parancsot, kérlek, használd &e/%1$s help &cha a lehetséges al parancsok listáját szeretnéd látni. command.noargs= Sajnálom, de meg kell adni egy al parancsot, kérlek, használd &e/%1$s help &cha a lehetséges al parancsok listáját szeretnéd látni.
command.subcommand.invalid= Sajnáljuk, de ez nem érvényes al parancs. command.subcommand.invalid= Sajnáljuk, de ez nem érvényes al parancs.
command.help.header=&e--------------- &a%1$s Segítség - Oldal %2$s %3$s&e-ból/-ből --------------- command.help.header=&a%1$s Segítség - Oldal %2$s %3$s&e-ból/-ből
command.help.subcommandheader=&e--------- &a%1$s Segítség - %2$s&e --------- command.help.subcommandheader=&a%1$s Segítség - %2$s
command.help.invalidhelp= Sajnálom, de &e%1$s&c nem érvényes oldalszám vagy al parancs. command.help.invalidhelp= Sajnálom, de &e%1$s&c nem érvényes oldalszám vagy al parancs.
command.reload.help=Portál adat újratöltése command.reload.help=Portál adat újratöltése