209 lines
9.5 KiB
Java
209 lines
9.5 KiB
Java
/*
|
|
* Copyright (c) 2018 univento.eu - All rights reserved
|
|
* You are not allowed to use, distribute or modify this code
|
|
*/
|
|
|
|
package eu.univento.core;
|
|
|
|
import co.aikar.taskchain.BukkitTaskChainFactory;
|
|
import co.aikar.taskchain.TaskChainFactory;
|
|
import com.comphenix.protocol.PacketType;
|
|
import com.comphenix.protocol.ProtocolLibrary;
|
|
import com.comphenix.protocol.ProtocolManager;
|
|
import com.comphenix.protocol.events.ListenerOptions;
|
|
import com.comphenix.protocol.events.ListenerPriority;
|
|
import com.comphenix.protocol.events.PacketAdapter;
|
|
import com.comphenix.protocol.events.PacketEvent;
|
|
import eu.univento.commons.Commons;
|
|
import eu.univento.core.api.advancement.CustomAdvancement;
|
|
import eu.univento.core.api.cloud.CloudApiWrapper;
|
|
import eu.univento.core.api.command.CommandFramework;
|
|
import eu.univento.core.api.effects.Blackscreen;
|
|
import eu.univento.core.api.events.MoveEventFilter;
|
|
import eu.univento.core.api.items.HeadDB;
|
|
import eu.univento.core.api.player.CustomPlayer;
|
|
import eu.univento.core.commands.*;
|
|
import eu.univento.core.customitems.weapons.closecombat.CloseCombatEvents;
|
|
import eu.univento.core.listeners.*;
|
|
import eu.univento.core.listeners.cloud.Servers;
|
|
import io.sentry.Sentry;
|
|
import io.sentry.SentryClient;
|
|
import io.sentry.jul.SentryHandler;
|
|
import lombok.Getter;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.inventory.Recipe;
|
|
import org.bukkit.plugin.PluginManager;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
import pl.kacperduras.tasket.Tasket;
|
|
import pl.kacperduras.tasket.bukkit.BukkitTasket;
|
|
|
|
import java.net.InetAddress;
|
|
import java.net.UnknownHostException;
|
|
import java.util.Collection;
|
|
import java.util.Collections;
|
|
import java.util.Iterator;
|
|
import java.util.LinkedList;
|
|
import java.util.logging.Level;
|
|
|
|
/**
|
|
* main class
|
|
*
|
|
* @author joethei
|
|
* @version 1.0
|
|
*/
|
|
public class Core extends JavaPlugin{
|
|
|
|
@Getter private static Core instance;
|
|
@Getter private static Commons commons;
|
|
@Getter private static CommandFramework commandFramework;
|
|
@Getter private static TaskChainFactory taskChainFactory;
|
|
@Getter private static Tasket tasket;
|
|
@Getter private static CloudApiWrapper cloudAPI;
|
|
@Getter private static ProtocolManager protocolManager;
|
|
@Getter private static HeadDB headDB;
|
|
|
|
public static String getNMSVersion() {
|
|
final String packageName = Bukkit.getServer().getClass().getPackage().getName();
|
|
return packageName.substring(packageName.lastIndexOf('.') + 1);
|
|
}
|
|
|
|
public static Collection<CustomPlayer> getOnlinePlayers() {
|
|
Collection<CustomPlayer> list = new LinkedList<>();
|
|
for (Player players : Bukkit.getOnlinePlayers()) {
|
|
CustomPlayer p = CustomPlayer.getPlayer(players);
|
|
list.add(p);
|
|
}
|
|
return list;
|
|
}
|
|
|
|
@Override
|
|
public void onEnable() {
|
|
commons = new Commons();
|
|
instance = this;
|
|
protocolManager = ProtocolLibrary.getProtocolManager();
|
|
protocolManager.addPacketListener(new PacketAdapter(this, ListenerPriority.NORMAL, Collections.singletonList(PacketType.Play.Server.CHAT), ListenerOptions.SKIP_PLUGIN_VERIFIER) {
|
|
@Override
|
|
public void onPacketSending(PacketEvent event) {
|
|
super.onPacketSending(event);
|
|
}
|
|
});
|
|
|
|
SentryClient sentryClient = Sentry.init(commons.getConfigurationHandler().getString("Sentry.DSN.Core"));
|
|
try {
|
|
sentryClient.setServerName(InetAddress.getLocalHost().getHostName());
|
|
sentryClient.setEnvironment("");
|
|
sentryClient.setDist("Core");
|
|
sentryClient.setRelease("1.0.0");
|
|
} catch (UnknownHostException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
SentryHandler logHandler = new SentryHandler();
|
|
logHandler.setLevel(Level.INFO);
|
|
getLogger().addHandler(logHandler);
|
|
|
|
taskChainFactory = BukkitTaskChainFactory.create(this);
|
|
tasket = new BukkitTasket(this);
|
|
cloudAPI = new CloudApiWrapper();
|
|
|
|
commandFramework = new CommandFramework(this);
|
|
|
|
commandFramework.registerCommands(new AdminCommands());
|
|
commandFramework.registerCommands(new DevCommands());
|
|
commandFramework.registerCommands(new ModCommands());
|
|
commandFramework.registerCommands(new BuilderCommands());
|
|
commandFramework.registerCommands(new VIPCommands());
|
|
commandFramework.registerCommands(new PlayerCommands());
|
|
|
|
commandFramework.registerCommands(new HologramCommands());
|
|
|
|
|
|
PluginManager pm = Bukkit.getPluginManager();
|
|
pm.registerEvents(new Commands(), this);
|
|
pm.registerEvents(new JoinQuit(), this);
|
|
pm.registerEvents(new Chat(), this);
|
|
pm.registerEvents(new Events(), this);
|
|
pm.registerEvents(new WeaponEvents(), this);
|
|
pm.registerEvents(new SpectatorEvents(), this);
|
|
pm.registerEvents(new MoveEventFilter(getServer()), this);
|
|
pm.registerEvents(new WorkbenchEvents(), this);
|
|
pm.registerEvents(new NPCEvents(), this);
|
|
pm.registerEvents(new CloseCombatEvents(), this);
|
|
|
|
|
|
PluginMessenger pluginMessenger = new PluginMessenger();
|
|
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
|
|
Bukkit.getMessenger().registerIncomingPluginChannel(this, "BungeeCord", pluginMessenger);
|
|
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "5zig_Set");
|
|
Bukkit.getMessenger().registerIncomingPluginChannel(this, "5zig_Set", pluginMessenger);
|
|
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "LABYMOD");
|
|
Bukkit.getMessenger().registerIncomingPluginChannel(this, "WDL|INIT", pluginMessenger);
|
|
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "WDL|CONTROL");
|
|
Bukkit.getMessenger().registerIncomingPluginChannel(this, "WDL|REQUEST", pluginMessenger);
|
|
Bukkit.getMessenger().registerIncomingPluginChannel(this, "PERMISSIONSREPL", pluginMessenger);
|
|
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "schematica");
|
|
|
|
Servers.register();
|
|
headDB = new HeadDB();
|
|
Blackscreen.setupUtil(getInstance());
|
|
|
|
for(CustomAdvancement advancement : CustomAdvancement.values()) advancement.load();
|
|
|
|
Iterator<Recipe> iterator = Bukkit.recipeIterator();
|
|
while(iterator.hasNext()) {
|
|
Recipe recipe = iterator.next();
|
|
//TODO: remove unwanted recipes and add own recipies
|
|
/*
|
|
if() {
|
|
iterator.remove();
|
|
}
|
|
*/
|
|
}
|
|
/*
|
|
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> {
|
|
|
|
String[] args = new SimpleDateFormat("HH:mm").format(new Date()).split(":");
|
|
long time = (Integer.parseInt(args[0])*1000) + (Integer.parseInt(args[1])*100/60) + 18000;
|
|
|
|
for(World world : Bukkit.getWorlds()) world.setTime(time);
|
|
}, 20L, 1L);
|
|
*/
|
|
}
|
|
|
|
@Override
|
|
public void onDisable() {
|
|
Bukkit.getMessenger().unregisterIncomingPluginChannel(this);
|
|
Bukkit.getMessenger().unregisterOutgoingPluginChannel(this);
|
|
|
|
getLogger().info("\n" +
|
|
"\n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" _ _ _ \n" +
|
|
" | | | | | | \n" +
|
|
" ___ ___ _ ____ _____ _ __ ___| |__ _ _| |_ __| | _____ ___ __ \n" +
|
|
"/ __|/ _ \\ '__\\ \\ / / _ \\ '__| / __| '_ \\| | | | __/ _` |/ _ \\ \\ /\\ / / '_ \\ \n" +
|
|
"\\__ \\ __/ | \\ V / __/ | \\__ \\ | | | |_| | || (_| | (_) \\ V V /| | | |\n" +
|
|
"|___/\\___|_| \\_/ \\___|_| |___/_| |_|\\__,_|\\__\\__,_|\\___/ \\_/\\_/ |_| |_|\n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
" \n" +
|
|
"\n");
|
|
commons.shutdown();
|
|
}
|
|
|
|
} |