2021-01-03 07:21:15 +00:00
|
|
|
package dev.plex.listener.impl;
|
2020-11-06 03:50:16 +00:00
|
|
|
|
2022-02-22 01:26:50 +00:00
|
|
|
import com.destroystokyo.paper.event.server.PaperServerListPingEvent;
|
2021-01-03 07:21:15 +00:00
|
|
|
import dev.plex.listener.PlexListener;
|
2022-04-19 20:31:34 +00:00
|
|
|
import dev.plex.util.RandomUtil;
|
2022-02-22 09:30:23 +00:00
|
|
|
import java.util.List;
|
|
|
|
import java.util.stream.Collectors;
|
2022-02-22 01:26:50 +00:00
|
|
|
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
2020-11-06 03:50:16 +00:00
|
|
|
import org.bukkit.Bukkit;
|
|
|
|
import org.bukkit.event.EventHandler;
|
2022-02-22 01:26:50 +00:00
|
|
|
|
2020-11-06 03:50:16 +00:00
|
|
|
public class ServerListener extends PlexListener
|
|
|
|
{
|
|
|
|
@EventHandler
|
2022-02-22 01:26:50 +00:00
|
|
|
public void onServerPing(PaperServerListPingEvent event)
|
2020-11-06 03:50:16 +00:00
|
|
|
{
|
|
|
|
String baseMotd = plugin.config.getString("server.motd");
|
|
|
|
baseMotd = baseMotd.replace("\\n", "\n");
|
|
|
|
baseMotd = baseMotd.replace("%servername%", plugin.config.getString("server.name"));
|
|
|
|
baseMotd = baseMotd.replace("%mcversion%", Bukkit.getBukkitVersion().split("-")[0]);
|
|
|
|
if (plugin.config.getBoolean("server.colorize_motd"))
|
|
|
|
{
|
|
|
|
final StringBuilder motd = new StringBuilder();
|
|
|
|
for (final String word : baseMotd.split(" "))
|
|
|
|
{
|
2022-04-19 20:31:34 +00:00
|
|
|
motd.append(RandomUtil.getRandomColor()).append(word).append(" ");
|
2020-11-06 03:50:16 +00:00
|
|
|
}
|
2022-02-22 01:26:50 +00:00
|
|
|
event.motd(LegacyComponentSerializer.legacyAmpersand().deserialize(motd.toString().trim()));
|
2022-02-22 09:30:23 +00:00
|
|
|
}
|
|
|
|
else
|
2022-02-22 01:26:50 +00:00
|
|
|
{
|
|
|
|
event.motd(LegacyComponentSerializer.legacyAmpersand().deserialize(baseMotd.trim()));
|
2020-11-06 03:50:16 +00:00
|
|
|
}
|
2022-02-22 01:26:50 +00:00
|
|
|
if (plugin.config.contains("server.sample"))
|
2020-11-06 03:50:16 +00:00
|
|
|
{
|
2022-02-22 01:26:50 +00:00
|
|
|
List<String> samples = plugin.config.getStringList("server.sample");
|
|
|
|
if (!samples.isEmpty())
|
|
|
|
{
|
2022-02-22 06:55:59 +00:00
|
|
|
event.getPlayerSample().clear();
|
2022-02-22 01:26:50 +00:00
|
|
|
event.getPlayerSample().addAll(samples.stream().map(string -> string.replace("&", "§")).map(Bukkit::createProfile).collect(Collectors.toList()));
|
|
|
|
}
|
2020-11-06 03:50:16 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|