Code Feedback

package net.eterneon.atlas.listeners;

import io.papermc.paper.chat.ChatRenderer;
import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class ChatListener implements Listener, ChatRenderer {
private final JavaPlugin plugin;
private final LegacyComponentSerializer legacy = LegacyComponentSerializer.legacyAmpersand();
private final MiniMessage miniMessage = MiniMessage.miniMessage();

public ChatListener(JavaPlugin plugin) {
this.plugin = plugin;
}

@EventHandler
public void onChat(AsyncChatEvent event) {
event.renderer(this); // Tell the event to use our renderer
}


@Override
public Component render(Player source, Component sourceDisplayName, Component message, Audience viewer) {
String format = plugin.getConfig().getString("chat.format", "{displayname} » {message}");
String type = plugin.getConfig().getString("chat.type", "minimessage").toLowerCase();

String prefix = "";
String suffix = "";

String formatted = format
.replace("{prefix}", prefix)
.replace("{displayname}", source.getName())
.replace("{suffix}", suffix)
.replace("{message}", type.equals("legacy")
? legacy.serialize(message)
: miniMessage.serialize(message));


if (type.equals("legacy")) {
return legacy.deserialize(formatted); // parse & into colors
} else {
return miniMessage.deserialize(formatted); // parse minimessage into components
}
}
}
package net.eterneon.atlas.listeners;

import io.papermc.paper.chat.ChatRenderer;
import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class ChatListener implements Listener, ChatRenderer {
private final JavaPlugin plugin;
private final LegacyComponentSerializer legacy = LegacyComponentSerializer.legacyAmpersand();
private final MiniMessage miniMessage = MiniMessage.miniMessage();

public ChatListener(JavaPlugin plugin) {
this.plugin = plugin;
}

@EventHandler
public void onChat(AsyncChatEvent event) {
event.renderer(this); // Tell the event to use our renderer
}


@Override
public Component render(Player source, Component sourceDisplayName, Component message, Audience viewer) {
String format = plugin.getConfig().getString("chat.format", "{displayname} » {message}");
String type = plugin.getConfig().getString("chat.type", "minimessage").toLowerCase();

String prefix = "";
String suffix = "";

String formatted = format
.replace("{prefix}", prefix)
.replace("{displayname}", source.getName())
.replace("{suffix}", suffix)
.replace("{message}", type.equals("legacy")
? legacy.serialize(message)
: miniMessage.serialize(message));


if (type.equals("legacy")) {
return legacy.deserialize(formatted); // parse & into colors
} else {
return miniMessage.deserialize(formatted); // parse minimessage into components
}
}
}
I would like to ask about this code, specifically made for chat formatting and using legacy or minimessage.
1 Reply
Error110
Error1102mo ago
prob should be for #development

Did you find this page helpful?