Sunburst/server/src/main/java/dev/plex/Sunburst.java

115 lines
3.5 KiB
Java

package dev.plex;
import dev.plex.command.impl.*;
import dev.plex.listener.impl.player.ChatListener;
import dev.plex.listener.impl.player.GodListener;
import dev.plex.listener.impl.player.JoinListener;
import dev.plex.listener.impl.player.SpawnListener;
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 dev.plex.util.Logger;
import dev.plex.world.JsonWorldManager;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
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;
@Getter(AccessLevel.NONE)
private JsonWorldManager jsonWorldManager;
@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) -> {
Logger.log("Spokenz");
Logger.log(ComponentUtil.mmCustom(sourceDisplayName, ComponentUtil.REGULAR_TAGS));
return ComponentUtil.configComponent("chatFormat",
ComponentUtil.REGULAR_TAGS,
ComponentUtil.mmCustom(sourceDisplayName, ComponentUtil.REGULAR_TAGS),
PlainTextComponentSerializer.plainText().serialize(message));
});
Logger.debug("Loading");
}
@Override
public void onEnable()
{
this.getObjectHolder().setStorageSystem(new FileStorage());
this.jsonWorldManager = new JsonWorldManager();
new JoinListener();
new ChatListener();
new GodListener();
new SpawnListener();
new NicknameCMD();
new SunburstCMD();
new MessageCMD();
new ReplyCMD();
new GodCMD();
new SetSpawnCMD();
new SpawnCMD();
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);
});
}
@Override
public JsonWorldManager getWorldManager()
{
return jsonWorldManager;
}
public static Sunburst inst()
{
return plugin;
}
}