Compare commits

..

No commits in common. "main" and "0.2.2" have entirely different histories.
main ... 0.2.2

14 changed files with 76 additions and 209 deletions

View File

@ -6,7 +6,7 @@
<groupId>de.privacynerd</groupId>
<artifactId>ChatBeautifier</artifactId>
<version>0.3.1</version>
<version>0.2.2</version>
<packaging>jar</packaging>
<name>ChatBeautifier</name>

View File

@ -2,28 +2,21 @@ package de.privacynerd.chatbeautifier;
import de.privacynerd.chatbeautifier.displaynamecolor.ChatColorCommand;
import de.privacynerd.chatbeautifier.displaynamecolor.ChooseChatColorListener;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
public final class ChatBeautifier extends JavaPlugin {
public static Component PREFIX = Component.text("[ChatBeautifier] ", NamedTextColor.DARK_AQUA);
public static String PREFIX = "§a[ChatBeautifier] §7§o";
public static ChatBeautifier INSTANCE;
public ChatBeautifier() {
INSTANCE = this;
}
// some log functions
public void log(String message) { Bukkit.getConsoleSender().sendMessage(PREFIX.append(Component.text(message, NamedTextColor.GRAY))); }
public void log(@NotNull Component message) { Bukkit.getConsoleSender().sendMessage(PREFIX.append(message.color(NamedTextColor.GRAY))); }
public void tellPlayer(String message, @NotNull Player player) { player.sendMessage(PREFIX.append(Component.text(message, NamedTextColor.GRAY))); }
public void tellPlayer(@NotNull Component message, @NotNull Player player) { player.sendMessage(PREFIX.append(message.color(NamedTextColor.GRAY))); }
public void log(String text) {
Bukkit.getConsoleSender().sendMessage(PREFIX + text);
}
@Override

View File

@ -1,9 +1,7 @@
package de.privacynerd.chatbeautifier;
import de.privacynerd.chatbeautifier.utils.DisplayNameSetter;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextDecoration;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@ -17,14 +15,19 @@ public class JoinQuitListener implements Listener {
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
Component newName;
DisplayNameSetter.setName(player); // set display name according to color config etc...
if(player.isOp()) {
newName = Component.text("[OP] "+player.getName(), NamedTextColor.RED);
player.displayName(newName);
player.playerListName(newName);
} else {
newName = Component.text(player.getName(), NamedTextColor.GRAY);
player.displayName(Component.text(player.getName()));
player.playerListName(newName);
}
event.joinMessage(Component.text(">> ")
.color(NamedTextColor.GREEN)
.decoration(TextDecoration.BOLD, true)
.append(player.displayName()
));
event.joinMessage(Component.text(">> ", NamedTextColor.GREEN).append(player.displayName()));
player.playSound(player.getLocation(), Sound.AMBIENT_CRIMSON_FOREST_MOOD, 0.5f, 0.4f);
}
@ -33,9 +36,6 @@ public class JoinQuitListener implements Listener {
public void onPlayerQuit(PlayerQuitEvent event) {
Player player = event.getPlayer();
event.quitMessage(Component.text("<< ")
.color(NamedTextColor.RED)
.decoration(TextDecoration.BOLD, true)
.append(player.displayName()));
event.quitMessage(Component.text("<< ", NamedTextColor.RED).append(player.displayName()));
}
}

View File

@ -1,12 +1,8 @@
package de.privacynerd.chatbeautifier.displaynamecolor;
import de.privacynerd.chatbeautifier.ChatBeautifier;
import de.privacynerd.chatbeautifier.utils.ConfigFilenames;
import de.privacynerd.chatbeautifier.utils.DisplayNameSetter;
import de.privacynerd.chatbeautifier.utils.FileConfig;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextDecoration;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
@ -26,94 +22,114 @@ public class ChatColorCommand implements CommandExecutor {
}
Player player = (Player) commandSender;
String validArgument = "";
Component newName;
int colorCodesListIndex; // stores the index of the color code which was requested (0 for black color code, ...)
Component newDisplayName;
// check for the right args
if(args.length == 1) {
switch (args[0]) {
case "black":
validArgument = "black";
colorCodesListIndex = 0;
newDisplayName = Component.text("", ChatColorUtils.getChooseColorCodes().get(1)).append(player.displayName());
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "gray":
validArgument = "gray";
colorCodesListIndex = 1;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(1));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "light-gray":
validArgument = "light-gray";
colorCodesListIndex = 2;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(2));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "white":
validArgument = "white";
colorCodesListIndex = 3;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(3));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "brown":
validArgument = "brown";
colorCodesListIndex = 4;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(4));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "red":
validArgument = "red";
colorCodesListIndex = 5;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(5));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "orange":
validArgument = "orange";
colorCodesListIndex = 6;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(6));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "yellow":
validArgument = "yellow";
colorCodesListIndex = 7;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(7));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "light-green":
validArgument = "light-green";
colorCodesListIndex = 8;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(8));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "dark-green":
validArgument = "dark-green";
colorCodesListIndex = 9;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(9));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "cyan":
validArgument = "cyan";
colorCodesListIndex = 10;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(10));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "blue":
validArgument = "blue";
colorCodesListIndex = 11;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(11));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "purple":
validArgument = "purple";
colorCodesListIndex = 12;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(12));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "magenta":
validArgument = "magenta";
colorCodesListIndex = 13;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(13));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "pink":
validArgument = "pink";
colorCodesListIndex = 14;
newDisplayName = player.displayName().color(ChatColorUtils.getChooseColorCodes().get(14));
player.displayName(newDisplayName);
player.playerListName(newDisplayName);
break;
case "list":
ChatBeautifier.INSTANCE.log("Got valid argument 'list', printing list of valid colors...");
ArrayList<String> colorNames = ChatColorUtils.getChooseColorStrings();
// now compose the message containing all possible color args
Component message = Component.text("Mögliche Farben: ")
.decoration(TextDecoration.BOLD, true);
String newMessageItem = colorNames.get(0).toLowerCase().replace(" ", "-");
message = message.append(Component.text(newMessageItem, NamedTextColor.GRAY)
.decoration(TextDecoration.BOLD, false)
.decoration(TextDecoration.ITALIC, true));
StringBuilder message = new StringBuilder(ChatBeautifier.PREFIX + "§r§lMögliche Farben: §r§o");
message.append(colorNames.get(0).toLowerCase().replace(" ", "-")).append(", ");
for (int i=1; i<colorNames.toArray().length; i++) {
newMessageItem = ", " + colorNames.get(i).toLowerCase().replace(" ", "-");
message = message.append(Component.text(newMessageItem, NamedTextColor.GRAY)
.decoration(TextDecoration.BOLD, false)
.decoration(TextDecoration.ITALIC, true));
message.append(colorNames.get(i).toLowerCase().replace(" ", "-")).append(", ");
}
// and send it
ChatBeautifier.INSTANCE.tellPlayer(message, player);
player.sendMessage(message.toString());
return true;
case "gui":
ChatBeautifier.INSTANCE.log("Got valid argument 'gui', opening gui...");
@ -121,25 +137,14 @@ public class ChatColorCommand implements CommandExecutor {
return true;
default:
// print a help string if no valid argument is given
ChatBeautifier.INSTANCE.tellPlayer("Verwendung: /" + alias + " [<color>, list, gui]", player);
player.sendMessage(ChatBeautifier.PREFIX + "Verwendung: /" + alias + " [<color>, list, gui]");
return true;
}
// save the selected color to the file
FileConfig chatColorConfig = new FileConfig(ConfigFilenames.chatNameColors);
chatColorConfig.set(String.valueOf(player.getUniqueId().toString()), colorCodesListIndex);
chatColorConfig.saveConfig();
// update name (this method respects color values in the file
DisplayNameSetter.setName(player);
ChatBeautifier.INSTANCE.log("Got valid color " + validArgument);
ChatBeautifier.INSTANCE.tellPlayer(Component.text("Dein neuer Name: ")
.append(player.displayName()
), player);
player.sendMessage(ChatBeautifier.PREFIX + "Name temporär " + validArgument + " gefärbt. Dieses Feature ist aktuell noch in der Mache, dauerhaft coming soon.");
return true;
} else if (args.length > 1) { // print a help string if more than one argument is given
ChatBeautifier.INSTANCE.tellPlayer("Verwendung: /" + alias + " [<color>, list, gui]", player);
player.sendMessage(ChatBeautifier.PREFIX + "Verwendung: /" + alias + " [<color>, list, gui]");
return true;
} else {
player.openInventory(new ChooseChatColorGUI().getGUI(player));

View File

@ -1,16 +1,12 @@
package de.privacynerd.chatbeautifier.displaynamecolor;
import de.privacynerd.chatbeautifier.utils.ConfigFilenames;
import de.privacynerd.chatbeautifier.utils.FileConfig;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextColor;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import de.privacynerd.chatbeautifier.displaynamecolor.ChatColorUtils;
@ -22,11 +18,6 @@ public class ChooseChatColorGUI {
public Inventory getGUI(Player player) {
Inventory gui = Bukkit.createInventory(player, 45, Component.text("Set chat color (0x01)", NamedTextColor.DARK_GRAY));
int currentColorCodesIndex = -1;
FileConfig chatColorConfig = new FileConfig(ConfigFilenames.chatNameColors);
String uuidStr = player.getUniqueId().toString();
if ( chatColorConfig.contains(uuidStr) ) currentColorCodesIndex = chatColorConfig.getInt(uuidStr);
// create item stacks to be filled into the gui later
ItemStack nothing = new ItemStack(Material.LIGHT_BLUE_STAINED_GLASS_PANE); // for filling the gaps
@ -35,7 +26,7 @@ public class ChooseChatColorGUI {
ArrayList<TextColor> chooseColorCodes = ChatColorUtils.getChooseColorCodes();
for (int i=0; i<15; i++) {
ItemMeta color_meta = chooseColorItems.get(i).getItemMeta();
ItemMeta color_meta = nothing.getItemMeta();
if(i==0) { // make it the black text readable
color_meta.displayName(Component.text(chooseColorNames.get(i), NamedTextColor.WHITE));
} else {
@ -59,51 +50,12 @@ public class ChooseChatColorGUI {
}
for (int i=38; i<45; i++) { gui.setItem(i, nothing); }
// now fill the actual selectables
int i1, i2, i3, i4, i5; // indexes
ItemStack is1, is2, is3, is4, is5; // the item stacks
ItemMeta itemMeta; // just to declare it here and fill it later
for(int i=0; i<3; i++) {
i1 = (4 * i) + i; is1 = chooseColorItems.get(i1);
i2 = i1 + 1; is2 = chooseColorItems.get(i2);
i3 = i1 + 2; is3 = chooseColorItems.get(i3);
i4 = i1 + 3; is4 = chooseColorItems.get(i4);
i5 = i1 + 4; is5 = chooseColorItems.get(i5);
if(i1 == currentColorCodesIndex) {
itemMeta = is1.getItemMeta();
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
itemMeta.addEnchant(Enchantment.THORNS, 1, true);
is1.setItemMeta(itemMeta);
}
if(i2 == currentColorCodesIndex) {
itemMeta = is2.getItemMeta();
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
itemMeta.addEnchant(Enchantment.THORNS, 1, true);
is2.setItemMeta(itemMeta);
}
if(i3 == currentColorCodesIndex) {
itemMeta = is3.getItemMeta();
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
itemMeta.addEnchant(Enchantment.THORNS, 1, true);
is3.setItemMeta(itemMeta);
}
if(i4 == currentColorCodesIndex) {
itemMeta = is4.getItemMeta();
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
itemMeta.addEnchant(Enchantment.THORNS, 1, true);
is4.setItemMeta(itemMeta);
}
if(i5 == currentColorCodesIndex) {
itemMeta = is5.getItemMeta();
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
itemMeta.addEnchant(Enchantment.THORNS, 1, true);
is5.setItemMeta(itemMeta);
}
gui.setItem(11 + (8 * i) + i, is1);
gui.setItem(11 + (8 * i) + i +1, is2);
gui.setItem(11 + (8 * i) + i +2, is3);
gui.setItem(11 + (8 * i) + i +3, is4);
gui.setItem(11 + (8 * i) + i +4, is5);
gui.setItem(11 + (8 * i) + i, chooseColorItems.get((4 * i) + i));
gui.setItem(11 + (8 * i) + i +1, chooseColorItems.get((4 * i) + i +1));
gui.setItem(11 + (8 * i) + i +2, chooseColorItems.get((4 * i) + i +2));
gui.setItem(11 + (8 * i) + i +3, chooseColorItems.get((4 * i) + i +3));
gui.setItem(11 + (8 * i) + i +4, chooseColorItems.get((4 * i) + i +4));
}
return gui;

View File

@ -1,5 +0,0 @@
package de.privacynerd.chatbeautifier.utils;
public class ConfigFilenames {
public static final String chatNameColors = "chatnamecolors.yml";
}

View File

@ -1,46 +0,0 @@
package de.privacynerd.chatbeautifier.utils;
import de.privacynerd.chatbeautifier.displaynamecolor.ChatColorUtils;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextColor;
import net.kyori.adventure.text.format.TextDecoration;
import org.bukkit.entity.Player;
public class DisplayNameSetter {
public static void setName(Player player, Component newName) {
player.displayName(newName);
player.playerListName(newName);
}
public static void setName(Player player) {
Component newName;
TextColor textColor = NamedTextColor.GRAY; // default to gray
// get a potentially saved color (set from /set-chat-color command)
FileConfig chatColorConfig = new FileConfig(ConfigFilenames.chatNameColors);
String UUID_String = player.getUniqueId().toString();
if ( chatColorConfig.contains(UUID_String) ) {
int colorIndex = chatColorConfig.getInt(UUID_String);
textColor = ChatColorUtils.getChooseColorCodes().get(colorIndex);
}
// now compose the name (distinguish between operators and normal players by a red, bold [OP] in the beginning
if(player.isOp()) {
newName = Component.text("[OP] ")
.color(NamedTextColor.RED)
.decoration(TextDecoration.BOLD, true)
.append(Component.text(player.getName())
.color(textColor)
.decoration(TextDecoration.BOLD, false)
);
} else {
newName = Component.text(player.getName())
.color(textColor)
.decoration(TextDecoration.BOLD, false);
}
// now set the name as display and list name
setName(player, newName);
}
}

View File

@ -1,32 +0,0 @@
package de.privacynerd.chatbeautifier.utils;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.IOException;
public class FileConfig extends YamlConfiguration {
private final String path;
public FileConfig(String folder, String filename) {
this.path = "plugins/ChatBeautifier/" + folder + "/" + filename;
try {
load(this.path);
} catch (InvalidConfigurationException | IOException ex) {
ex.printStackTrace();
}
}
public FileConfig(String filename) {
this(".", filename);
}
public void saveConfig() {
try {
save(this.path);
} catch (IOException ex){
ex.printStackTrace();
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.