use of romeplugin.empires.role.RoleEventListener in project rome-plugin by christianbookout.
the class RomePlugin method onEnable.
// runs when the plugin is enabled on the server startup
@Override
public void onEnable() {
this.saveDefaultConfig();
FileConfiguration config = this.getConfig();
MysqlDataSource dataSource = new MysqlConnectionPoolDataSource();
// we set our credentials
dataSource.setServerName(config.getString("database.host"));
dataSource.setPortNumber(config.getInt("database.port"));
dataSource.setDatabaseName(config.getString("database.database"));
dataSource.setUser(config.getString("database.username"));
dataSource.setPassword(config.getString("database.password"));
Material claimMaterial;
String claimMaterialStr = config.getString("claims.claimMaterial");
var protectedMaterialStrings = config.getStringList("claims.autoLockedBlocks");
try {
claimMaterial = Material.valueOf(claimMaterialStr.toUpperCase().strip());
} catch (IllegalArgumentException e) {
this.getLogger().log(Level.WARNING, "error getting minecraft material from " + claimMaterialStr);
claimMaterial = LandEventListener.DEFAULT_MATERIAL;
}
var protectedMaterials = new HashSet<Material>();
protectedMaterialStrings.forEach(matStr -> protectedMaterials.add(Material.valueOf(matStr)));
var lockManager = new LockManager(this);
SQLConn.setSource(dataSource);
try (Connection conn = SQLConn.getConnection()) {
conn.prepareStatement("CREATE TABLE IF NOT EXISTS titles (" + "uuid CHAR(36) NOT NULL PRIMARY KEY," + "title " + TITLE_ENUM + " NOT NULL);").execute();
conn.prepareStatement("CREATE TABLE IF NOT EXISTS builders (" + "uuid CHAR(36) NOT NULL PRIMARY KEY);").execute();
// (x0, y0) must be the top-left point and (x1, y1) must be the bottom-right
// point
conn.prepareStatement("CREATE TABLE IF NOT EXISTS cityClaims (" + "x0 INT NOT NULL," + "y0 INT NOT NULL," + "x1 INT NOT NULL," + "y1 INT NOT NULL," + "owner_uuid CHAR(36) NOT NULL);").execute();
conn.prepareStatement("CREATE TABLE IF NOT EXISTS strawberry (" + "x0 INT NOT NULL," + "y0 INT NOT NULL," + "x1 INT NOT NULL," + "y1 INT NOT NULL," + "added_player_uuid CHAR(36) NOT NULL);").execute();
conn.prepareStatement("CREATE TABLE IF NOT EXISTS usernames (" + "uuid CHAR(36) NOT NULL PRIMARY KEY," + "username CHAR(32) NOT NULL);").execute();
// all players extra claim blocks
conn.prepareStatement("CREATE TABLE IF NOT EXISTS extraClaimBlocks (" + "uuid CHAR(36) NOT NULL PRIMARY KEY," + "blocks INT NOT NULL DEFAULT 0);").execute();
// fun lock stuff
conn.prepareStatement("CREATE TABLE IF NOT EXISTS lockedBlocks (" + "x INT NOT NULL," + "y INT NOT NULL," + "z INT NOT NULL," + "keyId INT NOT NULL);").execute();
conn.prepareStatement("CREATE TABLE IF NOT EXISTS lockKeys (" + "keyId INT NOT NULL AUTO_INCREMENT PRIMARY KEY," + "creator_uuid CHAR(36) NOT NULL);").execute();
conn.prepareStatement("CREATE TABLE IF NOT EXISTS banished (" + "uuid CHAR(36) NOT NULL PRIMARY KEY);").execute();
} catch (SQLException e) {
e.printStackTrace();
}
var roleHandler = new RoleHandler();
var cityManager = new CityManager(config.getInt("land.initialCitySize"), config.getInt("land.cityMultiplier"), config.getInt("land.suburbsMultiplier"), config.getInt("claims.defaultClaimBlocks"), roleHandler);
LandEventListener landListener = new LandEventListener(cityManager, lockManager, claimMaterial, protectedMaterials, config.getLong("claims.claimTimeoutMS"));
var titles = new TitleHandler(this);
PartyHandler partyHandler = new PartyHandler();
var empireHandler = new EmpireHandler(partyHandler);
SwearFilter filter = new SwearFilter(cityManager, SwearLevel.valueOf(config.getString("messages.useSwearFilter").toUpperCase()));
var landEnterListener = new LandEnterListener(cityManager);
var peeController = new PeeController(this);
// var itemBank = new ItemBank(this);
var notifications = new NotificationQueue();
getCommand("city").setExecutor(new CityCommand(cityManager));
getCommand("claim").setExecutor(new ClaimLandCommand(cityManager));
getCommand("claiminfo").setExecutor(new ClaimInfoCommand());
getCommand("removetitle").setExecutor(new RemoveTitleCommand(titles));
getCommand("settitle").setExecutor(new SetTitleCommand(titles));
// getCommand("bal").setExecutor(new BalanceCommand(ledger));
getServer().getPluginManager().registerEvents(new RemovePopeListener(roleHandler), this);
getCommand("builder").setExecutor(new BuilderCommand());
getCommand("shout").setExecutor(new ShoutCommand(partyHandler, roleHandler));
getCommand("pee").setExecutor(peeController);
// getCommand("makekey").setExecutor(new MakeKeyCommand(lockManager));
getCommand("getblocks").setExecutor(new GetClaimBlocksCommand(cityManager));
getCommand("elections").setExecutor(new ElectionCommand(new ElectionHandler(notifications, this, roleHandler), empireHandler, roleHandler));
getCommand("elections").setTabCompleter(new ElectionTabCompleter());
getCommand("titles").setExecutor(new TitlesCommand());
getCommand("parties").setExecutor(new PartyCommand(partyHandler));
// getCommand("itembank").setExecutor(itemBank);
getCommand("notification").setExecutor(new NotificationCommand(notifications));
// getServer().getPluginManager().registerEvents(itemBank, this);
getCommand("spawn").setExecutor(new SpawnCommand(cityManager));
getCommand("banish").setExecutor(new BanishCommand(landEnterListener, roleHandler));
getServer().getPluginManager().registerEvents(peeController, this);
getServer().getPluginManager().registerEvents(new RoleEventListener(roleHandler, partyHandler), this);
getServer().getPluginManager().registerEvents(new DistanceListener(config.getInt("messages.messageDistance"), filter, cityManager), this);
// getServer().getPluginManager().registerEvents(new BlockchainEventListener(this, ledger), this);
getServer().getPluginManager().registerEvents(landListener, this);
getServer().getPluginManager().registerEvents(lockManager, this);
getServer().getPluginManager().registerEvents(landEnterListener, this);
}
Aggregations