mirror of
https://github.com/songoda/FabledSkyBlock.git
synced 2024-11-23 02:35:25 +01:00
Settings Editor
# Added the 'Settings Editor' menu to edit the default settings for when an Island is created rather than having to change the settings from the 'settings.yml' file. # Added the command '/island admin settings' to open the 'Settings Editor' menu.
This commit is contained in:
parent
03adddeefd
commit
e2f713551d
207
language.yml
207
language.yml
@ -549,6 +549,11 @@ Command:
|
||||
Message: "&f&oChange Island level materials and points."
|
||||
Permission:
|
||||
Message: "&bSkyBlock &8| &cError&8: &eYou don't have permission to perform that command."
|
||||
Settings:
|
||||
Info:
|
||||
Message: "&f&oChange the default settings for when an Island is created."
|
||||
Permission:
|
||||
Message: "&bSkyBlock &8| &cError&8: &eYou don't have permission to perform that command."
|
||||
Structure:
|
||||
Info:
|
||||
Message: "&f&oCreate structures for Islands."
|
||||
@ -2056,3 +2061,205 @@ Menu:
|
||||
- ""
|
||||
- "&eLeft-Click to change points!"
|
||||
- "&eRight-Click to remove material!"
|
||||
Settings:
|
||||
Categories:
|
||||
Title: "&8Settings Editor - Categories"
|
||||
Item:
|
||||
Exit:
|
||||
Displayname: "&cClick to Exit"
|
||||
Visitor:
|
||||
Displayname: "&aVisitor Settings"
|
||||
Lore:
|
||||
- "&7Edit and decide what you want"
|
||||
- "&7the default Visitor permissions"
|
||||
- "&7to be when an Island is created."
|
||||
- ""
|
||||
- "&eClick to Edit Settings!"
|
||||
Member:
|
||||
Displayname: "&aMember Settings"
|
||||
Lore:
|
||||
- "&7Edit and decide what you want"
|
||||
- "&7the default Member permissions"
|
||||
- "&7to be when an Island is created."
|
||||
- ""
|
||||
- "&eClick to Edit Settings!"
|
||||
Operator:
|
||||
Displayname: "&aOperator Settings"
|
||||
Lore:
|
||||
- "&7Edit and decide what you want"
|
||||
- "&7the default Operator permissions"
|
||||
- "&7to be when an Island is created."
|
||||
- ""
|
||||
- "&eClick to Edit Settings!"
|
||||
Owner:
|
||||
Displayname: "&aIsland Settings"
|
||||
Lore:
|
||||
- "&7Edit and decide what you want"
|
||||
- "&7the default Island permissions"
|
||||
- "&7to be when an Island is created."
|
||||
- ""
|
||||
- "&eClick to Edit Settings!"
|
||||
Visitor:
|
||||
Title: "&8Settings Editor - Visitor"
|
||||
Item:
|
||||
Return:
|
||||
Displayname: "&cClick to Return"
|
||||
Member:
|
||||
Title: "&8Settings Editor - Member"
|
||||
Item:
|
||||
Return:
|
||||
Displayname: "&cClick to Return"
|
||||
Operator:
|
||||
Title: "&8Settings Editor - Operator"
|
||||
Item:
|
||||
Return:
|
||||
Displayname: "&cClick to Return"
|
||||
Setting:
|
||||
Status:
|
||||
Enabled:
|
||||
Lore:
|
||||
- "&7Status&8: &atrue"
|
||||
Disabled:
|
||||
Lore:
|
||||
- "&7Status&8: &cfalse"
|
||||
Invite:
|
||||
Displayname: "&aSend Invites"
|
||||
Kick:
|
||||
Displayname: "&aKick Members & Visitors"
|
||||
Ban:
|
||||
Displayname: "&aBan Visitors"
|
||||
Unban:
|
||||
Displayname: "&aUnban Visitors"
|
||||
Visitor:
|
||||
Displayname: "&aEdit Visitor Settings"
|
||||
Member:
|
||||
Displayname: "&aEdit Member Settings"
|
||||
Island:
|
||||
Displayname: "&aEdit Island Settings"
|
||||
MainSpawn:
|
||||
Displayname: "&aSet Island Main Spawn"
|
||||
VisitorSpawn:
|
||||
Displayname: "&aSet Island Visitor Spawn"
|
||||
Biome:
|
||||
Displayname: "&aSet Biome"
|
||||
Weather:
|
||||
Displayname: "&aSet Weather"
|
||||
Owner:
|
||||
Title: "&8Settings Editor - Island"
|
||||
Item:
|
||||
Return:
|
||||
Displayname: "&cClick to Return"
|
||||
Setting:
|
||||
Status:
|
||||
Enabled:
|
||||
Lore:
|
||||
- "&7Status&8: &atrue"
|
||||
Disabled:
|
||||
Lore:
|
||||
- "&7Status&8: &cfalse"
|
||||
NaturalMobSpawning:
|
||||
Displayname: "&aNatural Mob Spawning"
|
||||
MobGriefing:
|
||||
Displayname: "&aMob Griefing"
|
||||
PvP:
|
||||
Displayname: "&aPvP"
|
||||
Explosions:
|
||||
Displayname: "&aExplosions"
|
||||
FireSpread:
|
||||
Displayname: "&aFire Spread"
|
||||
LeafDecay:
|
||||
Displayname: "&aLeaf Decay"
|
||||
KeepItemsOnDeath:
|
||||
Displayname: "&aKeep Items on Death"
|
||||
Default:
|
||||
Item:
|
||||
Setting:
|
||||
Status:
|
||||
Enabled:
|
||||
Lore:
|
||||
- "&7Status&8: &atrue"
|
||||
Disabled:
|
||||
Lore:
|
||||
- "&7Status&8: &cfalse"
|
||||
Destroy:
|
||||
Displayname: "&aDestroy Blocks"
|
||||
Place:
|
||||
Displayname: "&aPlace Blocks"
|
||||
Anvil:
|
||||
Displayname: "&aAnvil Use"
|
||||
ArmorStand:
|
||||
Displayname: "&aArmorStand Use"
|
||||
Beacon:
|
||||
Displayname: "&aBeacon Use"
|
||||
Bed:
|
||||
Displayname: "&aBed Use"
|
||||
AnimalBreeding:
|
||||
Displayname: "&aAnimal Breeding"
|
||||
Brewing:
|
||||
Displayname: "&aBrewing Stand Use"
|
||||
Bucket:
|
||||
Displayname: "&aBucket Use"
|
||||
WaterCollection:
|
||||
Displayname: "&aWater Collection"
|
||||
Storage:
|
||||
Displayname: "&aAccess Storage"
|
||||
Workbench:
|
||||
Displayname: "&aWorkbench Use"
|
||||
Crop:
|
||||
Displayname: "&aCrop Trampling"
|
||||
Door:
|
||||
Displayname: "&aDoor Use"
|
||||
Gate:
|
||||
Displayname: "&aGate Use"
|
||||
Projectile:
|
||||
Displayname: "&aProjectile Launch"
|
||||
Enchant:
|
||||
Displayname: "&aEnchantment Table Use"
|
||||
Fire:
|
||||
Displayname: "&aFire Extinguish"
|
||||
Furnace:
|
||||
Displayname: "&aFurnace Use"
|
||||
HorseInventory:
|
||||
Displayname: "&aAccess Horse Inventory"
|
||||
MobRiding:
|
||||
Displayname: "&aMob Riding"
|
||||
MobHurting:
|
||||
Displayname: "&aMob Hurting"
|
||||
MobTaming:
|
||||
Displayname: "&aMob Taming"
|
||||
Leash:
|
||||
Displayname: "&aLeash Use"
|
||||
LeverButton:
|
||||
Displayname: "&aLever/Button Use"
|
||||
Milking:
|
||||
Displayname: "&aMilking"
|
||||
Jukebox:
|
||||
Displayname: "&aJukebox Use"
|
||||
PressurePlate:
|
||||
Displayname: "&aPressure Plate Activate"
|
||||
Redstone:
|
||||
Displayname: "&aRedstone Use"
|
||||
Shearing:
|
||||
Displayname: "&aMob Shearing"
|
||||
Trading:
|
||||
Displayname: "&aVillager Trading"
|
||||
ItemDrop:
|
||||
Displayname: "&aItem Drop"
|
||||
ItemPickup:
|
||||
Displayname: "&aItem Pickup"
|
||||
Fishing:
|
||||
Displayname: "&aFishing"
|
||||
DropperDispenser:
|
||||
Displayname: "&aDropper/Dispenser Use"
|
||||
SpawnEgg:
|
||||
Displayname: "&aSpawn Eggs"
|
||||
Cake:
|
||||
Displayname: "&aCake Consumption"
|
||||
DragonEggUse:
|
||||
Displayname: "&aDragon Egg Use"
|
||||
MinecartBoat:
|
||||
Displayname: "&aMinecart/Boat Use"
|
||||
Portal:
|
||||
Displayname: "&aPortal Use"
|
||||
Hopper:
|
||||
Displayname: "&aHopper Use"
|
@ -1,6 +1,6 @@
|
||||
name: SkyBlock
|
||||
main: me.goodandevil.skyblock.Main
|
||||
version: 23
|
||||
version: 24
|
||||
api-version: 1.13
|
||||
description: A unique SkyBlock plugin
|
||||
author: GoodAndEvil
|
||||
|
@ -149,6 +149,7 @@ public class Main extends JavaPlugin {
|
||||
|
||||
pluginManager.registerEvents(new me.goodandevil.skyblock.menus.admin.Levelling(), this);
|
||||
pluginManager.registerEvents(new me.goodandevil.skyblock.menus.admin.Creator(), this);
|
||||
pluginManager.registerEvents(new me.goodandevil.skyblock.menus.admin.Settings(), this);
|
||||
pluginManager.registerEvents(new Generator(), this);
|
||||
}
|
||||
|
||||
|
@ -119,11 +119,12 @@ public class CommandManager implements CommandExecutor, TabCompleter {
|
||||
this.subCommands.put(CommandManager.Type.Default, subCommands);
|
||||
|
||||
subCommands = new ArrayList<>();
|
||||
subCommands.add(new me.goodandevil.skyblock.command.commands.admin.LevelCommand(plugin).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Level.Info.Message"))));
|
||||
subCommands.add(new me.goodandevil.skyblock.command.commands.admin.SetSpawnCommand(plugin).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.SetSpawn.Info.Message"))));
|
||||
subCommands.add(new StructureCommand(plugin).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Structure.Info.Message"))));
|
||||
subCommands.add(new me.goodandevil.skyblock.command.commands.admin.CreateCommand(plugin).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Create.Info.Message"))));
|
||||
subCommands.add(new GeneratorCommand(plugin).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Generator.Info.Message"))));
|
||||
subCommands.add(new me.goodandevil.skyblock.command.commands.admin.LevelCommand(plugin).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Level.Info.Message"))));
|
||||
subCommands.add(new me.goodandevil.skyblock.command.commands.admin.SettingsCommand(plugin).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Settings.Info.Message"))));
|
||||
subCommands.add(new StructureCommand(plugin).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Structure.Info.Message"))));
|
||||
subCommands.add(new DeleteCommand(plugin).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Delete.Info.Message"))));
|
||||
subCommands.add(new OwnerCommand(plugin).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Owner.Info.Message"))));
|
||||
subCommands.add(new ReloadCommand(plugin).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Reload.Info.Message"))));
|
||||
|
@ -0,0 +1,71 @@
|
||||
package me.goodandevil.skyblock.command.commands.admin;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import me.goodandevil.skyblock.Main;
|
||||
import me.goodandevil.skyblock.command.CommandManager;
|
||||
import me.goodandevil.skyblock.command.SubCommand;
|
||||
import me.goodandevil.skyblock.command.CommandManager.Type;
|
||||
import me.goodandevil.skyblock.config.FileManager;
|
||||
import me.goodandevil.skyblock.config.FileManager.Config;
|
||||
import me.goodandevil.skyblock.menus.admin.Settings;
|
||||
import me.goodandevil.skyblock.sound.SoundManager;
|
||||
import me.goodandevil.skyblock.utils.version.Sounds;
|
||||
|
||||
public class SettingsCommand extends SubCommand {
|
||||
|
||||
private final Main plugin;
|
||||
private String info;
|
||||
|
||||
public SettingsCommand(Main plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCommand(Player player, String[] args) {
|
||||
SoundManager soundManager = plugin.getSoundManager();
|
||||
FileManager fileManager = plugin.getFileManager();
|
||||
|
||||
Config config = fileManager.getConfig(new File(plugin.getDataFolder(), "language.yml"));
|
||||
FileConfiguration configLoad = config.getFileConfiguration();
|
||||
|
||||
if (player.hasPermission("skyblock.admin.settings") || player.hasPermission("skyblock.admin.*") || player.hasPermission("skyblock.*")) {
|
||||
Settings.getInstance().open(player, Settings.Type.Categories, null);
|
||||
soundManager.playSound(player, Sounds.CHEST_OPEN.bukkitSound(), 1.0F, 1.0F);
|
||||
} else {
|
||||
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Settings.Permission.Message")));
|
||||
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "settings";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInfo() {
|
||||
return info;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SubCommand setInfo(String info) {
|
||||
this.info = info;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getAliases() {
|
||||
return new String[] { "permissions", "perms", "p" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
}
|
||||
}
|
291
src/me/goodandevil/skyblock/menus/admin/Settings.java
Normal file
291
src/me/goodandevil/skyblock/menus/admin/Settings.java
Normal file
@ -0,0 +1,291 @@
|
||||
package me.goodandevil.skyblock.menus.admin;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import me.goodandevil.skyblock.Main;
|
||||
import me.goodandevil.skyblock.config.FileManager;
|
||||
import me.goodandevil.skyblock.config.FileManager.Config;
|
||||
import me.goodandevil.skyblock.island.Island;
|
||||
import me.goodandevil.skyblock.sound.SoundManager;
|
||||
import me.goodandevil.skyblock.utils.item.InventoryUtil;
|
||||
import me.goodandevil.skyblock.utils.version.Materials;
|
||||
import me.goodandevil.skyblock.utils.version.Sounds;
|
||||
|
||||
public class Settings implements Listener {
|
||||
|
||||
private static Settings instance;
|
||||
|
||||
public static Settings getInstance(){
|
||||
if(instance == null) {
|
||||
instance = new Settings();
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void open(Player player, Settings.Type menuType, me.goodandevil.skyblock.island.Settings.Role role) {
|
||||
Main plugin = Main.getInstance();
|
||||
|
||||
Island island = plugin.getIslandManager().getIsland(plugin.getPlayerDataManager().getPlayerData(player).getOwner());
|
||||
InventoryUtil inv = null;
|
||||
|
||||
Config mainConfig = plugin.getFileManager().getConfig(new File(plugin.getDataFolder(), "config.yml"));
|
||||
Config languageConfig = plugin.getFileManager().getConfig(new File(plugin.getDataFolder(), "language.yml"));
|
||||
FileConfiguration configLoad = languageConfig.getFileConfiguration();
|
||||
|
||||
if (menuType == Settings.Type.Categories) {
|
||||
inv = new InventoryUtil(configLoad.getString("Menu.Admin.Settings.Categories.Title"), null, 1);
|
||||
inv.addItem(inv.createItem(Materials.OAK_FENCE_GATE.parseItem(), configLoad.getString("Menu.Admin.Settings.Categories.Item.Exit.Displayname"), null, null, null, null), 0, 8);
|
||||
inv.addItem(inv.createItem(new ItemStack(Material.SIGN), configLoad.getString("Menu.Admin.Settings.Categories.Item.Visitor.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Visitor.Lore"), null, null, null), 2);
|
||||
inv.addItem(inv.createItem(new ItemStack(Material.PAINTING), configLoad.getString("Menu.Admin.Settings.Categories.Item.Member.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Member.Lore"), null, null, null), 3);
|
||||
inv.addItem(inv.createItem(new ItemStack(Material.ITEM_FRAME), configLoad.getString("Menu.Admin.Settings.Categories.Item.Operator.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Operator.Lore"), null, null, null), 4);
|
||||
inv.addItem(inv.createItem(Materials.OAK_SAPLING.parseItem(), configLoad.getString("Menu.Admin.Settings.Categories.Item.Owner.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Owner.Lore"), null, null, null), 6);
|
||||
} else if (menuType == Settings.Type.Role) {
|
||||
if (role == me.goodandevil.skyblock.island.Settings.Role.Visitor || role == me.goodandevil.skyblock.island.Settings.Role.Member) {
|
||||
inv = new InventoryUtil(configLoad.getString("Menu.Admin.Settings." + role.name() + ".Title"), null, 6);
|
||||
inv.addItemStack(createItem(island, role, "Destroy", Material.DIAMOND_PICKAXE), 9);
|
||||
inv.addItemStack(createItem(island, role, "Place", Material.GRASS), 10);
|
||||
inv.addItemStack(createItem(island, role, "Anvil", Material.ANVIL), 11);
|
||||
inv.addItemStack(createItem(island, role, "ArmorStand", Material.ARMOR_STAND), 12);
|
||||
inv.addItemStack(createItem(island, role, "Beacon", Material.BEACON), 13);
|
||||
inv.addItemStack(createItem(island, role, "Bed", Materials.WHITE_BED.parseMaterial()), 14);
|
||||
inv.addItemStack(createItem(island, role, "AnimalBreeding", Material.WHEAT), 15);
|
||||
inv.addItemStack(createItem(island, role, "Brewing", Materials.LEGACY_BREWING_STAND.getPostMaterial()), 16);
|
||||
inv.addItemStack(createItem(island, role, "Bucket", Material.BUCKET), 17);
|
||||
inv.addItemStack(createItem(island, role, "WaterCollection", Material.POTION), 18);
|
||||
inv.addItemStack(createItem(island, role, "Storage", Material.CHEST), 19);
|
||||
inv.addItemStack(createItem(island, role, "Workbench", Materials.CRAFTING_TABLE.parseMaterial()), 20);
|
||||
inv.addItemStack(createItem(island, role, "Crop", Materials.WHEAT_SEEDS.parseMaterial()), 21);
|
||||
inv.addItemStack(createItem(island, role, "Door", Materials.OAK_DOOR.parseMaterial()), 22);
|
||||
inv.addItemStack(createItem(island, role, "Gate", Materials.OAK_FENCE_GATE.parseMaterial()), 23);
|
||||
inv.addItemStack(createItem(island, role, "Projectile", Material.ARROW), 24);
|
||||
inv.addItemStack(createItem(island, role, "Enchant", Materials.ENCHANTING_TABLE.parseMaterial()), 25);
|
||||
inv.addItemStack(createItem(island, role, "Fire", Material.FLINT_AND_STEEL), 26);
|
||||
inv.addItemStack(createItem(island, role, "Furnace", Material.FURNACE), 27);
|
||||
inv.addItemStack(createItem(island, role, "HorseInventory", Materials.CHEST_MINECART.parseMaterial()), 28);
|
||||
inv.addItemStack(createItem(island, role, "MobRiding", Material.SADDLE), 29);
|
||||
inv.addItemStack(createItem(island, role, "MobHurting", Materials.WOODEN_SWORD.parseMaterial()), 30);
|
||||
inv.addItemStack(createItem(island, role, "MobTaming", Materials.POPPY.parseMaterial()), 31);
|
||||
inv.addItemStack(createItem(island, role, "Leash", Materials.LEAD.parseMaterial()), 32);
|
||||
inv.addItemStack(createItem(island, role, "LeverButton", Material.LEVER), 33);
|
||||
inv.addItemStack(createItem(island, role, "Milking", Material.MILK_BUCKET), 34);
|
||||
inv.addItemStack(createItem(island, role, "Jukebox", Material.JUKEBOX), 35);
|
||||
inv.addItemStack(createItem(island, role, "PressurePlate", Materials.OAK_PRESSURE_PLATE.parseMaterial()), 37);
|
||||
inv.addItemStack(createItem(island, role, "Redstone", Material.REDSTONE), 38);
|
||||
inv.addItemStack(createItem(island, role, "Shearing", Material.SHEARS), 39);
|
||||
inv.addItemStack(createItem(island, role, "Trading", Material.EMERALD), 40);
|
||||
inv.addItemStack(createItem(island, role, "ItemDrop", Material.PUMPKIN_SEEDS), 41);
|
||||
inv.addItemStack(createItem(island, role, "ItemPickup", Material.MELON_SEEDS), 42);
|
||||
inv.addItemStack(createItem(island, role, "Fishing", Material.FISHING_ROD), 43);
|
||||
inv.addItemStack(createItem(island, role, "DropperDispenser", Material.DISPENSER), 46);
|
||||
inv.addItemStack(createItem(island, role, "SpawnEgg", Material.EGG), 47);
|
||||
inv.addItemStack(createItem(island, role, "Cake", Material.CAKE), 48);
|
||||
inv.addItemStack(createItem(island, role, "DragonEggUse", Material.DRAGON_EGG), 49);
|
||||
inv.addItemStack(createItem(island, role, "MinecartBoat", Material.MINECART), 50);
|
||||
inv.addItemStack(createItem(island, role, "Portal", Material.ENDER_PEARL), 51);
|
||||
inv.addItemStack(createItem(island, role, "Hopper", Material.HOPPER), 52);
|
||||
} else if (role == me.goodandevil.skyblock.island.Settings.Role.Operator) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Visitor.Banning")) {
|
||||
inv = new InventoryUtil(configLoad.getString("Menu.Admin.Settings." + role.name() + ".Title"), null, 3);
|
||||
inv.addItemStack(createItem(island, role, "Invite", Materials.WRITABLE_BOOK.parseMaterial()), 10);
|
||||
inv.addItemStack(createItem(island, role, "Kick", Material.IRON_DOOR), 11);
|
||||
inv.addItemStack(createItem(island, role, "Ban", Material.IRON_AXE), 12);
|
||||
inv.addItemStack(createItem(island, role, "Unban", Material.NAME_TAG), 13);
|
||||
inv.addItemStack(createItem(island, role, "Visitor", Material.SIGN), 14);
|
||||
inv.addItemStack(createItem(island, role, "Member", Material.PAINTING), 15);
|
||||
inv.addItemStack(createItem(island, role, "Island", Materials.OAK_SAPLING.parseMaterial()), 16);
|
||||
inv.addItemStack(createItem(island, role, "MainSpawn", Material.EMERALD), 20);
|
||||
inv.addItemStack(createItem(island, role, "VisitorSpawn", Material.NETHER_STAR), 21);
|
||||
inv.addItemStack(createItem(island, role, "Biome", Material.MAP), 23);
|
||||
inv.addItemStack(createItem(island, role, "Weather", Materials.CLOCK.parseMaterial()), 24);
|
||||
} else {
|
||||
inv = new InventoryUtil(configLoad.getString("Menu.Admin.Settings." + role.name() + ".Title"), null, 2);
|
||||
inv.addItemStack(createItem(island, role, "Invite", Materials.WRITABLE_BOOK.parseMaterial()), 9);
|
||||
inv.addItemStack(createItem(island, role, "Kick", Material.IRON_DOOR), 10);
|
||||
inv.addItemStack(createItem(island, role, "Visitor", Material.SIGN), 11);
|
||||
inv.addItemStack(createItem(island, role, "Member", Material.PAINTING), 12);
|
||||
inv.addItemStack(createItem(island, role, "Island", Materials.OAK_SAPLING.parseMaterial()), 13);
|
||||
inv.addItemStack(createItem(island, role, "MainSpawn", Material.EMERALD), 14);
|
||||
inv.addItemStack(createItem(island, role, "VisitorSpawn", Material.NETHER_STAR), 15);
|
||||
inv.addItemStack(createItem(island, role, "Biome", Material.MAP), 16);
|
||||
inv.addItemStack(createItem(island, role, "Weather", Materials.CLOCK.parseMaterial()), 17);
|
||||
}
|
||||
} else if (role == me.goodandevil.skyblock.island.Settings.Role.Owner) {
|
||||
inv = new InventoryUtil(configLoad.getString("Menu.Admin.Settings." + role.name() + ".Title"), null, 2);
|
||||
inv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseMaterial()), 10);
|
||||
inv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseMaterial()), 11);
|
||||
inv.addItemStack(createItem(island, role, "PvP", Material.DIAMOND_SWORD), 12);
|
||||
inv.addItemStack(createItem(island, role, "Explosions", Materials.GUNPOWDER.parseMaterial()), 13);
|
||||
inv.addItemStack(createItem(island, role, "FireSpread", Material.FLINT_AND_STEEL), 14);
|
||||
inv.addItemStack(createItem(island, role, "LeafDecay", Materials.OAK_LEAVES.parseMaterial()), 15);
|
||||
inv.addItemStack(createItem(island, role, "KeepItemsOnDeath", Material.ITEM_FRAME), 16);
|
||||
}
|
||||
|
||||
inv.addItem(inv.createItem(Materials.OAK_FENCE_GATE.parseItem(), configLoad.getString("Menu.Admin.Settings." + role.name() + ".Item.Return.Displayname"), null, null, null, null), 0, 8);
|
||||
}
|
||||
|
||||
player.openInventory(inv.getInventory());
|
||||
}
|
||||
|
||||
private ItemStack createItem(Island island, me.goodandevil.skyblock.island.Settings.Role role, String setting, Material material) {
|
||||
Main plugin = Main.getInstance();
|
||||
|
||||
FileManager fileManager = plugin.getFileManager();
|
||||
|
||||
Config config = fileManager.getConfig(new File(plugin.getDataFolder(), "language.yml"));
|
||||
FileConfiguration configLoad = config.getFileConfiguration();
|
||||
|
||||
List<String> itemLore = new ArrayList<>();
|
||||
|
||||
ItemStack is = new ItemStack(material);
|
||||
ItemMeta im = is.getItemMeta();
|
||||
|
||||
String roleName = role.name();
|
||||
|
||||
if (role == me.goodandevil.skyblock.island.Settings.Role.Visitor || role == me.goodandevil.skyblock.island.Settings.Role.Member) {
|
||||
roleName = "Default";
|
||||
}
|
||||
|
||||
im.setDisplayName(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings." + roleName + ".Item.Setting." + setting + ".Displayname")));
|
||||
|
||||
if (fileManager.getConfig(new File(plugin.getDataFolder(), "settings.yml")).getFileConfiguration().getBoolean(role.name() + "." + setting)) {
|
||||
for (String itemLoreList : configLoad.getStringList("Menu.Admin.Settings." + roleName + ".Item.Setting.Status.Enabled.Lore")) {
|
||||
itemLore.add(ChatColor.translateAlternateColorCodes('&', itemLoreList));
|
||||
}
|
||||
} else {
|
||||
for (String itemLoreList : configLoad.getStringList("Menu.Admin.Settings." + roleName + ".Item.Setting.Status.Disabled.Lore")) {
|
||||
itemLore.add(ChatColor.translateAlternateColorCodes('&', itemLoreList));
|
||||
}
|
||||
}
|
||||
|
||||
im.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
|
||||
im.setLore(itemLore);
|
||||
is.setItemMeta(im);
|
||||
|
||||
return is;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClick(InventoryClickEvent event) {
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
ItemStack is = event.getCurrentItem();
|
||||
|
||||
if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR) {
|
||||
Main plugin = Main.getInstance();
|
||||
|
||||
SoundManager soundManager = plugin.getSoundManager();
|
||||
FileManager fileManager = plugin.getFileManager();
|
||||
|
||||
Config config = fileManager.getConfig(new File(plugin.getDataFolder(), "language.yml"));
|
||||
FileConfiguration configLoad = config.getFileConfiguration();
|
||||
|
||||
if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Visitor.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Member.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Operator.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Owner.Title")))) {
|
||||
event.setCancelled(true);
|
||||
|
||||
if (!(player.hasPermission("skyblock.admin.settings") || player.hasPermission("skyblock.admin.*") || player.hasPermission("skyblock.*"))) {
|
||||
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Settings.Permission.Message")));
|
||||
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Title")))) {
|
||||
if ((event.getCurrentItem().getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Item.Exit.Displayname"))))) {
|
||||
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
|
||||
player.closeInventory();
|
||||
} else if ((is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Item.Visitor.Displayname"))))) {
|
||||
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Visitor);
|
||||
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
|
||||
} else if ((event.getCurrentItem().getType() == Material.PAINTING) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Item.Member.Displayname"))))) {
|
||||
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Member);
|
||||
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
|
||||
} else if ((event.getCurrentItem().getType() == Material.ITEM_FRAME) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Item.Operator.Displayname"))))) {
|
||||
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Operator);
|
||||
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
|
||||
} else if ((event.getCurrentItem().getType() == Materials.OAK_SAPLING.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Item.Owner.Displayname"))))) {
|
||||
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Owner);
|
||||
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
|
||||
}
|
||||
} else if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Visitor.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Member.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Operator.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Owner.Title")))) {
|
||||
if ((event.getCurrentItem().getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Visitor.Item.Return.Displayname"))) || is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Member.Item.Return.Displayname"))) || is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Operator.Item.Return.Displayname"))) || is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Owner.Item.Return.Displayname"))))) {
|
||||
open(player, Settings.Type.Categories, null);
|
||||
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
|
||||
} else if (is.hasItemMeta()) {
|
||||
me.goodandevil.skyblock.island.Settings.Role role = null;
|
||||
String roleName = null, rolePermissionName = null;
|
||||
|
||||
if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Visitor.Title")))) {
|
||||
role = me.goodandevil.skyblock.island.Settings.Role.Visitor;
|
||||
roleName = "Visitor";
|
||||
rolePermissionName = "Default";
|
||||
} else if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Member.Title")))) {
|
||||
role = me.goodandevil.skyblock.island.Settings.Role.Member;
|
||||
roleName = "Member";
|
||||
rolePermissionName = "Default";
|
||||
} else if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Operator.Title")))) {
|
||||
role = me.goodandevil.skyblock.island.Settings.Role.Operator;
|
||||
roleName = role.name();
|
||||
rolePermissionName = role.name();
|
||||
} else if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Owner.Title")))) {
|
||||
role = me.goodandevil.skyblock.island.Settings.Role.Owner;
|
||||
roleName = role.name();
|
||||
rolePermissionName = role.name();
|
||||
}
|
||||
|
||||
FileConfiguration settingsConfigLoad = plugin.getFileManager().getConfig(new File(plugin.getDataFolder(), "settings.yml")).getFileConfiguration();
|
||||
|
||||
for (String settingList : settingsConfigLoad.getConfigurationSection(roleName).getKeys(false)) {
|
||||
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings." + rolePermissionName + ".Item.Setting." + settingList + ".Displayname")))) {
|
||||
if (settingsConfigLoad.getBoolean(roleName + "." + settingList)) {
|
||||
settingsConfigLoad.set(roleName + "." + settingList, false);
|
||||
} else {
|
||||
settingsConfigLoad.set(roleName + "." + settingList, true);
|
||||
}
|
||||
|
||||
Bukkit.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
Config config = plugin.getFileManager().getConfig(new File(plugin.getDataFolder(), "settings.yml"));
|
||||
config.getFileConfiguration().save(config.getFile());
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
|
||||
open(player, Settings.Type.Role, role);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum Type {
|
||||
|
||||
Categories,
|
||||
Panel,
|
||||
Role;
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user