Implemented functionality to restrict the number of armor stands a player can place in a chunk based on permissions. Added configuration support for customizable limits and proper error handling for edge cases. Registered the LimitArmorStands event listener in the plugin manager.
62 lines
2.0 KiB
Java
62 lines
2.0 KiB
Java
package com.alttd.playerutils;
|
|
|
|
import com.alttd.playerutils.commands.PlayerUtilsCommand;
|
|
import com.alttd.playerutils.commands.playerutils_subcommands.RotateBlock;
|
|
import com.alttd.playerutils.config.Config;
|
|
import com.alttd.playerutils.config.KeyStorage;
|
|
import com.alttd.playerutils.config.Messages;
|
|
import com.alttd.playerutils.event_listeners.*;
|
|
import com.alttd.playerutils.util.Logger;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.plugin.PluginManager;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
public final class PlayerUtils extends JavaPlugin {
|
|
|
|
private Logger logger;
|
|
private PlayerUtilsCommand playerUtilsCommand;
|
|
|
|
@Override
|
|
public void onEnable() {
|
|
this.logger = new Logger(getLogger());
|
|
registerCommands();
|
|
registerEvents();
|
|
reloadConfigs();
|
|
registerSchedulers();
|
|
}
|
|
|
|
@Override
|
|
public void onDisable() {
|
|
KeyStorage.STORAGE.save();
|
|
}
|
|
|
|
private void registerCommands() {
|
|
playerUtilsCommand = new PlayerUtilsCommand(this, logger);
|
|
}
|
|
|
|
private void registerEvents() {
|
|
PluginManager pluginManager = getServer().getPluginManager();
|
|
pluginManager.registerEvents(new XpBottleEvent(this, logger), this);
|
|
pluginManager.registerEvents(new TeleportEvent(), this);
|
|
pluginManager.registerEvents(new GoatHornEvent(logger), this);
|
|
pluginManager.registerEvents(new LimitArmorStands(this, logger), this);
|
|
|
|
RotateBlockEvent rotateBlockEvent = new RotateBlockEvent(logger);
|
|
pluginManager.registerEvents(rotateBlockEvent, this);
|
|
playerUtilsCommand.addSubCommand(new RotateBlock(rotateBlockEvent));
|
|
}
|
|
|
|
public void reloadConfigs() {
|
|
Config.reload(logger);
|
|
Messages.reload(logger);
|
|
KeyStorage.reload(logger);
|
|
}
|
|
|
|
private void registerSchedulers() {
|
|
Bukkit.getScheduler().runTaskTimerAsynchronously(this, KeyStorage.STORAGE::save,
|
|
TimeUnit.MINUTES.toSeconds(5) * 20, TimeUnit.MINUTES.toSeconds(5) * 20);
|
|
}
|
|
}
|