Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.kbabe.firework;
- import com.mongodb.MongoClient;
- import com.mongodb.MongoCredential;
- import com.mongodb.ServerAddress;
- import com.mongodb.client.MongoDatabase;
- import me.kbabe.firework.command.FactionCommand;
- import org.bukkit.ChatColor;
- import org.bukkit.Server;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.scheduler.BukkitScheduler;
- import me.kbabe.firework.listener.PlayerListener;
- import me.kbabe.firework.manager.FactionManager;
- import me.kbabe.firework.manager.ProfileManager;
- import me.kbabe.firework.messages.Message;
- import me.kbabe.firework.messages.Messages;
- import me.kbabe.firework.packet.PacketHandler;
- import me.kbabe.firework.player.FactionProfile;
- import me.kbabe.firework.utils.file.YMLFile;
- import java.util.*;
- public class HCFactions extends JavaPlugin {
- private YMLFile langYML, databaseYML;
- private MongoDatabase database;
- private FactionManager factionManager;
- private ProfileManager profileManager;
- //TODO: make this editable in config
- public static final int MAX_FACTION_AMOUNT = 15;
- //TODO: make permission based deathban times
- public static final long
- STARTUP = System.currentTimeMillis(),
- DEATHBAN_TIME = 5400000; // 1.5 hours
- @Override
- public void onEnable() {
- if (!getDataFolder().exists()) getDataFolder().mkdirs();
- langYML = new YMLFile(this, "lang.yml");
- databaseYML = new YMLFile(this, "database.yml");
- FileConfiguration
- langConfig = langYML.getConfig(),
- databaseConfig = databaseYML.getConfig();
- Map<String, Object>
- langDefaults = new HashMap<>(),
- databaseDefaults = new HashMap<>();
- for (Message message : Messages.MESSAGES.values()) {
- langDefaults.put(message.getName(), message.getValue());
- }
- databaseDefaults.put("Database.hostname", "127.0.0.1");
- databaseDefaults.put("Database.port", 27017);
- databaseDefaults.put("Database.name", "hcfactions");
- databaseDefaults.put("Database.username", "username");
- databaseDefaults.put("Database.password", "password");
- langYML.setDefaults(langDefaults);
- databaseYML.setDefaults(databaseDefaults);
- String
- host = databaseConfig.getString("Database.hostname"),
- databaseName = databaseConfig.getString("Database.name"),
- userName = databaseConfig.getString("Database.username"),
- password = databaseConfig.getString("Database.password");
- int port = databaseConfig.getInt("Database.port");
- MongoClient client = new MongoClient(new ServerAddress(host, port), Collections.singletonList(MongoCredential.createCredential(userName, databaseName, password.toCharArray())));
- database = client.getDatabase(databaseName);
- for (String name : Messages.MESSAGES.keySet()) {
- setMessage(name, langConfig.getString(name));
- }
- factionManager = new FactionManager(this);
- profileManager = new ProfileManager(this);
- BukkitScheduler scheduler = getServer().getScheduler();
- scheduler.runTaskLaterAsynchronously(this, factionManager::loadFactions, 10L);
- scheduler.runTaskTimerAsynchronously(this, () -> {
- factionManager.saveFactions();
- for (FactionProfile profile : profileManager.getProfileMap().values())
- profile.save();
- }, 12L, 200L);
- PluginManager pluginManager = getServer().getPluginManager();
- pluginManager.registerEvents(new PlayerListener(this), this);
- getServer().getCommandMap().register("hcfactions", new FactionCommand(this));
- new PacketHandler(this);
- }
- @Override
- public void onDisable() {
- Server server = getServer();
- server.getOnlinePlayers().forEach(player -> player.kickPlayer(ChatColor.translateAlternateColorCodes('&', "&dRestarting.")));
- factionManager.saveFactions();
- }
- public MongoDatabase getMongoDatabase() {
- return database;
- }
- public FactionManager getFactionManager() {
- return factionManager;
- }
- public ProfileManager getProfileManager() {
- return profileManager;
- }
- private void setMessage(String name, String value) {
- getMessage(name).setValue(value);
- }
- public Message getMessage(String name) {
- return Messages.MESSAGES.get(name);
- }
- }
Add Comment
Please, Sign In to add comment