86 lines
2.8 KiB
Java
86 lines
2.8 KiB
Java
package dev.plex;
|
|
|
|
import dev.plex.command.impl.NicknameCMD;
|
|
import dev.plex.command.impl.SunburstCMD;
|
|
import dev.plex.listener.impl.player.ChatListener;
|
|
import dev.plex.listener.impl.player.JoinListener;
|
|
import dev.plex.permission.PermissionHandlerImpl;
|
|
import dev.plex.player.ISunburstPlayer;
|
|
import dev.plex.player.PlayerCache;
|
|
import dev.plex.player.SunburstPlayer;
|
|
import dev.plex.plugin.SunburstPlugin;
|
|
import dev.plex.storage.FileStorage;
|
|
import dev.plex.util.ComponentUtil;
|
|
import dev.plex.util.Configuration;
|
|
import lombok.Getter;
|
|
import lombok.Setter;
|
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
|
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
|
import org.bukkit.Bukkit;
|
|
|
|
@Getter
|
|
@Setter
|
|
public final class Sunburst extends SunburstPlugin
|
|
{
|
|
private static Sunburst plugin;
|
|
|
|
private final PlayerCache playerCache = new PlayerCache();
|
|
|
|
private Configuration configuration;
|
|
private Configuration messages;
|
|
|
|
|
|
@Override
|
|
public void load()
|
|
{
|
|
plugin = this;
|
|
this.configuration = new Configuration(this, "config.yml");
|
|
this.messages = new Configuration(this, "messages.yml");
|
|
|
|
this.configuration.load();
|
|
this.messages.load();
|
|
|
|
this.getObjectHolder().setPermissionHandler(new PermissionHandlerImpl());
|
|
this.getObjectHolder().setChatRenderer((source, sourceDisplayName, message, viewer) -> ComponentUtil.configComponent("chatFormat", MiniMessage.miniMessage().serialize(source.displayName()), PlainTextComponentSerializer.plainText().serialize(message)));
|
|
}
|
|
|
|
@Override
|
|
public void onEnable()
|
|
{
|
|
this.getObjectHolder().setStorageSystem(new FileStorage());
|
|
|
|
new JoinListener();
|
|
new ChatListener();
|
|
new NicknameCMD();
|
|
new SunburstCMD();
|
|
|
|
Bukkit.getOnlinePlayers().forEach(player ->
|
|
{
|
|
ISunburstPlayer sunburstPlayer = plugin.getObjectHolder().getStorageSystem().getPlayer(player.getUniqueId());
|
|
if (sunburstPlayer == null)
|
|
{
|
|
sunburstPlayer = new SunburstPlayer(player.getUniqueId(), player.getName(), player.getAddress().getAddress().getHostAddress());
|
|
plugin.getObjectHolder().getStorageSystem().createPlayer(sunburstPlayer);
|
|
}
|
|
plugin.getPlayerCache().addPlayer(sunburstPlayer);
|
|
if (sunburstPlayer.displayName() != null)
|
|
{
|
|
player.displayName(sunburstPlayer.displayName());
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override
|
|
public void onDisable()
|
|
{
|
|
plugin.getPlayerCache().getPlayers().forEach(sunburstPlayer -> {
|
|
plugin.getObjectHolder().getStorageSystem().updatePlayer(sunburstPlayer);
|
|
});
|
|
}
|
|
|
|
public static Sunburst inst()
|
|
{
|
|
return plugin;
|
|
}
|
|
}
|