Spigot Plugin
SettingsHubPlugin
Make a plugin that opens a settings gui by command thats implementing InventoryHolders for safety of use and there you can toggle settings like mob spawns near you, fullbright, /msg /replys and an auction house if you want alerts or not and a pay and /balance system, all settings which you can toggle should be the whole features in the plugin
src/main/java/eu/codexe/settingshub/SettingsHubPlugin.java
package eu.codexe.settingshub;
import eu.codexe.settingshub.commands.AuctionCommand;
import eu.codexe.settingshub.commands.BalanceCommand;
import eu.codexe.settingshub.commands.MsgCommand;
import eu.codexe.settingshub.commands.PayCommand;
import eu.codexe.settingshub.commands.ReplyCommand;
import eu.codexe.settingshub.commands.ReloadCommand;
import eu.codexe.settingshub.commands.SettingsCommand;
import eu.codexe.settingshub.listeners.PlayerJoinListener;
import eu.codexe.settingshub.listeners.PlayerQuitListener;
import eu.codexe.settingshub.listeners.SettingsGuiListener;
import eu.codexe.settingshub.managers.AuctionManager;
import eu.codexe.settingshub.managers.EconomyManager;
import eu.codexe.settingshub.managers.MessageManager;
import eu.codexe.settingshub.managers.SettingsManager;
import eu.codexe.settingshub.storage.StorageManager;
import eu.codexe.settingshub.storage.YamlStorage;
import eu.codexe.settingshub.utils.CommandUtil;
import org.bukkit.Bukkit;
import org.bukkit.command.PluginCommand;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.Objects;
public final class SettingsHubPlugin extends JavaPlugin {
private MessageManager messageManager;
private StorageManager storageManager;
private SettingsManager settingsManager;
private EconomyManager economyManager;
private AuctionManager auctionManager;
@Override
public void onEnable() {
saveDefaultConfig();
this.messageManager = new MessageManager(this);
this.storageManager = new YamlStorage(this);
this.settingsManager = new SettingsManager(this, storageManager);
this.economyManager = new EconomyManager(this, storageManager);
this.auctionManager = new AuctionManager(this, storageManager, economyManager, settingsManager);
storageManager.load();
registerCommands();
registerListeners();
Bukkit.getOnlinePlayers().forEach(player -> {
settingsManager.ensurePlayer(player.getUniqueId(), player.getName());
economyManager.ensurePlayer(player.getUniqueId(), player.getName());
});
}
@Override
public void onDisable() {
if (storageManager != null) {
storageManager.saveAll();
}
}