# Added the 'Island Upgrade' menu to upgrade perks on your Island (Requires Vault Economy).
# Added the command '/island upgrade' to open the 'Island Upgrade' menu.
# Added the 'Upgrade Editor' menu to manage upgrades for islands.
# Added the command '/island admin upgrade' to open the 'Upgrade Editor' menu.
# Added the permission node 'skyblock.admin.upgrade' to open the 'Upgrade Editor' menu.
# Fixed CPE when opening an inventory on a seperate thread.
# Fixed Chunk error when setting the biome of the Island.
# Setting data now has its own file rather than being in the same file as the island data.
# Replaced the default structure file with an actual island.
# Recoded the Setting System.
This commit is contained in:
Unknown 2018-11-29 17:18:26 +00:00
parent 51ddb7d851
commit 427e2e8b49
57 changed files with 2921 additions and 325 deletions

View File

@ -21,6 +21,13 @@ Command:
Message: "&f&oOpens the Island Control Panel menu."
Owner:
Message: "&bSkyBlock &8| &cError&8: &eYou are not an Island owner."
Upgrade:
Info:
Message: "&f&oOpens the Island Upgrade menu."
Owner:
Message: "&bSkyBlock &8| &cError&8: &eYou are not an Island owner."
Disabled:
Message: "&bSkyBlock &8| &cError&8: &eYou cannot do that because Island Upgrades have been disabled."
Leaderboard:
Info:
Message: "&f&oOpens the Leaderboard menu of the top 10 Islands."
@ -574,6 +581,13 @@ Command:
Message: "&f&oManage Structures for the Island Creator menu."
Permission:
Message: "&bSkyBlock &8| &cError&8: &eYou don't have permission to perform that command."
Upgrade:
Info:
Message: "&f&oManager Upgrades for the Island Upgrade menu."
Permission:
Message: "&bSkyBlock &8| &cError&8: &eYou don't have permission to perform that command."
Disabled:
Message: "&bSkyBlock &8| &cError&8: &eYou cannot peform that command because upgrades have been disabled."
Generator:
Info:
Message: "&f&oManager generators for coddlestone generators."
@ -702,6 +716,19 @@ Island:
Minute: "minute(s)"
Second: "second(s)"
Message: "&bSkyBlock &8| &cError&8: &eYou must wait &c&o%time &ebefore creating an Island."
Upgrade:
Disabled:
Message: "&bSkyBlock &8| &cError&8: &eYou cannot do that because Island Upgrades have been disabled."
Owner:
Message: "&bSkyBlock &8| &cError&8: &eYou are not an Island owner."
Exist:
Message: "&bSkyBlock &8| &cError&8: &eThat upgrade does not exist."
Money:
Message: "&bSkyBlock &8| &cError&8: &eYou don't have enough money for that upgrade."
Bought:
Message: "&bSkyBlock &8| &aInfo&8: &eYou have bought the upgrade '%upgrade&e'."
Claimed:
Message: "&bSkyBlock &8| &cError&8: &eYou have already claimed that upgrade."
Biome:
Cooldown:
Word:
@ -810,6 +837,20 @@ Island:
Message: "&bSkyBlock &8| &aInfo&8: &eYou have created a structure with the name '&d%structure&e'."
Removed:
Message: "&bSkyBlock &8| &aInfo&8: &eYou have removed the structure with the name '&d%structure&e'."
Upgrade:
Permission:
Message: "&bSkyBlock &8| &cError&8: &eYou don't have permission to do that."
Numerical:
Message: "&bSkyBlock &8| &cError&8: &eYou must enter a numerical value."
Tier:
Exist:
Message: "&bSkyBlock &8| &cError&8: &eA tier for that upgrade already exists."
Limit:
Message: "&bSkyBlock &8| &cError&8: &eYou have reached the limit of tiers for this upgrade."
Selected:
Message: "&bSkyBlock &8| &cError&8: &eYou cannot do that because the selected tier has been removed."
Size:
Message: "&bSkyBlock &8| &cError&8: &eThe size of the tier must be less than 1000."
Generator:
Permission:
Message: "&bSkyBlock &8| &cError&8: &eYou don't have permission to do that."
@ -1090,6 +1131,257 @@ Menu:
- " &7been visiting for."
- ""
- "&eClick to view Island visitors!"
Upgrade:
Title: "&8Island Upgrade"
Item:
Word:
Enable: "Enable"
Disable: "Disable"
Speed:
Displayname: "&bSpeed Boost"
Claimable:
Lore:
- "&7Gives speed 2 to players at"
- "&7your Island."
- ""
- "&7Speed&8: &fII"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &6&lCLAIMABLE"
- ""
- "&eClick to unlock this upgrade!"
Unclaimable:
Lore:
- "&7Gives speed 2 to players at"
- "&7your Island."
- ""
- "&7Speed&8: &fII"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &c&lLOCKED"
- ""
- "&cYou don't have enough money!"
Claimed:
Lore:
- "&7Gives speed 2 to players at"
- "&7your Island."
- ""
- "&7Speed&8: &fII"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &a&lCLAIMED"
- ""
- "&eClick to %status upgrade!"
Jump:
Displayname: "&bJump Boost"
Claimable:
Lore:
- "&7Gives jump boost 2 to players"
- "&7at your Island."
- ""
- "&7Jump Boost&8: &fII"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &6&lCLAIMABLE"
- ""
- "&eClick to unlock this upgrade!"
Unclaimable:
Lore:
- "&7Gives jump boost 2 to players"
- "&7at your Island."
- ""
- "&7Jump Boost&8: &fII"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &c&lLOCKED"
- ""
- "&cYou don't have enough money!"
Claimed:
Lore:
- "&7Gives jump boost 2 to players"
- "&7at your Island."
- ""
- "&7Jump Boost&8: &fII"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &a&lCLAIMED"
- ""
- "&eClick to %status upgrade!"
Crop:
Displayname: "&bCrop Growth"
Claimable:
Lore:
- "&7Increases crop growth two times"
- "&7the speed at your Island."
- ""
- "&7Growth&8: &f2x"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &6&lCLAIMABLE"
- ""
- "&eClick to unlock this upgrade!"
Unclaimable:
Lore:
- "&7Increases crop growth two times"
- "&7the speed at your Island."
- ""
- "&7Growth&8: &f2x"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &c&lLOCKED"
- ""
- "&cYou don't have enough money!"
Claimed:
Lore:
- "&7Increases crop growth two times"
- "&7the speed at your Island."
- ""
- "&7Growth&8: &f2x"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &a&lCLAIMED"
- ""
- "&eClick to %status upgrade!"
Fly:
Displayname: "&bFlight"
Claimable:
Lore:
- "&7Ability for players to fly at"
- "&7your Island."
- ""
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &6&lCLAIMABLE"
- ""
- "&eClick to unlock this upgrade!"
Unclaimable:
Lore:
- "&7Ability for players to fly at"
- "&7your Island."
- ""
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &c&lLOCKED"
- ""
- "&cYou don't have enough money!"
Claimed:
Lore:
- "&7Ability for players to fly at"
- "&7your Island."
- ""
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &a&lCLAIMED"
- ""
- "&eClick to %status upgrade!"
Drops:
Displayname: "&bLoot Drops"
Claimable:
Lore:
- "&7Increases loot drops two times"
- "&7the speed at your Island."
- ""
- "&7Drops&8: &f2x"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &6&lCLAIMABLE"
- ""
- "&eClick to unlock this upgrade!"
Unclaimable:
Lore:
- "&7Increases loot drops two times"
- "&7the speed at your Island."
- ""
- "&7Drops&8: &f2x"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &c&lLOCKED"
- ""
- "&cYou don't have enough money!"
Claimed:
Lore:
- "&7Increases loot drops two times"
- "&7the speed at your Island."
- ""
- "&7Drops&8: &f2x"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &a&lCLAIMED"
- ""
- "&eClick to %status upgrade!"
Size:
Displayname: "&bBorder Size [Tier #%tier]"
Claimable:
Lore:
- "&7Increases the border size"
- "&7of your Island."
- ""
- "&7Border&8: &f%sizex%size"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &6&lCLAIMABLE"
- ""
- "&eClick to unlock this upgrade!"
Unclaimable:
Lore:
- "&7Increases the border size"
- "&7of your Island."
- ""
- "&7Border&8: &f%sizex%size"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &c&lLOCKED"
- ""
- "&cYou don't have enough money!"
Claimed:
Lore:
- "&7Increases the border size of"
- "&7your Island."
- ""
- "&7Border&8: &f%sizex%size"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &a&lCLAIMED"
- ""
- "&cYou have unlocked ths upgrade!"
Spawner:
Displayname: "&bSpawer Boost"
Claimable:
Lore:
- "&7Increases spawner spawn speed"
- "&7two times the speed at your"
- "&7Island."
- ""
- "&7Speed&8: &f2x"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &6&lCLAIMABLE"
- ""
- "&eClick to unlock this upgrade!"
Unclaimable:
Lore:
- "&7Increases spawner spawn speed"
- "&7two times the speed at your"
- "&7Island."
- ""
- "&7Speed&8: &f2x"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &c&lLOCKED"
- ""
- "&cYou don't have enough money!"
Claimed:
Lore:
- "&7Increases spawner spawn speed"
- "&7two times the speed at your"
- "&7Island."
- ""
- "&7Speed&8: &f2x"
- "&7Cost&8: &f$%cost"
- ""
- "&7Status&8: &a&lCLAIMED"
- ""
- "&eClick to %status upgrade!"
Leaderboard:
Browse:
Title: "&8Select a Leaderboard"
@ -2167,6 +2459,115 @@ Menu:
- "&7cancel."
- ""
- "&eClick to set item!"
Upgrade:
Upgrades:
Title: "&8Upgrade Editor"
Item:
Word:
Enable: "Enable"
Disable: "Disable"
Enter: "Enter cost"
Exit:
Displayname: "&cExit Upgrade Editor"
Speed:
Displayname: "&aSpeed Boost"
Lore:
- "&7Gives players speed 2 while"
- "&7on the Island."
- ""
- "&7Cost&8: &f$%cost"
- ""
- "&eLeft-Click to %status!"
- "&eRight-Clcik to set cost!"
Crop:
Displayname: "&aCrop Growth"
Lore:
- "&7Increases an Island crop"
- "&7growth two times the speed."
- ""
- "&7Cost&8: &f$%cost"
- ""
- "&eLeft-Click to %status!"
- "&eRight-Clcik to set cost!"
Jump:
Displayname: "&aJump Boost"
Lore:
- "&7Gives players jump boost 2"
- "&7while on the Island."
- ""
- "&7Cost&8: &f$%cost"
- ""
- "&eLeft-Click to %status!"
- "&eRight-Clcik to set cost!"
Fly:
Displayname: "&aFlight"
Lore:
- "&7Ability to fly while on"
- "&7the Island."
- ""
- "&7Cost&8: &f$%cost"
- ""
- "&eLeft-Click to %status!"
- "&eRight-Clcik to set cost!"
Drops:
Displayname: "&aLoot Drops"
Lore:
- "&7Increases mob loot drops"
- "&7two times on the Island."
- ""
- "&7Cost&8: &f$%cost"
- ""
- "&eLeft-Click to %status!"
- "&eRight-Clcik to set cost!"
Size:
Displayname: "&aBorder Size"
Lore:
- "&7Increases the size of"
- "&7the Island border."
- ""
- "&7Tiers&8: &f%tiers"
- ""
- "&eClick to manage tiers!"
Spawner:
Displayname: "&aSpawner Boost"
Lore:
- "&7Increases spawner spawn"
- "&7speed two times on the"
- "&7Island."
- ""
- "&7Cost&8: &f$%cost"
- ""
- "&eLeft-Click to %status!"
- "&eRight-Clcik to set cost!"
Size:
Title: "&8Upgrade Editor - Size"
Item:
Word:
Size:
Enter: "Enter Size"
Cost:
Enter: "Enter Cost"
Return:
Displayname: "&cReturn to Upgrade Editor"
Barrier:
Displayname: "&cSize Tiers"
Information:
Displayname: "&aInformation"
Lore:
- "&7Create tiers and decide their"
- "&7cost and what upgrade Islands"
- "&7receive from them."
- ""
- "&eClick to create a tier!"
Tier:
Displayname: "&bTier #%tier"
Lore:
- "&7Size&8: &f%size"
- "&7Cost&8: &f$%cost"
- ""
- "&eLeft-Click to set size!"
- "&eMiddle-Click to remove!"
- "&eRight-Click to set cost!"
Generator:
Title: "&8Generator Editor"
Browse:

View File

@ -4,7 +4,7 @@ version: 31
api-version: 1.13
description: A unique SkyBlock plugin
author: GoodAndEvil
softdepend: [PlaceholderAPI, MVdWPlaceholderAPI]
softdepend: [PlaceholderAPI, MVdWPlaceholderAPI, Vault]
loadbefore: [Multiverse-Core]
commands:
island:

View File

@ -1,104 +1,105 @@
Visitor:
Destroy: false
Place: false
Anvil: false
ArmorStand: false
Beacon: false
Bed: false
AnimalBreeding: false
Brewing: false
Bucket: false
WaterCollection: false
Storage: false
Workbench: false
Crop: false
Door: false
Gate: false
Projectile: false
Enchant: false
Fire: false
Furnace: false
HorseInventory: false
MobRiding: false
MobHurting: false
MobTaming: true
Leash: false
LeverButton: false
Milking: false
Jukebox: false
PressurePlate: false
Redstone: false
Shearing: false
Trading: false
ItemDrop: false
ItemPickup: false
Fishing: false
DropperDispenser: false
SpawnEgg: false
Cake: false
DragonEggUse: false
MinecartBoat: false
Portal: false
Hopper: false
Member:
Destroy: true
Place: true
Anvil: true
ArmorStand: true
Beacon: true
Bed: true
AnimalBreeding: true
Brewing: true
Bucket: true
WaterCollection: true
Storage: true
Workbench: true
Crop: true
Door: true
Gate: true
Projectile: true
Enchant: true
Fire: true
Furnace: true
HorseInventory: true
MobRiding: true
MobHurting: true
MobTaming: true
Leash: true
LeverButton: true
Milking: true
Jukebox: true
PressurePlate: true
Redstone: true
Shearing: true
Trading: true
ItemDrop: true
ItemPickup: true
Fishing: true
DropperDispenser: true
SpawnEgg: true
MinecartBoat: true
Cake: true
DragonEggUse: true
Portal: true
Hopper: true
Operator:
Invite: true
Kick: true
Ban: true
Unban: true
Visitor: true
Member: true
Island: false
MainSpawn: false
VisitorSpawn: true
Biome: true
Weather: true
Owner:
NaturalMobSpawning: true
MobGriefing: false
PvP: false
Explosions: false
FireSpread: true
LeafDecay: true
KeepItemsOnDeath: true
Settings:
Visitor:
Destroy: false
Place: false
Anvil: false
ArmorStand: false
Beacon: false
Bed: false
AnimalBreeding: false
Brewing: false
Bucket: false
WaterCollection: false
Storage: false
Workbench: false
Crop: false
Door: false
Gate: false
Projectile: false
Enchant: false
Fire: false
Furnace: false
HorseInventory: false
MobRiding: false
MobHurting: false
MobTaming: true
Leash: false
LeverButton: false
Milking: false
Jukebox: false
PressurePlate: false
Redstone: false
Shearing: false
Trading: false
ItemDrop: false
ItemPickup: false
Fishing: false
DropperDispenser: false
SpawnEgg: false
Cake: false
DragonEggUse: false
MinecartBoat: false
Portal: false
Hopper: false
Member:
Destroy: true
Place: true
Anvil: true
ArmorStand: true
Beacon: true
Bed: true
AnimalBreeding: true
Brewing: true
Bucket: true
WaterCollection: true
Storage: true
Workbench: true
Crop: true
Door: true
Gate: true
Projectile: true
Enchant: true
Fire: true
Furnace: true
HorseInventory: true
MobRiding: true
MobHurting: true
MobTaming: true
Leash: true
LeverButton: true
Milking: true
Jukebox: true
PressurePlate: true
Redstone: true
Shearing: true
Trading: true
ItemDrop: true
ItemPickup: true
Fishing: true
DropperDispenser: true
SpawnEgg: true
MinecartBoat: true
Cake: true
DragonEggUse: true
Portal: true
Hopper: true
Operator:
Invite: true
Kick: true
Ban: true
Unban: true
Visitor: true
Member: true
Island: false
MainSpawn: false
VisitorSpawn: true
Biome: true
Weather: true
Owner:
NaturalMobSpawning: true
MobGriefing: false
PvP: false
Explosions: false
FireSpread: true
LeafDecay: true
KeepItemsOnDeath: true

View File

@ -12,6 +12,7 @@ import me.goodandevil.skyblock.command.CommandManager;
import me.goodandevil.skyblock.config.FileManager;
import me.goodandevil.skyblock.confirmation.ConfirmationTask;
import me.goodandevil.skyblock.creation.CreationManager;
import me.goodandevil.skyblock.economy.EconomyManager;
import me.goodandevil.skyblock.generator.GeneratorManager;
import me.goodandevil.skyblock.invite.InviteManager;
import me.goodandevil.skyblock.island.IslandManager;
@ -31,6 +32,7 @@ import me.goodandevil.skyblock.listeners.Portal;
import me.goodandevil.skyblock.listeners.Projectile;
import me.goodandevil.skyblock.listeners.Quit;
import me.goodandevil.skyblock.listeners.Respawn;
import me.goodandevil.skyblock.listeners.Spawner;
import me.goodandevil.skyblock.listeners.Teleport;
import me.goodandevil.skyblock.menus.Rollback;
import me.goodandevil.skyblock.menus.admin.Generator;
@ -41,6 +43,7 @@ import me.goodandevil.skyblock.playtime.PlaytimeTask;
import me.goodandevil.skyblock.scoreboard.ScoreboardManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.structure.StructureManager;
import me.goodandevil.skyblock.upgrade.UpgradeManager;
import me.goodandevil.skyblock.visit.VisitManager;
import me.goodandevil.skyblock.visit.VisitTask;
import me.goodandevil.skyblock.world.WorldManager;
@ -55,6 +58,7 @@ public class SkyBlock extends JavaPlugin {
private VisitManager visitManager;
private BanManager banManager;
private IslandManager islandManager;
private UpgradeManager upgradeManager;
private CreationManager creationManager;
private PlayerDataManager playerDataManager;
private ScoreboardManager scoreboardManager;
@ -68,16 +72,22 @@ public class SkyBlock extends JavaPlugin {
private PlaceholderManager placeholderManager;
private LeaderboardManager leaderboardManager;
private MessageManager messageManager;
private EconomyManager economyManager;
@Override
public void onEnable() {
instance = this;
if (!isEnable()) {
return;
}
fileManager = new FileManager(this);
worldManager = new WorldManager(this);
visitManager = new VisitManager(this);
banManager = new BanManager(this);
islandManager = new IslandManager(this);
upgradeManager = new UpgradeManager(this);
creationManager = new CreationManager(this);
playerDataManager = new PlayerDataManager(this);
@ -101,6 +111,7 @@ public class SkyBlock extends JavaPlugin {
leaderboardManager = new LeaderboardManager(this);
messageManager = new MessageManager(this);
economyManager = new EconomyManager();
new PlaytimeTask(playerDataManager, islandManager).runTaskTimerAsynchronously(this, 0L, 20L);
new VisitTask(playerDataManager).runTaskTimerAsynchronously(this, 0L, 20L);
@ -122,6 +133,7 @@ public class SkyBlock extends JavaPlugin {
pluginManager.registerEvents(new Death(this), this);
pluginManager.registerEvents(new Respawn(this), this);
pluginManager.registerEvents(new Chat(this), this);
pluginManager.registerEvents(new Spawner(this), this);
pluginManager.registerEvents(new Rollback(), this);
@ -186,6 +198,10 @@ public class SkyBlock extends JavaPlugin {
return islandManager;
}
public UpgradeManager getUpgradeManager() {
return upgradeManager;
}
public CreationManager getCreationManager() {
return creationManager;
}
@ -238,6 +254,14 @@ public class SkyBlock extends JavaPlugin {
return messageManager;
}
public EconomyManager getEconomyManager() {
return economyManager;
}
public boolean isEnable() {
return false;
}
@Override
public ChunkGenerator getDefaultWorldGenerator(String worldName, String id) {
return new VoidGenerator();

View File

@ -3,7 +3,6 @@ package me.goodandevil.skyblock.biome;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -13,17 +12,12 @@ import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.Location;
import org.bukkit.block.Biome;
import org.bukkit.block.Block;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import me.goodandevil.skyblock.utils.world.LocationUtil;
@ -48,54 +42,22 @@ public class BiomeManager {
}
}
public void setBiome(Player player, Island island, Biome biome) {
new BukkitRunnable() {
@Override
public void setBiome(Island island, Biome biome) {
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
List<Chunk> chunks = new ArrayList<>();
Location location = island.getLocation(me.goodandevil.skyblock.island.Location.World.Normal, me.goodandevil.skyblock.island.Location.Environment.Island);
for (Location locationList : LocationUtil.getLocations(new Location(location.getWorld(), location.getBlockX() - island.getRadius(), 0, location.getBlockZ() - island.getRadius()), new Location(location.getWorld(), location.getBlockX() + island.getRadius(), location.getWorld().getMaxHeight(), location.getBlockZ() + island.getRadius()))) {
Block block = locationList.getBlock();
boolean containsChunk = false;
for (Chunk chunkList : chunks) {
if (chunkList.getX() == block.getChunk().getX() && chunkList.getZ() == block.getChunk().getZ()) {
containsChunk = true;
break;
}
}
if (!containsChunk) {
chunks.add(block.getChunk());
}
}
for (Chunk chunkList : chunks) {
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(skyblock, new Runnable() {
for (Location locationList : LocationUtil.getLocations(new Location(location.getWorld(), location.getBlockX() - island.getRadius(), 0, location.getBlockZ() - island.getRadius()), new Location(location.getWorld(), location.getBlockX() + island.getRadius(), 0, location.getBlockZ() + island.getRadius()))) {
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(skyblock, new Runnable() {
@Override
public void run() {
location.getWorld().setBiome(chunkList.getX(), chunkList.getZ(), biome);
location.getWorld().setBiome(locationList.getBlockX(), locationList.getBlockZ(), biome);
}
});
});
}
if (player != null) {
PlayerDataManager playerDataManager = skyblock.getPlayerDataManager();
IslandManager islandManager = skyblock.getIslandManager();
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
if (playerData.getOwner() != null) {
Island island = islandManager.getIsland(playerData.getOwner());
updateBiome(island, chunks);
}
}
}
}
}.runTaskAsynchronously(skyblock);
}
});
}
public void updateBiome(Island island, List<Chunk> chunks) {

View File

@ -47,6 +47,7 @@ import me.goodandevil.skyblock.command.commands.SetSpawnCommand;
import me.goodandevil.skyblock.command.commands.SettingsCommand;
import me.goodandevil.skyblock.command.commands.TeleportCommand;
import me.goodandevil.skyblock.command.commands.UnbanCommand;
import me.goodandevil.skyblock.command.commands.UpgradeCommand;
import me.goodandevil.skyblock.command.commands.VisitCommand;
import me.goodandevil.skyblock.command.commands.VisitorsCommand;
import me.goodandevil.skyblock.command.commands.VoteCommand;
@ -89,6 +90,7 @@ public class CommandManager implements CommandExecutor, TabCompleter {
subCommands.add(new VisitCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Visit.Info.Message"))));
subCommands.add(new VoteCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Vote.Info.Message"))));
subCommands.add(new ControlPanelCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.ControlPanel.Info.Message"))));
subCommands.add(new UpgradeCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Upgrade.Info.Message"))));
subCommands.add(new LeaderboardCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Leaderboard.Info.Message"))));
subCommands.add(new CreateCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Create.Info.Message"))));
subCommands.add(new DeleteCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Delete.Info.Message"))));
@ -128,6 +130,7 @@ public class CommandManager implements CommandExecutor, TabCompleter {
subCommands.add(new me.goodandevil.skyblock.command.commands.admin.SetSpawnCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.SetSpawn.Info.Message"))));
subCommands.add(new SetSizeCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.SetSize.Info.Message"))));
subCommands.add(new me.goodandevil.skyblock.command.commands.admin.CreateCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Create.Info.Message"))));
subCommands.add(new me.goodandevil.skyblock.command.commands.admin.UpgradeCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Upgrade.Info.Message"))));
subCommands.add(new GeneratorCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Generator.Info.Message"))));
subCommands.add(new me.goodandevil.skyblock.command.commands.admin.LevelCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Level.Info.Message"))));
subCommands.add(new me.goodandevil.skyblock.command.commands.admin.SettingsCommand(skyblock).setInfo(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Command.Island.Admin.Settings.Info.Message"))));

View File

@ -13,7 +13,7 @@ import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.Location;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
@ -53,7 +53,7 @@ public class BanCommand extends SubCommand {
if (fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Visitor.Banning")) {
me.goodandevil.skyblock.island.Island island = islandManager.getIsland(playerData.getOwner());
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Ban").getStatus())) {
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Ban").getStatus())) {
UUID targetPlayerUUID = null;
String targetPlayerName = null;

View File

@ -12,7 +12,7 @@ import me.goodandevil.skyblock.command.CommandManager.Type;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.menus.Bans;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.sound.SoundManager;
@ -39,7 +39,7 @@ public class BansCommand extends SubCommand {
if (islandManager.hasIsland(player)) {
me.goodandevil.skyblock.island.Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
if ((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Unban").getStatus()) || island.isRole(Role.Owner, player.getUniqueId())) {
if ((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Unban").getStatus()) || island.isRole(Role.Owner, player.getUniqueId())) {
if (island.getBan().getBans().size() == 0) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Bans.Bans.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);

View File

@ -12,7 +12,7 @@ import me.goodandevil.skyblock.command.CommandManager.Type;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.version.Sounds;
@ -38,7 +38,7 @@ public class BiomeCommand extends SubCommand {
if (islandManager.hasIsland(player)) {
me.goodandevil.skyblock.island.Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
if ((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Biome").getStatus()) || island.isRole(Role.Owner, player.getUniqueId())) {
if ((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Biome").getStatus()) || island.isRole(Role.Owner, player.getUniqueId())) {
me.goodandevil.skyblock.menus.Biome.getInstance().open(player);
soundManager.playSound(player, Sounds.CHEST_OPEN.bukkitSound(), 1.0F, 1.0F);
} else {

View File

@ -12,7 +12,7 @@ import me.goodandevil.skyblock.command.CommandManager.Type;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.version.Sounds;
@ -38,7 +38,7 @@ public class CloseCommand extends SubCommand {
if (islandManager.hasIsland(player)) {
me.goodandevil.skyblock.island.Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Visitor").getStatus())) {
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Visitor").getStatus())) {
if (island.isOpen()) {
islandManager.closeIsland(island);

View File

@ -16,7 +16,7 @@ import me.goodandevil.skyblock.events.IslandInviteEvent;
import me.goodandevil.skyblock.invite.Invite;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.ChatComponent;
@ -50,7 +50,7 @@ public class InviteCommand extends SubCommand {
if (islandManager.hasIsland(player)) {
me.goodandevil.skyblock.island.Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Invite").getStatus())) {
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Invite").getStatus())) {
Config mainConfig = fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"));
if ((island.getRole(Role.Member).size() + island.getRole(Role.Operator).size() + 1) >= mainConfig.getFileConfiguration().getInt("Island.Member.Capacity")) {

View File

@ -17,7 +17,7 @@ import me.goodandevil.skyblock.events.IslandKickEvent;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
@ -48,7 +48,7 @@ public class KickAllCommand extends SubCommand {
PlayerData playerData = playerDataManager.getPlayerData(player);
Island island = islandManager.getIsland(playerData.getOwner());
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Kick").getStatus())) {
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Kick").getStatus())) {
if (island.isOpen()) {
List<UUID> islandVisitors = island.getVisitors();

View File

@ -20,7 +20,7 @@ import me.goodandevil.skyblock.events.IslandKickEvent;
import me.goodandevil.skyblock.island.Location;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
@ -59,7 +59,7 @@ public class KickCommand extends SubCommand {
boolean isOpen = island.isOpen();
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Kick").getStatus())) {
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Kick").getStatus())) {
UUID targetPlayerUUID = null;
String targetPlayerName = null;

View File

@ -12,7 +12,7 @@ import me.goodandevil.skyblock.command.CommandManager.Type;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.version.Sounds;
@ -38,7 +38,7 @@ public class OpenCommand extends SubCommand {
if (islandManager.hasIsland(player)) {
me.goodandevil.skyblock.island.Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Visitor").getStatus())) {
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Visitor").getStatus())) {
if (island.isOpen()) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Open.Already.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);

View File

@ -12,7 +12,7 @@ import me.goodandevil.skyblock.command.CommandManager.Type;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.version.Sounds;
@ -38,7 +38,7 @@ public class PublicCommand extends SubCommand {
if (islandManager.hasIsland(player)) {
me.goodandevil.skyblock.island.Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Visitor").getStatus())) {
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Visitor").getStatus())) {
if (island.isOpen()) {
islandManager.closeIsland(island);

View File

@ -17,7 +17,7 @@ import me.goodandevil.skyblock.config.FileManager;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.version.Materials;
@ -61,7 +61,7 @@ public class SetSpawnCommand extends SubCommand {
me.goodandevil.skyblock.island.Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
if (island.isRole(Role.Operator, player.getUniqueId()) || island.isRole(Role.Owner, player.getUniqueId())) {
if ((island.isRole(Role.Operator, player.getUniqueId()) && (island.getSetting(Settings.Role.Operator, locationEnvironment.name() + "Spawn").getStatus())) || island.isRole(Role.Owner, player.getUniqueId())) {
if ((island.isRole(Role.Operator, player.getUniqueId()) && (island.getSetting(Setting.Role.Operator, locationEnvironment.name() + "Spawn").getStatus())) || island.isRole(Role.Owner, player.getUniqueId())) {
for (me.goodandevil.skyblock.island.Location.World worldList : me.goodandevil.skyblock.island.Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(player.getLocation(), island.getLocation(worldList, me.goodandevil.skyblock.island.Location.Environment.Island), island.getRadius())) {
Location location = player.getLocation();

View File

@ -12,7 +12,7 @@ import me.goodandevil.skyblock.command.CommandManager.Type;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.version.Sounds;
@ -39,7 +39,7 @@ public class SettingsCommand extends SubCommand {
me.goodandevil.skyblock.island.Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
if (island.isRole(Role.Operator, player.getUniqueId()) || island.isRole(Role.Owner, player.getUniqueId())) {
if ((island.isRole(Role.Operator, player.getUniqueId()) && (island.getSetting(Settings.Role.Operator, "Visitor").getStatus() || island.getSetting(Settings.Role.Operator, "Member").getStatus())) || island.isRole(Role.Owner, player.getUniqueId())) {
if ((island.isRole(Role.Operator, player.getUniqueId()) && (island.getSetting(Setting.Role.Operator, "Visitor").getStatus() || island.getSetting(Setting.Role.Operator, "Member").getStatus())) || island.isRole(Role.Owner, player.getUniqueId())) {
me.goodandevil.skyblock.menus.Settings.getInstance().open(player, me.goodandevil.skyblock.menus.Settings.Type.Categories, null, null);
soundManager.playSound(player, Sounds.CHEST_OPEN.bukkitSound(), 1.0F, 1.0F);
} else {
@ -47,7 +47,7 @@ public class SettingsCommand extends SubCommand {
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
}
} else {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Settings.Role.Message"));
messageManager.sendMessage(player, configLoad.getString("Command.Island.Setting.Role.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
}
} else {

View File

@ -16,7 +16,7 @@ import me.goodandevil.skyblock.config.FileManager;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
@ -51,7 +51,7 @@ public class UnbanCommand extends SubCommand {
if (fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Visitor.Banning")) {
me.goodandevil.skyblock.island.Island island = islandManager.getIsland(playerData.getOwner());
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Unban").getStatus())) {
if (island.isRole(Role.Owner, player.getUniqueId()) || (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Unban").getStatus())) {
UUID targetPlayerUUID = null;
String targetPlayerName = null;

View File

@ -0,0 +1,77 @@
package me.goodandevil.skyblock.command.commands;
import java.io.File;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import me.goodandevil.skyblock.SkyBlock;
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.Config;
import me.goodandevil.skyblock.menus.Upgrade;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.version.Sounds;
public class UpgradeCommand extends SubCommand {
private final SkyBlock skyblock;
private String info;
public UpgradeCommand(SkyBlock skyblock) {
this.skyblock = skyblock;
}
@Override
public void onCommand(Player player, String[] args) {
MessageManager messageManager = skyblock.getMessageManager();
SoundManager soundManager = skyblock.getSoundManager();
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
if (skyblock.getIslandManager().hasIsland(player)) {
if (!skyblock.getEconomyManager().isEconomy()) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Upgrade.Disabled.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
Upgrade.getInstance().open(player);
soundManager.playSound(player, Sounds.CHEST_OPEN.bukkitSound(), 1.0F, 1.0F);
} else {
skyblock.getMessageManager().sendMessage(player, configLoad.getString("Command.Island.Upgrade.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
}
}
@Override
public String getName() {
return "upgrade";
}
@Override
public String getInfo() {
return info;
}
@Override
public SubCommand setInfo(String info) {
this.info = info;
return this;
}
@Override
public String[] getAliases() {
return new String[0];
}
@Override
public Type getType() {
return CommandManager.Type.Default;
}
}

View File

@ -12,7 +12,7 @@ import me.goodandevil.skyblock.command.CommandManager.Type;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.menus.Weather;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.sound.SoundManager;
@ -39,7 +39,7 @@ public class WeatherCommand extends SubCommand {
if (islandManager.hasIsland(player)) {
me.goodandevil.skyblock.island.Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
if ((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Weather").getStatus()) || island.isRole(Role.Owner, player.getUniqueId())) {
if ((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Weather").getStatus()) || island.isRole(Role.Owner, player.getUniqueId())) {
Weather.getInstance().open(player);
soundManager.playSound(player, Sounds.CHEST_OPEN.bukkitSound(), 1.0F, 1.0F);
} else {

View File

@ -0,0 +1,80 @@
package me.goodandevil.skyblock.command.commands.admin;
import java.io.File;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import me.goodandevil.skyblock.SkyBlock;
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.Upgrade;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.version.Sounds;
public class UpgradeCommand extends SubCommand {
private final SkyBlock skyblock;
private String info;
public UpgradeCommand(SkyBlock skyblock) {
this.skyblock = skyblock;
}
@Override
public void onCommand(Player player, String[] args) {
PlayerDataManager playerDataManager = skyblock.getPlayerDataManager();
MessageManager messageManager = skyblock.getMessageManager();
SoundManager soundManager = skyblock.getSoundManager();
FileManager fileManager = skyblock.getFileManager();
Config config = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
if (!(player.hasPermission("skyblock.admin.upgrade") || player.hasPermission("skyblock.admin.*") || player.hasPermission("skyblock.*"))) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Admin.Upgrade.Permission.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
} else if (skyblock.getUpgradeManager() == null) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Admin.Upgrade.Disabled.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
} else {
if (playerDataManager.hasPlayerData(player)) {
playerDataManager.getPlayerData(player).setViewer(new Upgrade.Viewer(Upgrade.Viewer.Type.Upgrades, null));
Upgrade.getInstance().open(player);
soundManager.playSound(player, Sounds.CHEST_OPEN.bukkitSound(), 1.0F, 1.0F);
}
}
}
@Override
public String getName() {
return "upgrade";
}
@Override
public String getInfo() {
return info;
}
@Override
public SubCommand setInfo(String info) {
this.info = info;
return this;
}
@Override
public String[] getAliases() {
return new String[0];
}
@Override
public Type getType() {
return CommandManager.Type.Admin;
}
}

View File

@ -50,6 +50,7 @@ public class FileManager {
configFiles.put("config.yml", new File(skyblock.getDataFolder(), "config.yml"));
configFiles.put("language.yml", new File(skyblock.getDataFolder(), "language.yml"));
configFiles.put("settings.yml", new File(skyblock.getDataFolder(), "settings.yml"));
configFiles.put("upgrades.yml", new File(skyblock.getDataFolder(), "upgrades.yml"));
configFiles.put("generators.yml", new File(skyblock.getDataFolder(), "generators.yml"));
configFiles.put("structures.yml", new File(skyblock.getDataFolder(), "structures.yml"));
configFiles.put("structures/default.structure", new File(skyblock.getDataFolder().toString() + "/structures", "default.structure"));
@ -97,8 +98,6 @@ public class FileManager {
} catch (IOException ex) {
ex.printStackTrace();
}
skyblock.getConfig();
}
public Location getLocation(Config config, String path, boolean direction) {

View File

@ -0,0 +1,56 @@
package me.goodandevil.skyblock.economy;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.RegisteredServiceProvider;
import net.milkbowl.vault.economy.Economy;
public class EconomyManager {
private Economy economy;
public EconomyManager() {
setupVault();
}
public void setupVault() {
if (Bukkit.getServer().getPluginManager().getPlugin("Vault") != null) {
RegisteredServiceProvider<Economy> registeredServiceProvider = Bukkit.getServer().getServicesManager().getRegistration(Economy.class);
if (registeredServiceProvider != null) {
economy = registeredServiceProvider.getProvider();
}
}
}
public double getBalance(Player player) {
if (economy != null) {
return economy.getBalance(player);
}
return 0.0D;
}
public boolean hasBalance(Player player, double money) {
if (getBalance(player) >= money) {
return true;
}
return false;
}
public void withdraw(Player player, double money) {
if (economy != null) {
economy.withdrawPlayer(player, money);
}
}
public boolean isEconomy() {
if (Bukkit.getServer().getPluginManager().getPlugin("Vault") == null) {
return false;
}
return true;
}
}

View File

@ -5,7 +5,6 @@ import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -31,6 +30,7 @@ import me.goodandevil.skyblock.events.IslandPasswordChangeEvent;
import me.goodandevil.skyblock.events.IslandRoleChangeEvent;
import me.goodandevil.skyblock.events.IslandWeatherChangeEvent;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.upgrade.Upgrade;
import me.goodandevil.skyblock.utils.StringUtil;
import me.goodandevil.skyblock.visit.Visit;
import me.goodandevil.skyblock.visit.VisitManager;
@ -41,7 +41,7 @@ public class Island {
private final SkyBlock skyblock;
private List<Location> islandLocations = new ArrayList<>();
private Map<Settings.Role, Map<String, Settings>> islandSettings = new EnumMap<>(Settings.Role.class);
private Map<Setting.Role, List<Setting>> islandSettings = new HashMap<>();
private UUID ownerUUID;
private Level level;
@ -67,6 +67,8 @@ public class Island {
File configFile = new File(skyblock.getDataFolder().toString() + "/island-data");
Config config = fileManager.getConfig(new File(configFile, ownerUUID + ".yml"));
Config defaultSettingsConfig = fileManager.getConfig(new File(skyblock.getDataFolder(), "settings.yml"));
if (fileManager.isFileExist(new File(configFile, ownerUUID + ".yml"))) {
FileConfiguration configLoad = config.getFileConfiguration();
@ -74,6 +76,10 @@ public class Island {
size = configLoad.getInt("Size");
}
if (configLoad.getString("Settings") != null) {
configLoad.set("Settings", null);
}
for (Location.World worldList : Location.World.values()) {
for (Location.Environment environmentList : Location.Environment.values()) {
if (environmentList != Location.Environment.Island) {
@ -88,16 +94,24 @@ public class Island {
}
}
Config settingsConfig = fileManager.getConfig(new File(skyblock.getDataFolder(), "settings.yml"));
Config islandSettingsConfig = null;
for (Settings.Role roleList : Settings.Role.values()) {
HashMap<String, Settings> roleSettings = new HashMap<>();
if (fileManager.isFileExist(new File(skyblock.getDataFolder().toString() + "/setting-data", getOwnerUUID().toString() + ".yml"))) {
islandSettingsConfig = fileManager.getConfig(new File(skyblock.getDataFolder().toString() + "/setting-data", getOwnerUUID().toString() + ".yml"));
}
for (Setting.Role roleList : Setting.Role.values()) {
List<Setting> settings = new ArrayList<>();
for (String settingList : settingsConfig.getFileConfiguration().getConfigurationSection(WordUtils.capitalize(roleList.name().toLowerCase())).getKeys(false)) {
roleSettings.put(settingList, new Settings(configLoad.getBoolean("Settings." + roleList.name() + "." + settingList)));
for (String settingList : defaultSettingsConfig.getFileConfiguration().getConfigurationSection("Settings." + roleList.name()).getKeys(false)) {
if (islandSettingsConfig == null) {
settings.add(new Setting(settingList, defaultSettingsConfig.getFileConfiguration().getBoolean("Settings." + roleList.name() + "." + settingList)));
} else {
settings.add(new Setting(settingList, islandSettingsConfig.getFileConfiguration().getBoolean("Settings." + roleList.name() + "." + settingList)));
}
}
islandSettings.put(roleList, roleSettings);
islandSettings.put(roleList, settings);
}
} else {
islandLocations.add(new Location(Location.World.Normal, Location.Environment.Main, islandNormalLocation.clone().add(0.5D, 0.0D, 0.5D)));
@ -125,16 +139,14 @@ public class Island {
configLoad.set("Weather.Weather", mainConfigLoad.getString("Island.Weather.Default.Weather").toUpperCase());
configLoad.set("Ownership.Original", ownerUUID.toString());
Config settingsConfig = fileManager.getConfig(new File(skyblock.getDataFolder(), "settings.yml"));
for (Settings.Role roleList : Settings.Role.values()) {
HashMap<String, Settings> roleSettings = new HashMap<>();
for (Setting.Role roleList : Setting.Role.values()) {
List<Setting> settings = new ArrayList<>();
for (String settingList : settingsConfig.getFileConfiguration().getConfigurationSection(WordUtils.capitalize(roleList.name().toLowerCase())).getKeys(false)) {
roleSettings.put(settingList, new Settings(settingsConfig.getFileConfiguration().getBoolean(WordUtils.capitalize(roleList.name().toLowerCase()) + "." + settingList)));
for (String settingList : defaultSettingsConfig.getFileConfiguration().getConfigurationSection("Settings." + roleList.name()).getKeys(false)) {
settings.add(new Setting(settingList, defaultSettingsConfig.getFileConfiguration().getBoolean("Settings." + roleList.name() + "." + settingList)));
}
islandSettings.put(roleList, roleSettings);
islandSettings.put(roleList, settings);
}
save();
@ -374,19 +386,35 @@ public class Island {
return getRole(role).contains(uuid);
}
public Settings getSetting(Settings.Role role, String setting) {
public void setUpgrade(Upgrade.Type type, boolean status) {
skyblock.getFileManager().getConfig(new File(new File(skyblock.getDataFolder().toString() + "/island-data"), ownerUUID.toString() + ".yml")).getFileConfiguration().set("Upgrade." + type.name(), status);
}
public boolean hasUpgrade(Upgrade.Type type) {
if (skyblock.getFileManager().getConfig(new File(new File(skyblock.getDataFolder().toString() + "/island-data"), ownerUUID.toString() + ".yml")).getFileConfiguration().getString("Upgrade." + type.name()) == null) {
return false;
}
return true;
}
public boolean isUpgrade(Upgrade.Type type) {
return skyblock.getFileManager().getConfig(new File(new File(skyblock.getDataFolder().toString() + "/island-data"), ownerUUID.toString() + ".yml")).getFileConfiguration().getBoolean("Upgrade." + type.name());
}
public Setting getSetting(Setting.Role role, String setting) {
if (islandSettings.containsKey(role)) {
Map<String, Settings> roleSettings = islandSettings.get(role);
if (roleSettings.containsKey(setting)) {
return roleSettings.get(setting);
for (Setting settingList : islandSettings.get(role)) {
if (settingList.getName().equalsIgnoreCase(setting)) {
return settingList;
}
}
}
return null;
}
public Map<String, Settings> getSettings(Settings.Role role) {
public List<Setting> getSettings(Setting.Role role) {
if (islandSettings.containsKey(role)) {
return islandSettings.get(role);
}
@ -481,22 +509,27 @@ public class Island {
}
public void save() {
Config config = skyblock.getFileManager().getConfig(new File(new File(skyblock.getDataFolder().toString() + "/island-data"), ownerUUID.toString() + ".yml"));
File configFile = config.getFile();
FileManager fileManager = skyblock.getFileManager();
Config config = fileManager.getConfig(new File(skyblock.getDataFolder().toString() + "/island-data", ownerUUID.toString() + ".yml"));
try {
config.getFileConfiguration().save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
config = fileManager.getConfig(new File(skyblock.getDataFolder().toString() + "/setting-data", ownerUUID.toString() + ".yml"));
FileConfiguration configLoad = config.getFileConfiguration();
for (Settings.Role roleList : Settings.Role.values()) {
if (islandSettings.containsKey(roleList)) {
Map<String, Settings> roleSettings = islandSettings.get(roleList);
for (String roleSettingList : roleSettings.keySet()) {
configLoad.set("Settings." + roleList.name() + "." + roleSettingList, roleSettings.get(roleSettingList).getStatus());
}
for (Setting.Role roleList : islandSettings.keySet()) {
for (Setting settingList : islandSettings.get(roleList)) {
configLoad.set("Settings." + roleList + "." + settingList.getName(), settingList.getStatus());
}
}
try {
configLoad.save(configFile);
config.getFileConfiguration().save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}

View File

@ -10,6 +10,7 @@ import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.block.Biome;
import org.bukkit.configuration.ConfigurationSection;
@ -17,7 +18,8 @@ import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.IllegalPluginAccessException;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.ban.BanManager;
@ -37,6 +39,8 @@ import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.scoreboard.Scoreboard;
import me.goodandevil.skyblock.scoreboard.ScoreboardManager;
import me.goodandevil.skyblock.structure.Structure;
import me.goodandevil.skyblock.upgrade.Upgrade;
import me.goodandevil.skyblock.upgrade.UpgradeManager;
import me.goodandevil.skyblock.utils.OfflinePlayer;
import me.goodandevil.skyblock.utils.structure.StructureUtil;
import me.goodandevil.skyblock.utils.version.Materials;
@ -237,7 +241,7 @@ public class IslandManager {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, new Runnable() {
@Override
public void run() {
skyblock.getBiomeManager().setBiome(null, island, Biome.valueOf(fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getString("Island.Biome.Default.Type").toUpperCase()));
skyblock.getBiomeManager().setBiome(island, Biome.valueOf(fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getString("Island.Biome.Default.Type").toUpperCase()));
}
}, 20L);
}
@ -269,6 +273,13 @@ public class IslandManager {
island.setPassword(null);
}
File oldSettingDataFile = new File(new File(skyblock.getDataFolder().toString() + "/setting-data"), islandOwnerUUID.toString() + ".yml");
File newSettingDataFile = new File(new File(skyblock.getDataFolder().toString() + "/setting-data"), uuid.toString() + ".yml");
fileManager.unloadConfig(oldSettingDataFile);
fileManager.unloadConfig(newSettingDataFile);
oldSettingDataFile.renameTo(newSettingDataFile);
File oldIslandDataFile = new File(new File(skyblock.getDataFolder().toString() + "/island-data"), islandOwnerUUID.toString() + ".yml");
File newIslandDataFile = new File(new File(skyblock.getDataFolder().toString() + "/island-data"), uuid.toString() + ".yml");
@ -356,6 +367,7 @@ public class IslandManager {
}
}
fileManager.deleteConfig(new File(new File(skyblock.getDataFolder().toString() + "/setting-data"), island.getOwnerUUID().toString() + ".yml"));
fileManager.deleteConfig(new File(new File(skyblock.getDataFolder().toString() + "/island-data"), island.getOwnerUUID().toString() + ".yml"));
Bukkit.getServer().getPluginManager().callEvent(new IslandDeleteEvent(island));
@ -479,7 +491,9 @@ public class IslandManager {
}
}
fileManager.unloadConfig(new File(new File(skyblock.getDataFolder().toString() + "/setting-data"), islandOwnerUUID + ".yml"));
fileManager.unloadConfig(new File(new File(skyblock.getDataFolder().toString() + "/island-data"), islandOwnerUUID + ".yml"));
islandStorage.remove(islandOwnerUUID);
Bukkit.getServer().getPluginManager().callEvent(new IslandUnloadEvent(island));
@ -625,7 +639,7 @@ public class IslandManager {
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(player.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
if (island.isRole(Role.Member, player.getUniqueId())) {
if (!island.getSetting(Settings.Role.Member, setting).getStatus()) {
if (!island.getSetting(Setting.Role.Member, setting).getStatus()) {
return false;
}
}
@ -642,7 +656,7 @@ public class IslandManager {
if (LocationUtil.isLocationAtLocationRadius(player.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
if (player.hasPermission("skyblock.bypass." + setting.toLowerCase()) || player.hasPermission("skyblock.bypass.*") || player.hasPermission("skyblock.*")) {
return true;
} else if (!island.getSetting(Settings.Role.Visitor, setting).getStatus()) {
} else if (!island.getSetting(Setting.Role.Visitor, setting).getStatus()) {
return false;
}
@ -704,7 +718,7 @@ public class IslandManager {
}
public void loadPlayer(Player player) {
new BukkitRunnable() {
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName())) {
@ -742,9 +756,59 @@ public class IslandManager {
if (configLoad.getBoolean("Island.WorldBorder.Enable")) {
WorldBorder.send(player, island.getSize() + 2.5, island.getLocation(Location.World.Normal, Location.Environment.Island));
}
giveUpgrades(player, island);
}
}
}
}.runTaskAsynchronously(skyblock);
});
}
public void giveUpgrades(Player player, Island island) {
UpgradeManager upgradeManager = skyblock.getUpgradeManager();
List<Upgrade> upgrades = upgradeManager.getUpgrades(Upgrade.Type.Speed);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled() && island.isUpgrade(Upgrade.Type.Speed)) {
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 1));
}
});
}
upgrades = upgradeManager.getUpgrades(Upgrade.Type.Jump);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled() && island.isUpgrade(Upgrade.Type.Jump)) {
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, Integer.MAX_VALUE, 1));
}
});
}
upgrades = upgradeManager.getUpgrades(Upgrade.Type.Fly);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled() && island.isUpgrade(Upgrade.Type.Fly)) {
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
player.setAllowFlight(true);
player.setFlying(true);
}
});
}
}
public void removeUpgrades(Player player) {
player.removePotionEffect(PotionEffectType.SPEED);
player.removePotionEffect(PotionEffectType.JUMP);
if (player.getGameMode() != GameMode.CREATIVE) {
player.setFlying(false);
player.setAllowFlight(false);
}
}
}

View File

@ -1,13 +1,19 @@
package me.goodandevil.skyblock.island;
public class Settings {
public class Setting {
private String name;
private boolean status;
public Settings(boolean status) {
public Setting(String name, boolean status) {
this.name = name;
this.status = status;
}
public String getName() {
return name;
}
public void setStatus(boolean status) {
this.status = status;
}

View File

@ -1,6 +1,8 @@
package me.goodandevil.skyblock.listeners;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.UUID;
import org.bukkit.Bukkit;
@ -14,11 +16,13 @@ import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockBurnEvent;
import org.bukkit.event.block.BlockFormEvent;
import org.bukkit.event.block.BlockFromToEvent;
import org.bukkit.event.block.BlockGrowEvent;
import org.bukkit.event.block.BlockPistonExtendEvent;
import org.bukkit.event.block.BlockPistonRetractEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.block.BlockSpreadEvent;
import org.bukkit.event.block.LeavesDecayEvent;
import org.bukkit.material.Crops;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.config.FileManager.Config;
@ -27,9 +31,10 @@ import me.goodandevil.skyblock.generator.GeneratorManager;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.Location;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.upgrade.Upgrade;
import me.goodandevil.skyblock.utils.version.Materials;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import me.goodandevil.skyblock.utils.version.Sounds;
@ -280,7 +285,7 @@ public class Block implements Listener {
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(block.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
if (!island.getSetting(Settings.Role.Owner, "FireSpread").getStatus()) {
if (!island.getSetting(Setting.Role.Owner, "FireSpread").getStatus()) {
event.setCancelled(true);
}
@ -305,7 +310,7 @@ public class Block implements Listener {
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(block.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
if (!island.getSetting(Settings.Role.Owner, "FireSpread").getStatus()) {
if (!island.getSetting(Setting.Role.Owner, "FireSpread").getStatus()) {
event.setCancelled(true);
}
@ -318,6 +323,55 @@ public class Block implements Listener {
}
}
@SuppressWarnings("deprecation")
@EventHandler
public void onBlockGrow(BlockGrowEvent event) {
org.bukkit.block.Block block = event.getBlock();
if (block.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || block.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
IslandManager islandManager = skyblock.getIslandManager();
for (UUID islandList : islandManager.getIslands().keySet()) {
Island island = islandManager.getIslands().get(islandList);
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(block.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
List<Upgrade> upgrades = skyblock.getUpgradeManager().getUpgrades(Upgrade.Type.Crop);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled() && island.isUpgrade(Upgrade.Type.Crop)) {
if (NMSUtil.getVersionNumber() > 12) {
try {
Object blockData = block.getClass().getMethod("getBlockData").invoke(block);
if (blockData instanceof org.bukkit.block.data.Ageable) {
org.bukkit.block.data.Ageable ageable = (org.bukkit.block.data.Ageable) blockData;
ageable.setAge(ageable.getAge() + 1);
block.getClass().getMethod("setBlockData", Class.forName("org.bukkit.block.data.BlockData")).invoke(block, ageable);
}
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException
| NoSuchMethodException | SecurityException | ClassNotFoundException e) {
e.printStackTrace();
}
} else {
if (block.getState().getData() instanceof Crops) {
try {
block.getClass().getMethod("setData", byte.class).invoke(block, (byte) (block.getData() + 1));
block.getState().update();
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException
| NoSuchMethodException | SecurityException e) {
e.printStackTrace();
}
}
}
}
return;
}
}
}
}
}
@EventHandler
public void onLeavesDecay(LeavesDecayEvent event) {
org.bukkit.block.Block block = event.getBlock();
@ -330,7 +384,7 @@ public class Block implements Listener {
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(block.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
if (!island.getSetting(Settings.Role.Owner, "LeafDecay").getStatus()) {
if (!island.getSetting(Setting.Role.Owner, "LeafDecay").getStatus()) {
event.setCancelled(true);
}

View File

@ -15,7 +15,7 @@ import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.Location;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.utils.world.LocationUtil;
public class Death implements Listener {
@ -43,7 +43,7 @@ public class Death implements Listener {
Island island = islandManager.getIslands().get(islandList);
if (LocationUtil.isLocationAtLocationRadius(player.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
if (island.getSetting(Settings.Role.Owner, "KeepItemsOnDeath").getStatus()) {
if (island.getSetting(Setting.Role.Owner, "KeepItemsOnDeath").getStatus()) {
keepInventory = true;
}

View File

@ -1,6 +1,7 @@
package me.goodandevil.skyblock.listeners;
import java.io.File;
import java.util.List;
import java.util.UUID;
import org.bukkit.Bukkit;
@ -12,19 +13,22 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.EntityTameEvent;
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
import org.bukkit.event.entity.EntityChangeBlockEvent;
import org.bukkit.event.player.PlayerShearEntityEvent;
import org.bukkit.inventory.ItemStack;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.Location;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.upgrade.Upgrade;
import me.goodandevil.skyblock.utils.version.Sounds;
import me.goodandevil.skyblock.utils.world.LocationUtil;
@ -53,7 +57,7 @@ public class Entity implements Listener {
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(event.getEntity().getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
if (!island.getSetting(Settings.Role.Owner, "PvP").getStatus()) {
if (!island.getSetting(Setting.Role.Owner, "PvP").getStatus()) {
event.setCancelled(true);
}
@ -148,7 +152,7 @@ public class Entity implements Listener {
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(entity.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
if (!island.getSetting(Settings.Role.Owner, "MobGriefing").getStatus()) {
if (!island.getSetting(Setting.Role.Owner, "MobGriefing").getStatus()) {
event.setCancelled(true);
}
@ -174,7 +178,7 @@ public class Entity implements Listener {
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(entity.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
if (!island.getSetting(Settings.Role.Owner, "Explosions").getStatus()) {
if (!island.getSetting(Setting.Role.Owner, "Explosions").getStatus()) {
event.setCancelled(true);
}
@ -187,6 +191,42 @@ public class Entity implements Listener {
}
}
@EventHandler
public void onEntityDeath(EntityDeathEvent event) {
if (event.getEntity() instanceof Player) {
return;
}
LivingEntity livingEntity = event.getEntity();
if (livingEntity.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || livingEntity.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
if (!livingEntity.hasMetadata("SkyBlock")) {
IslandManager islandManager = skyblock.getIslandManager();
for (UUID islandList : islandManager.getIslands().keySet()) {
Island island = islandManager.getIslands().get(islandList);
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(livingEntity.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
List<Upgrade> upgrades = skyblock.getUpgradeManager().getUpgrades(Upgrade.Type.Drops);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled() && island.isUpgrade(Upgrade.Type.Drops)) {
List<ItemStack> entityDrops = event.getDrops();
if (entityDrops != null) {
for (int i = 0; i < entityDrops.size(); i++) {
ItemStack is = entityDrops.get(i);
is.setAmount(is.getAmount() * 2);
}
}
}
}
}
}
}
}
}
@EventHandler
public void onCreatureSpawn(CreatureSpawnEvent event) {
if (event.getSpawnReason() == SpawnReason.CUSTOM || event.getSpawnReason() == SpawnReason.NATURAL) {
@ -205,7 +245,7 @@ public class Entity implements Listener {
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(livingEntity.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
if (!island.getSetting(Settings.Role.Owner, "NaturalMobSpawning").getStatus()) {
if (!island.getSetting(Setting.Role.Owner, "NaturalMobSpawning").getStatus()) {
livingEntity.remove();
}

View File

@ -38,8 +38,13 @@ public class Join implements Listener {
Player player = event.getPlayer();
IslandManager islandManager = skyblock.getIslandManager();
islandManager.loadIsland(player.getUniqueId());
islandManager.loadPlayer(player);
try {
islandManager.loadIsland(player.getUniqueId());
islandManager.loadPlayer(player);
} catch (Exception e) {
e.printStackTrace();
}
PlayerDataManager playerDataManager = skyblock.getPlayerDataManager();
playerDataManager.loadPlayerData(player);

View File

@ -15,7 +15,7 @@ import me.goodandevil.skyblock.config.FileManager;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
@ -99,7 +99,7 @@ public class Move implements Listener {
if (configLoad.getBoolean("Island.World." + world.name() + ".Liquid.Enable")) {
if (to.getY() <= configLoad.getInt("Island.World." + world.name() + ".Liquid.Height")) {
if (island.getSetting(Settings.Role.Owner, "KeepItemsOnDeath").getStatus()) {
if (island.getSetting(Setting.Role.Owner, "KeepItemsOnDeath").getStatus()) {
player.setFallDistance(0.0F);
player.teleport(island.getLocation(world, me.goodandevil.skyblock.island.Location.Environment.Main));
soundManager.playSound(player, Sounds.ENDERMAN_TELEPORT.bukkitSound(), 1.0F, 1.0F);
@ -111,7 +111,7 @@ public class Move implements Listener {
if (configLoad.getBoolean("Island.Void.Teleport.Enable")) {
if (to.getY() <= configLoad.getInt("Island.Void.Teleport.Offset")) {
if (island.getSetting(Settings.Role.Owner, "KeepItemsOnDeath").getStatus()) {
if (island.getSetting(Setting.Role.Owner, "KeepItemsOnDeath").getStatus()) {
player.setFallDistance(0.0F);
player.teleport(island.getLocation(world, me.goodandevil.skyblock.island.Location.Environment.Main));
soundManager.playSound(player, Sounds.ENDERMAN_TELEPORT.bukkitSound(), 1.0F, 1.0F);

View File

@ -57,6 +57,8 @@ public class Respawn implements Listener {
Bukkit.getServer().getPluginManager().callEvent(new PlayerTeleportEvent(player, playerLocation, islandLocation));
event.setRespawnLocation(islandLocation);
islandManager.giveUpgrades(player, island);
return;
}
}

View File

@ -0,0 +1,95 @@
package me.goodandevil.skyblock.listeners;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.UUID;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.SpawnerSpawnEvent;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Location;
import me.goodandevil.skyblock.upgrade.Upgrade;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import me.goodandevil.skyblock.utils.world.LocationUtil;
public class Spawner implements Listener {
private final SkyBlock skyblock;
public Spawner(SkyBlock skyblock) {
this.skyblock = skyblock;
}
@EventHandler
public void onSpawnSpawn(SpawnerSpawnEvent event) {
CreatureSpawner spawner = event.getSpawner();
org.bukkit.Location location = spawner.getBlock().getLocation();
if (location.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || location.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
IslandManager islandManager = skyblock.getIslandManager();
for (UUID islandList : islandManager.getIslands().keySet()) {
Island island = islandManager.getIslands().get(islandList);
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(location, island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
List<Upgrade> upgrades = skyblock.getUpgradeManager().getUpgrades(Upgrade.Type.Spawner);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled() && island.isUpgrade(Upgrade.Type.Spawner)) {
if (NMSUtil.getVersionNumber() > 12) {
if (spawner.getDelay() == 20) {
spawner.setDelay(10);
}
spawner.setMinSpawnDelay(100);
spawner.setMaxSpawnDelay(400);
} else {
try {
Field TileEntityMobSpawnerField = spawner.getClass().getDeclaredField("spawner");
TileEntityMobSpawnerField.setAccessible(true);
Object TileEntityMobSpawner = TileEntityMobSpawnerField.get(spawner);
Object MobSpawner = TileEntityMobSpawner.getClass().getMethod("getSpawner").invoke(TileEntityMobSpawner);
int spawnDelay = (int) MobSpawner.getClass().getSuperclass().getField("spawnDelay").get(MobSpawner);
if (spawnDelay == 20) {
Field spawnDelayField = MobSpawner.getClass().getSuperclass().getField("spawnDelay");
spawnDelayField.setAccessible(true);
spawnDelayField.set(MobSpawner, 10);
}
Field minSpawnDelayField = MobSpawner.getClass().getSuperclass().getDeclaredField("minSpawnDelay");
minSpawnDelayField.setAccessible(true);
int minSpawnDelay = (int) minSpawnDelayField.get(MobSpawner);
if (minSpawnDelay != 100) {
minSpawnDelayField.set(MobSpawner, 100);
}
Field maxSpawnDelayField = MobSpawner.getClass().getSuperclass().getDeclaredField("maxSpawnDelay");
maxSpawnDelayField.setAccessible(true);
int maxSpawnDelay = (int) maxSpawnDelayField.get(MobSpawner);
if (maxSpawnDelay != 400) {
maxSpawnDelayField.set(MobSpawner, 400);
}
} catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException
| SecurityException | InvocationTargetException | NoSuchMethodException e) {
e.printStackTrace();
}
}
}
break;
}
}
}
}
}
}

View File

@ -48,6 +48,7 @@ public class Teleport implements Listener {
Config config = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
islandManager.removeUpgrades(player);
islandManager.loadPlayer(player);
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {

View File

@ -17,7 +17,7 @@ import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
@ -123,7 +123,7 @@ public class Bans {
}
}, 1L);
} else {
if ((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Unban").getStatus()) || island.isRole(Role.Owner, player.getUniqueId())) {
if ((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Unban").getStatus()) || island.isRole(Role.Owner, player.getUniqueId())) {
String playerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
Bukkit.getServer().dispatchCommand(player, "island unban " + playerName);
@ -193,7 +193,13 @@ public class Bans {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Bans.Title")));
nInv.setRows(6);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}
}

View File

@ -18,7 +18,7 @@ import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.Location;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.sound.SoundManager;
@ -65,7 +65,7 @@ public class Biome {
if (playerDataManager.hasPlayerData(player) && islandManager.hasIsland(player)) {
island = islandManager.getIsland(playerDataManager.getPlayerData(player).getOwner());
if (!((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Biome").getStatus()) || island.isRole(Role.Owner, player.getUniqueId()))) {
if (!((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Biome").getStatus()) || island.isRole(Role.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player, config.getFileConfiguration().getString("Command.Island.Biome.Permission.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
@ -136,7 +136,7 @@ public class Biome {
}
biomeManager.createPlayer(player, skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getInt("Island.Biome.Cooldown"));
biomeManager.setBiome(player, island, selectedBiomeType);
biomeManager.setBiome(island, selectedBiomeType);
island.setBiome(selectedBiomeType);
island.save();
@ -222,7 +222,13 @@ public class Biome {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Biome.Title")));
nInv.setRows(1);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}
}

View File

@ -118,6 +118,12 @@ public class ControlPanel {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.ControlPanel.Title")));
nInv.setRows(1);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}

View File

@ -181,6 +181,12 @@ public class Creator {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Creator.Selector.Title")));
nInv.setRows(inventoryRows);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}

View File

@ -202,7 +202,13 @@ public class Information {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Information.Categories.Title")));
nInv.setType(InventoryType.HOPPER);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
} else if (viewer.getType() == Information.Viewer.Type.Members) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
@ -322,7 +328,13 @@ public class Information {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Information.Members.Title")));
nInv.setRows(6);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
} else if (viewer.getType() == Information.Viewer.Type.Visitors) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
@ -429,7 +441,13 @@ public class Information {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Information.Visitors.Title")));
nInv.setRows(6);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
islandManager.unloadIsland(viewer.getOwner());

View File

@ -85,7 +85,13 @@ public class Leaderboard {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Leaderboard." + viewer.getType().name() + ".Title")));
nInv.setType(InventoryType.HOPPER);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
} else {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
@ -202,7 +208,13 @@ public class Leaderboard {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Leaderboard.Leaderboard.Title").replace("%leaderboard", viewer.getType().name())));
nInv.setRows(6);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}
}

View File

@ -219,7 +219,13 @@ public class Levelling {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Levelling.Title")));
nInv.setRows(6);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}
}

View File

@ -24,7 +24,7 @@ import me.goodandevil.skyblock.config.FileManager;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.sound.SoundManager;
@ -190,7 +190,7 @@ public class Members {
return;
}
} else if (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Kick").getStatus()) {
} else if (island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Kick").getStatus()) {
Bukkit.getServer().dispatchCommand(player, "island kick " + playerName);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@ -304,7 +304,7 @@ public class Members {
if (island.isRole(Role.Owner, player.getUniqueId())) {
operatorActions = new boolean[] { true, true };
} else if (island.isRole(Role.Operator, player.getUniqueId())) {
if (island.getSetting(Settings.Role.Operator, "Kick").getStatus()) {
if (island.getSetting(Setting.Role.Operator, "Kick").getStatus()) {
operatorActions = new boolean[] { false, true };
}
}
@ -451,7 +451,13 @@ public class Members {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Members.Title")));
nInv.setRows(6);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}

View File

@ -280,7 +280,13 @@ public class Ownership {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Ownership.Title")));
nInv.setType(InventoryType.HOPPER);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}

View File

@ -20,6 +20,7 @@ import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Message;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.sound.SoundManager;
@ -43,7 +44,7 @@ public class Settings {
return instance;
}
public void open(Player player, Settings.Type menuType, me.goodandevil.skyblock.island.Settings.Role role, Settings.Panel panel) {
public void open(Player player, Settings.Type menuType, me.goodandevil.skyblock.island.Setting.Role role, Settings.Panel panel) {
SkyBlock skyblock = SkyBlock.getInstance();
PlayerDataManager playerDataManager = skyblock.getPlayerDataManager();
@ -68,7 +69,7 @@ public class Settings {
island = islandManager.getIsland(playerDataManager.getPlayerData(player).getOwner());
if (!(island.isRole(Role.Operator, player.getUniqueId()) || island.isRole(Role.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Settings.Role.Message"));
messageManager.sendMessage(player, configLoad.getString("Command.Island.Setting.Role.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
@ -85,7 +86,7 @@ public class Settings {
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Categories.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Categories.Item.Visitor.Displayname"))))) {
if (island.isRole(Role.Operator, player.getUniqueId()) && !island.getSetting(me.goodandevil.skyblock.island.Settings.Role.Operator, "Visitor").getStatus()) {
if (island.isRole(Role.Operator, player.getUniqueId()) && !island.getSetting(me.goodandevil.skyblock.island.Setting.Role.Operator, "Visitor").getStatus()) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Settings.Permission.Access.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
@ -100,11 +101,11 @@ public class Settings {
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Visitor, null);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Visitor, null);
}
}, 1L);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Categories.Item.Member.Displayname"))))) {
if (island.isRole(Role.Operator, player.getUniqueId()) && !island.getSetting(me.goodandevil.skyblock.island.Settings.Role.Operator, "Member").getStatus()) {
if (island.isRole(Role.Operator, player.getUniqueId()) && !island.getSetting(me.goodandevil.skyblock.island.Setting.Role.Operator, "Member").getStatus()) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Settings.Permission.Access.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
@ -119,7 +120,7 @@ public class Settings {
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Member, null);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Member, null);
}
}, 1L);
} else if ((is.getType() == Material.ITEM_FRAME) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Categories.Item.Operator.Displayname"))))) {
@ -138,11 +139,11 @@ public class Settings {
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Operator, null);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Operator, null);
}
}, 1L);
} else if ((is.getType() == Materials.OAK_SAPLING.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Categories.Item.Owner.Displayname"))))) {
if (island.isRole(Role.Operator, player.getUniqueId()) && !island.getSetting(me.goodandevil.skyblock.island.Settings.Role.Operator, "Island").getStatus()) {
if (island.isRole(Role.Operator, player.getUniqueId()) && !island.getSetting(me.goodandevil.skyblock.island.Setting.Role.Operator, "Island").getStatus()) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Settings.Permission.Access.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
@ -157,7 +158,7 @@ public class Settings {
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Owner, null);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Owner, null);
}
}, 1L);
}
@ -173,7 +174,13 @@ public class Settings {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Categories.Title")));
nInv.setRows(1);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
} else if (menuType == Settings.Type.Role && role != null) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
@ -185,7 +192,7 @@ public class Settings {
island = islandManager.getIsland(playerDataManager.getPlayerData(player).getOwner());
if (!(island.isRole(Role.Operator, player.getUniqueId()) || island.isRole(Role.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Settings.Role.Message"));
messageManager.sendMessage(player, configLoad.getString("Command.Island.Setting.Role.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
@ -238,14 +245,14 @@ public class Settings {
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Visitor, null);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Visitor, null);
}
}, 1L);
} else if (is.hasItemMeta()) {
String roleName = getRoleName(role);
for (String settingList : island.getSettings(role).keySet()) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings." + roleName + ".Item.Setting." + settingList + ".Displayname")))) {
for (Setting settingList : island.getSettings(role)) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings." + roleName + ".Item.Setting." + settingList.getName() + ".Displayname")))) {
if (!hasPermission(island, player, role)) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Settings.Permission.Change.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
@ -253,13 +260,11 @@ public class Settings {
return;
}
me.goodandevil.skyblock.island.Settings setting = island.getSettings(role).get(settingList);
if (setting != null) {
if (setting.getStatus()) {
setting.setStatus(false);
if (settingList != null) {
if (settingList.getStatus()) {
settingList.setStatus(false);
} else {
setting.setStatus(true);
settingList.setStatus(true);
}
}
@ -280,8 +285,8 @@ public class Settings {
}
});
if (role == me.goodandevil.skyblock.island.Settings.Role.Visitor || role == me.goodandevil.skyblock.island.Settings.Role.Member) {
if (role == me.goodandevil.skyblock.island.Settings.Role.Visitor) {
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor || role == me.goodandevil.skyblock.island.Setting.Role.Member) {
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor) {
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "config.yml"));
Visit visit = island.getVisit();
@ -352,7 +357,7 @@ public class Settings {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings." + role.name() + ".Title")));
nInv.setRows(6);
} else if (role == me.goodandevil.skyblock.island.Settings.Role.Operator) {
} else if (role == me.goodandevil.skyblock.island.Setting.Role.Operator) {
if (mainConfig.getFileConfiguration().getBoolean("Island.Visitor.Banning")) {
nInv.addItemStack(createItem(island, role, "Invite", Materials.WRITABLE_BOOK.parseMaterial()), 10);
nInv.addItemStack(createItem(island, role, "Kick", Material.IRON_DOOR), 11);
@ -382,7 +387,7 @@ public class Settings {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings." + role.name() + ".Title")));
nInv.setRows(2);
}
} else if (role == me.goodandevil.skyblock.island.Settings.Role.Owner) {
} else if (role == me.goodandevil.skyblock.island.Setting.Role.Owner) {
nInv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseMaterial()), 10);
nInv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseMaterial()), 11);
nInv.addItemStack(createItem(island, role, "PvP", Material.DIAMOND_SWORD), 12);
@ -396,7 +401,13 @@ public class Settings {
}
nInv.addItem(nInv.createItem(Materials.OAK_FENCE_GATE.parseItem(), configLoad.getString("Menu.Settings." + role.name() + ".Item.Return.Displayname"), null, null, null, null), 0, 8);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
} else if (menuType == Settings.Type.Panel) {
if (panel == Settings.Panel.Welcome) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@ -409,7 +420,7 @@ public class Settings {
island = islandManager.getIsland(playerDataManager.getPlayerData(player).getOwner());
if (!(island.isRole(Role.Operator, player.getUniqueId()) || island.isRole(Role.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Settings.Role.Message"));
messageManager.sendMessage(player, configLoad.getString("Command.Island.Setting.Role.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
@ -436,7 +447,7 @@ public class Settings {
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Visitor, null);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Visitor, null);
}
}, 1L);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Visitor.Item.Statistics.Displayname"))))) {
@ -451,7 +462,7 @@ public class Settings {
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Visitor, null);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Visitor, null);
}
}, 1L);
} else if ((is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Visitor.Panel.Welcome.Item.Message.Displayname"))))) {
@ -479,7 +490,7 @@ public class Settings {
island1 = islandManager.getIsland(playerDataManager.getPlayerData(player).getOwner());
if (!(island1.isRole(Role.Operator, player.getUniqueId()) || island1.isRole(Role.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Settings.Role.Message"));
messageManager.sendMessage(player, configLoad.getString("Command.Island.Setting.Role.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
@ -591,7 +602,13 @@ public class Settings {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Visitor.Panel.Welcome.Title")));
nInv.setType(InventoryType.HOPPER);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
} else if (panel == Settings.Panel.Signature) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
@ -603,7 +620,7 @@ public class Settings {
island = islandManager.getIsland(playerDataManager.getPlayerData(player).getOwner());
if (!(island.isRole(Role.Operator, player.getUniqueId()) || island.isRole(Role.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Settings.Role.Message"));
messageManager.sendMessage(player, configLoad.getString("Command.Island.Setting.Role.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
@ -630,7 +647,7 @@ public class Settings {
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Visitor, null);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Visitor, null);
}
}, 1L);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Visitor.Item.Statistics.Displayname"))))) {
@ -645,7 +662,7 @@ public class Settings {
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Settings.Role.Visitor, null);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Visitor, null);
}
}, 1L);
} else if ((is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Visitor.Panel.Signature.Item.Message.Displayname"))))) {
@ -673,7 +690,7 @@ public class Settings {
island1 = islandManager.getIsland(playerDataManager.getPlayerData(player).getOwner());
if (!(island1.isRole(Role.Operator, player.getUniqueId()) || island1.isRole(Role.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Settings.Role.Message"));
messageManager.sendMessage(player, configLoad.getString("Command.Island.Setting.Role.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
@ -785,13 +802,19 @@ public class Settings {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings.Visitor.Panel.Signature.Title")));
nInv.setType(InventoryType.HOPPER);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}
}
}
private ItemStack createItem(Island island, me.goodandevil.skyblock.island.Settings.Role role, String setting, Material material) {
private ItemStack createItem(Island island, me.goodandevil.skyblock.island.Setting.Role role, String setting, Material material) {
SkyBlock skyblock = SkyBlock.getInstance();
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml"));
@ -804,7 +827,7 @@ public class Settings {
String roleName = role.name();
if (role == me.goodandevil.skyblock.island.Settings.Role.Visitor || role == me.goodandevil.skyblock.island.Settings.Role.Member) {
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor || role == me.goodandevil.skyblock.island.Setting.Role.Member) {
roleName = "Default";
}
@ -827,26 +850,26 @@ public class Settings {
return is;
}
private String getRoleName(me.goodandevil.skyblock.island.Settings.Role role) {
if (role == me.goodandevil.skyblock.island.Settings.Role.Visitor || role == me.goodandevil.skyblock.island.Settings.Role.Member) {
private String getRoleName(me.goodandevil.skyblock.island.Setting.Role role) {
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor || role == me.goodandevil.skyblock.island.Setting.Role.Member) {
return "Default";
}
return role.name();
}
private boolean hasPermission(Island island, Player player, me.goodandevil.skyblock.island.Settings.Role role) {
if (role == me.goodandevil.skyblock.island.Settings.Role.Visitor || role == me.goodandevil.skyblock.island.Settings.Role.Member || role == me.goodandevil.skyblock.island.Settings.Role.Owner) {
private boolean hasPermission(Island island, Player player, me.goodandevil.skyblock.island.Setting.Role role) {
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor || role == me.goodandevil.skyblock.island.Setting.Role.Member || role == me.goodandevil.skyblock.island.Setting.Role.Owner) {
String roleName = role.name();
if (role == me.goodandevil.skyblock.island.Settings.Role.Owner) {
if (role == me.goodandevil.skyblock.island.Setting.Role.Owner) {
roleName = "Island";
}
if (island.isRole(Role.Operator, player.getUniqueId()) && !island.getSetting(me.goodandevil.skyblock.island.Settings.Role.Operator, roleName).getStatus()) {
if (island.isRole(Role.Operator, player.getUniqueId()) && !island.getSetting(me.goodandevil.skyblock.island.Setting.Role.Operator, roleName).getStatus()) {
return false;
}
} else if (role == me.goodandevil.skyblock.island.Settings.Role.Operator) {
} else if (role == me.goodandevil.skyblock.island.Setting.Role.Operator) {
if (!island.isRole(Role.Owner, player.getUniqueId())) {
return false;
}

View File

@ -0,0 +1,668 @@
package me.goodandevil.skyblock.menus;
import java.io.File;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.PotionData;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.potion.PotionType;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.config.FileManager;
import me.goodandevil.skyblock.economy.EconomyManager;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Location;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.upgrade.UpgradeManager;
import me.goodandevil.skyblock.utils.NumberUtil;
import me.goodandevil.skyblock.utils.item.nInventoryUtil;
import me.goodandevil.skyblock.utils.item.nInventoryUtil.ClickEvent;
import me.goodandevil.skyblock.utils.item.nInventoryUtil.ClickEventHandler;
import me.goodandevil.skyblock.utils.version.Materials;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import me.goodandevil.skyblock.utils.version.Sounds;
public class Upgrade {
private static Upgrade instance;
public static Upgrade getInstance(){
if(instance == null) {
instance = new Upgrade();
}
return instance;
}
@SuppressWarnings("deprecation")
public void open(Player player) {
SkyBlock skyblock = SkyBlock.getInstance();
PlayerDataManager playerDataManager = skyblock.getPlayerDataManager();
EconomyManager economyManager = skyblock.getEconomyManager();
MessageManager messageManager = skyblock.getMessageManager();
UpgradeManager upgradeManager = skyblock.getUpgradeManager();
IslandManager islandManager = skyblock.getIslandManager();
SoundManager soundManager = skyblock.getSoundManager();
FileManager fileManager = skyblock.getFileManager();
FileConfiguration configLoad = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml")).getFileConfiguration();
if (!economyManager.isEconomy()) {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Disabled.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
if (playerDataManager.hasPlayerData(player) && playerDataManager.getPlayerData(player).getOwner() != null) {
Island island = islandManager.getIsland(playerDataManager.getPlayerData(player).getOwner());
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (!economyManager.isEconomy()) {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Disabled.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
if (playerData.getOwner() == null) {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
ItemStack is = event.getItem();
if ((is.getType() == Material.POTION) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Speed.Displayname")))) {
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed)) {
if (island.isUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed)) {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed, false);
for (Location.World worldList : Location.World.values()) {
for (Player all : islandManager.getPlayersAtIsland(island, worldList)) {
all.removePotionEffect(PotionEffectType.SPEED);
}
}
} else {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed, true);
for (Location.World worldList : Location.World.values()) {
for (Player all : islandManager.getPlayersAtIsland(island, worldList)) {
all.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 1));
}
}
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (economyManager.hasBalance(player, upgrade.getCost())) {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Bought.Message").replace("%upgrade", is.getItemMeta().getDisplayName()));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
economyManager.withdraw(player, upgrade.getCost());
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed, true);
for (Location.World worldList : Location.World.values()) {
for (Player all : islandManager.getPlayersAtIsland(island, worldList)) {
all.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 1));
}
}
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Money.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Exist.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Jump.Displayname")))) {
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump)) {
if (island.isUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump)) {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump, false);
for (Location.World worldList : Location.World.values()) {
for (Player all : islandManager.getPlayersAtIsland(island, worldList)) {
all.removePotionEffect(PotionEffectType.JUMP);
}
}
} else {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump, true);
for (Location.World worldList : Location.World.values()) {
for (Player all : islandManager.getPlayersAtIsland(island, worldList)) {
all.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, Integer.MAX_VALUE, 1));
}
}
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (economyManager.hasBalance(player, upgrade.getCost())) {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Bought.Message").replace("%upgrade", is.getItemMeta().getDisplayName()));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
economyManager.withdraw(player, upgrade.getCost());
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump, true);
for (Location.World worldList : Location.World.values()) {
for (Player all : islandManager.getPlayersAtIsland(island, worldList)) {
all.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, Integer.MAX_VALUE, 1));
}
}
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Money.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Exist.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
}
} else if ((is.getType() == Materials.WHEAT_SEEDS.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Crop.Displayname"))))) {
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop)) {
if (island.isUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop)) {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop, false);
} else {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop, true);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (economyManager.hasBalance(player, upgrade.getCost())) {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Bought.Message").replace("%upgrade", is.getItemMeta().getDisplayName()));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
economyManager.withdraw(player, upgrade.getCost());
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop, true);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Money.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Exist.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
} else if ((is.getType() == Material.FEATHER) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Fly.Displayname"))))) {
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly)) {
if (island.isUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly)) {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly, false);
for (Location.World worldList : Location.World.values()) {
for (Player all : islandManager.getPlayersAtIsland(island, worldList)) {
if (all.getGameMode() != GameMode.CREATIVE) {
all.setFlying(false);
all.setAllowFlight(false);
}
}
}
} else {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly, true);
for (Location.World worldList : Location.World.values()) {
for (Player all : islandManager.getPlayersAtIsland(island, worldList)) {
all.setAllowFlight(true);
all.setFlying(true);
}
}
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (economyManager.hasBalance(player, upgrade.getCost())) {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Bought.Message").replace("%upgrade", is.getItemMeta().getDisplayName()));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
economyManager.withdraw(player, upgrade.getCost());
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly, true);
for (Location.World worldList : Location.World.values()) {
for (Player all : islandManager.getPlayersAtIsland(island, worldList)) {
all.setAllowFlight(true);
all.setFlying(true);
}
}
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Money.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Exist.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
} else if ((is.getType() == Material.SPIDER_EYE) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Drops.Displayname"))))) {
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops)) {
if (island.isUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops)) {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops, false);
} else {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops, true);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (economyManager.hasBalance(player, upgrade.getCost())) {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Bought.Message").replace("%upgrade", is.getItemMeta().getDisplayName()));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
economyManager.withdraw(player, upgrade.getCost());
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops, true);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Money.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Exist.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
} else if ((is.getType() == Material.BEACON) && (is.hasItemMeta())) {
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size);
if (upgrades != null && upgrades.size() > 0) {
for (int i = 0; i < upgrades.size(); i++) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(i);
int tier = i+1;
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Size.Displayname").replace("%tier", "" + tier)))) {
if (upgrade.getValue() > island.getSize() && upgrade.getValue() != island.getSize()) {
if (economyManager.hasBalance(player, upgrade.getCost())) {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Bought.Message").replace("%upgrade", is.getItemMeta().getDisplayName()));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
economyManager.withdraw(player, upgrade.getCost());
island.setSize(upgrade.getValue());
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Money.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
return;
}
}
}
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Claimed.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
} else if ((is.getType() == Materials.SPAWNER.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Spawner.Displayname"))))) {
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner)) {
if (island.isUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner)) {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner, false);
} else {
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner, true);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (economyManager.hasBalance(player, upgrade.getCost())) {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Bought.Message").replace("%upgrade", is.getItemMeta().getDisplayName()));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
economyManager.withdraw(player, upgrade.getCost());
island.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner, true);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Money.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Upgrade.Exist.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
}
}
}
});
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades;
ItemStack potion = new ItemStack(Material.POTION);
int NMSVersion = NMSUtil.getVersionNumber();
upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (NMSVersion > 12) {
PotionMeta pm = (PotionMeta) potion.getItemMeta();
pm.setBasePotionData(new PotionData(PotionType.SPEED));
potion.setItemMeta(pm);
} else {
potion = new ItemStack(Material.POTION, 1, (short) 8194);
}
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed)) {
nInv.addItem(nInv.createItem(potion, ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Speed.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Speed.Claimed.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(island, me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed) }), null, new ItemFlag[] { ItemFlag.HIDE_POTION_EFFECTS }), 0);
} else {
if (economyManager.hasBalance(player, upgrade.getCost())) {
nInv.addItem(nInv.createItem(potion, ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Speed.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Speed.Claimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, new ItemFlag[] { ItemFlag.HIDE_POTION_EFFECTS }), 0);
} else {
nInv.addItem(nInv.createItem(potion, ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Speed.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Speed.Unclaimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, new ItemFlag[] { ItemFlag.HIDE_POTION_EFFECTS }), 0);
}
}
}
upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (NMSVersion > 12) {
PotionMeta pm = (PotionMeta) potion.getItemMeta();
pm.setBasePotionData(new PotionData(PotionType.JUMP));
potion.setItemMeta(pm);
} else {
potion = new ItemStack(Material.POTION, 1, (short) 8203);
}
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump)) {
nInv.addItem(nInv.createItem(potion, ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Jump.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Jump.Claimed.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(island, me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump) }), null, new ItemFlag[] { ItemFlag.HIDE_POTION_EFFECTS }), 1);
} else {
if (economyManager.hasBalance(player, upgrade.getCost())) {
nInv.addItem(nInv.createItem(potion, ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Jump.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Jump.Claimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, new ItemFlag[] { ItemFlag.HIDE_POTION_EFFECTS }), 1);
} else {
nInv.addItem(nInv.createItem(potion, ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Jump.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Jump.Unclaimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, new ItemFlag[] { ItemFlag.HIDE_POTION_EFFECTS }), 1);
}
}
}
upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop)) {
nInv.addItem(nInv.createItem(Materials.WHEAT_SEEDS.parseItem(), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Crop.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Crop.Claimed.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(island, me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop) }), null, null), 3);
} else {
if (economyManager.hasBalance(player, upgrade.getCost())) {
nInv.addItem(nInv.createItem(Materials.WHEAT_SEEDS.parseItem(), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Crop.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Crop.Claimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, null), 3);
} else {
nInv.addItem(nInv.createItem(Materials.WHEAT_SEEDS.parseItem(), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Crop.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Crop.Unclaimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, null), 3);
}
}
}
upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly)) {
nInv.addItem(nInv.createItem(new ItemStack(Material.FEATHER), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Fly.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Fly.Claimed.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(island, me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly) }), null, null), 4);
} else {
if (economyManager.hasBalance(player, upgrade.getCost())) {
nInv.addItem(nInv.createItem(new ItemStack(Material.FEATHER), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Fly.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Fly.Claimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, null), 4);
} else {
nInv.addItem(nInv.createItem(new ItemStack(Material.FEATHER), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Fly.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Fly.Unclaimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, null), 4);
}
}
}
upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops)) {
nInv.addItem(nInv.createItem(new ItemStack(Material.SPIDER_EYE), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Drops.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Drops.Claimed.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(island, me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops) }), null, null), 5);
} else {
if (economyManager.hasBalance(player, upgrade.getCost())) {
nInv.addItem(nInv.createItem(new ItemStack(Material.SPIDER_EYE), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Drops.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Drops.Claimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, null), 5);
} else {
nInv.addItem(nInv.createItem(new ItemStack(Material.SPIDER_EYE), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Drops.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Drops.Unclaimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, null), 5);
}
}
}
upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size);
if (upgrades != null && upgrades.size() > 0) {
for (int i = 0; i < upgrades.size(); i++) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(i);
int tier = i+1;
if (tier != upgrades.size()) {
if (upgrade.getValue() <= island.getSize()) {
continue;
}
}
if (island.getSize() >= upgrade.getValue()) {
nInv.addItem(nInv.createItem(new ItemStack(Material.BEACON), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Size.Displayname").replace("%tier", "" + tier)), configLoad.getStringList("Menu.Upgrade.Item.Size.Claimed.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%tier#" + tier, "%size#" + upgrade.getValue() }), null, null), 7);
} else {
if (economyManager.hasBalance(player, upgrade.getCost())) {
nInv.addItem(nInv.createItem(new ItemStack(Material.BEACON), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Size.Displayname").replace("%tier", "" + tier)), configLoad.getStringList("Menu.Upgrade.Item.Size.Claimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%tier#" + tier, "%size#" + upgrade.getValue() }), null, null), 7);
} else {
nInv.addItem(nInv.createItem(new ItemStack(Material.BEACON), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Size.Displayname").replace("%tier", "" + tier)), configLoad.getStringList("Menu.Upgrade.Item.Size.Unclaimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%tier#" + tier, "%size#" + upgrade.getValue() }), null, null), 7);
}
}
break;
}
}
upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner);
if (upgrades != null && upgrades.size() > 0 && upgrades.get(0).isEnabled()) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(0);
if (island.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner)) {
nInv.addItem(nInv.createItem(Materials.SPAWNER.parseItem(), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Spawner.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Spawner.Claimed.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(island, me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner) }), null, null), 8);
} else {
if (economyManager.hasBalance(player, upgrade.getCost())) {
nInv.addItem(nInv.createItem(Materials.SPAWNER.parseItem(), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Spawner.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Spawner.Claimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, null), 8);
} else {
nInv.addItem(nInv.createItem(Materials.SPAWNER.parseItem(), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Item.Spawner.Displayname")), configLoad.getStringList("Menu.Upgrade.Item.Spawner.Unclaimable.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, null), 8);
}
}
}
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Upgrade.Title")));
nInv.setRows(1);
nInv.open();
}
}
private String getStatus(Island island, me.goodandevil.skyblock.upgrade.Upgrade.Type type) {
SkyBlock skyblock = SkyBlock.getInstance();
FileConfiguration configLoad = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml")).getFileConfiguration();
String upgradeStatus;
if (island.isUpgrade(type)) {
upgradeStatus = configLoad.getString("Menu.Upgrade.Item.Word.Disable");
} else {
upgradeStatus = configLoad.getString("Menu.Upgrade.Item.Word.Enable");
}
return upgradeStatus;
}
}

View File

@ -416,7 +416,13 @@ public class Visit {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Visit.Title")));
nInv.setRows(6);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
public enum Type {

View File

@ -20,7 +20,7 @@ import me.goodandevil.skyblock.config.FileManager;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.sound.SoundManager;
@ -112,7 +112,7 @@ public class Visitors {
}
}, 1L);
} else {
boolean isOperator = island.isRole(Role.Operator, player.getUniqueId()), isOwner = island.isRole(Role.Owner, player.getUniqueId()), canKick = island.getSetting(Settings.Role.Operator, "Kick").getStatus(), canBan = island.getSetting(Settings.Role.Operator, "Ban").getStatus(), banningEnabled = fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Visitor.Banning");
boolean isOperator = island.isRole(Role.Operator, player.getUniqueId()), isOwner = island.isRole(Role.Owner, player.getUniqueId()), canKick = island.getSetting(Setting.Role.Operator, "Kick").getStatus(), canBan = island.getSetting(Setting.Role.Operator, "Ban").getStatus(), banningEnabled = fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Visitor.Banning");
String playerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
if ((isOperator && canKick) || isOwner) {
@ -190,7 +190,7 @@ public class Visitors {
if (islandVisitors.size() == 0) {
nInv.addItem(nInv.createItem(new ItemStack(Material.BARRIER), configLoad.getString("Menu.Visitors.Item.Nothing.Displayname"), null, null, null, null), 31);
} else {
boolean isOperator = island.isRole(Role.Operator, player.getUniqueId()), isOwner = island.isRole(Role.Owner, player.getUniqueId()), canKick = island.getSetting(Settings.Role.Operator, "Kick").getStatus(), canBan = island.getSetting(Settings.Role.Operator, "Ban").getStatus(), banningEnabled = fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Visitor.Banning");
boolean isOperator = island.isRole(Role.Operator, player.getUniqueId()), isOwner = island.isRole(Role.Owner, player.getUniqueId()), canKick = island.getSetting(Setting.Role.Operator, "Kick").getStatus(), canBan = island.getSetting(Setting.Role.Operator, "Ban").getStatus(), banningEnabled = fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Visitor.Banning");
int index = playerMenuPage * 36 - 36, endIndex = index >= islandVisitors.size() ? islandVisitors.size() - 1 : index + 36, inventorySlot = 17;
for (; index < endIndex; index++) {
@ -238,7 +238,13 @@ public class Visitors {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Visitors.Title")));
nInv.setRows(6);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}
}

View File

@ -17,7 +17,7 @@ import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.Location;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.island.Settings;
import me.goodandevil.skyblock.island.Setting;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.sound.SoundManager;
@ -60,7 +60,7 @@ public class Weather {
if (islandManager.hasIsland(player)) {
island = islandManager.getIsland(playerDataManager.getPlayerData(player).getOwner());
if (!((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Settings.Role.Operator, "Biome").getStatus()) || island.isRole(Role.Owner, player.getUniqueId()))) {
if (!((island.isRole(Role.Operator, player.getUniqueId()) && island.getSetting(Setting.Role.Operator, "Biome").getStatus()) || island.isRole(Role.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Weather.Permission.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
@ -223,7 +223,13 @@ public class Weather {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Weather.Title")));
nInv.setType(InventoryType.HOPPER);
nInv.open();
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}
}

View File

@ -38,7 +38,7 @@ public class Settings implements Listener {
return instance;
}
public void open(Player player, Settings.Type menuType, me.goodandevil.skyblock.island.Settings.Role role) {
public void open(Player player, Settings.Type menuType, me.goodandevil.skyblock.island.Setting.Role role) {
SkyBlock skyblock = SkyBlock.getInstance();
Island island = skyblock.getIslandManager().getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
@ -56,7 +56,7 @@ public class Settings implements Listener {
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) {
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor || role == me.goodandevil.skyblock.island.Setting.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);
@ -99,7 +99,7 @@ public class Settings implements Listener {
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) {
} else if (role == me.goodandevil.skyblock.island.Setting.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);
@ -125,7 +125,7 @@ public class Settings implements Listener {
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) {
} else if (role == me.goodandevil.skyblock.island.Setting.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);
@ -142,7 +142,7 @@ public class Settings implements Listener {
player.openInventory(inv.getInventory());
}
private ItemStack createItem(Island island, me.goodandevil.skyblock.island.Settings.Role role, String setting, Material material) {
private ItemStack createItem(Island island, me.goodandevil.skyblock.island.Setting.Role role, String setting, Material material) {
SkyBlock skyblock = SkyBlock.getInstance();
FileManager fileManager = skyblock.getFileManager();
@ -157,7 +157,7 @@ public class Settings implements Listener {
String roleName = role.name();
if (role == me.goodandevil.skyblock.island.Settings.Role.Visitor || role == me.goodandevil.skyblock.island.Settings.Role.Member) {
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor || role == me.goodandevil.skyblock.island.Setting.Role.Member) {
roleName = "Default";
}
@ -209,16 +209,16 @@ public class Settings implements Listener {
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);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.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);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.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);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.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);
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.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")))) {
@ -226,23 +226,23 @@ public class Settings implements Listener {
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;
me.goodandevil.skyblock.island.Setting.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;
role = me.goodandevil.skyblock.island.Setting.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;
role = me.goodandevil.skyblock.island.Setting.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;
role = me.goodandevil.skyblock.island.Setting.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;
role = me.goodandevil.skyblock.island.Setting.Role.Owner;
roleName = role.name();
rolePermissionName = role.name();
}

View File

@ -0,0 +1,661 @@
package me.goodandevil.skyblock.menus.admin;
import java.io.File;
import java.io.IOException;
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.inventory.ClickType;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.PotionData;
import org.bukkit.potion.PotionType;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.config.FileManager;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.upgrade.UpgradeManager;
import me.goodandevil.skyblock.utils.AnvilGUI;
import me.goodandevil.skyblock.utils.NumberUtil;
import me.goodandevil.skyblock.utils.item.nInventoryUtil;
import me.goodandevil.skyblock.utils.item.nInventoryUtil.ClickEvent;
import me.goodandevil.skyblock.utils.item.nInventoryUtil.ClickEventHandler;
import me.goodandevil.skyblock.utils.version.Materials;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import me.goodandevil.skyblock.utils.version.Sounds;
public class Upgrade {
private static Upgrade instance;
public static Upgrade getInstance(){
if(instance == null) {
instance = new Upgrade();
}
return instance;
}
@SuppressWarnings("deprecation")
public void open(Player player) {
SkyBlock skyblock = SkyBlock.getInstance();
PlayerDataManager playerDataManager = skyblock.getPlayerDataManager();
MessageManager messageManager = skyblock.getMessageManager();
UpgradeManager upgradeManager = skyblock.getUpgradeManager();
SoundManager soundManager = skyblock.getSoundManager();
FileManager fileManager = skyblock.getFileManager();
if (playerDataManager.hasPlayerData(player) && playerDataManager.getPlayerData(player).getViewer() != null) {
FileConfiguration configLoad = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml")).getFileConfiguration();
Viewer viewer = (Upgrade.Viewer) playerDataManager.getPlayerData(player).getViewer();
if (viewer == null || viewer.getType() == Upgrade.Viewer.Type.Upgrades) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (!(player.hasPermission("skyblock.admin.upgrade") || player.hasPermission("skyblock.admin.*") || player.hasPermission("skyblock.*"))) {
messageManager.sendMessage(player, configLoad.getString("Island.Admin.Upgrade.Permission.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
ItemStack is = event.getItem();
me.goodandevil.skyblock.upgrade.Upgrade upgrade = null;
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
return;
} else if ((is.getType() == Material.POTION) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Speed.Displayname")))) {
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed).get(0);
viewer.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed);
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Jump.Displayname")))) {
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump).get(0);
viewer.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump);
}
} else if ((is.getType() == Materials.WHEAT_SEEDS.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Crop.Displayname"))))) {
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop).get(0);
viewer.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop);
} else if ((is.getType() == Material.FEATHER) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Fly.Displayname"))))) {
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly).get(0);
viewer.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly);
} else if ((is.getType() == Material.SPIDER_EYE) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Drops.Displayname"))))) {
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops).get(0);
viewer.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops);
} else if ((is.getType() == Material.BEACON) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Size.Displayname"))))) {
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size).get(0);
viewer.setType(Upgrade.Viewer.Type.Size);
viewer.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size);
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else if ((is.getType() == Materials.SPAWNER.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Spawner.Displayname"))))) {
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner).get(0);
viewer.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner);
}
if (upgrade != null) {
if (event.getClick() == ClickType.LEFT) {
if (upgrade.isEnabled()) {
upgrade.setEnabled(false);
} else {
upgrade.setEnabled(true);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else if (event.getClick() == ClickType.RIGHT) {
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
AnvilGUI gui = new AnvilGUI(player, event1 -> {
if (event1.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) {
if (!(player.hasPermission("skyblock.admin.upgrade") || player.hasPermission("skyblock.admin.*") || player.hasPermission("skyblock.*"))) {
messageManager.sendMessage(player, configLoad.getString("Island.Admin.Upgrade.Permission.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
if (playerDataManager.hasPlayerData(player) && playerDataManager.getPlayerData(player) != null) {
if (!(event1.getName().matches("[0-9]+") || event1.getName().matches("([0-9]*)\\.([0-9]{2}$)"))) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Numerical.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event1.setWillClose(false);
event1.setWillDestroy(false);
return;
}
double upgradeCost = Double.valueOf(event1.getName());
me.goodandevil.skyblock.upgrade.Upgrade.Type upgradeType = ((Viewer) playerDataManager.getPlayerData(player).getViewer()).getUpgrade();
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgradeManager.getUpgrades(upgradeType).get(0);
upgrade.setCost(upgradeCost);
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
Config config = fileManager.getConfig(new File(skyblock.getDataFolder(), "upgrades.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
configLoad.set("Upgrades." + upgradeType.name() + ".Cost", upgradeCost);
try {
configLoad.save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
}
});
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
}
event1.setWillClose(true);
event1.setWillDestroy(true);
} else {
event1.setWillClose(false);
event1.setWillDestroy(false);
}
});
ItemStack is = new ItemStack(Material.NAME_TAG);
ItemMeta im = is.getItemMeta();
im.setDisplayName(configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Word.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
}
}, 1L);
} else {
event.setWillClose(false);
event.setWillDestroy(false);
}
}
}
});
ItemStack potion = new ItemStack(Material.POTION);
me.goodandevil.skyblock.upgrade.Upgrade upgrade;
int NMSVersion = NMSUtil.getVersionNumber();
if (NMSVersion > 12) {
PotionMeta pm = (PotionMeta) potion.getItemMeta();
pm.setBasePotionData(new PotionData(PotionType.SPEED));
potion.setItemMeta(pm);
} else {
potion = new ItemStack(Material.POTION, 1, (short) 8194);
}
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed).get(0);
nInv.addItem(nInv.createItem(potion, ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Speed.Displayname")), configLoad.getStringList("Menu.Admin.Upgrade.Upgrades.Item.Speed.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(upgrade) }), null, new ItemFlag[] { ItemFlag.HIDE_POTION_EFFECTS }), 1);
if (NMSVersion > 12) {
PotionMeta pm = (PotionMeta) potion.getItemMeta();
pm.setBasePotionData(new PotionData(PotionType.JUMP));
potion.setItemMeta(pm);
} else {
potion = new ItemStack(Material.POTION, 1, (short) 8203);
}
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump).get(0);
nInv.addItem(nInv.createItem(potion, ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Jump.Displayname")), configLoad.getStringList("Menu.Admin.Upgrade.Upgrades.Item.Jump.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(upgrade) }), null, new ItemFlag[] { ItemFlag.HIDE_POTION_EFFECTS }), 2);
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop).get(0);
nInv.addItem(nInv.createItem(Materials.WHEAT_SEEDS.parseItem(), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Crop.Displayname")), configLoad.getStringList("Menu.Admin.Upgrade.Upgrades.Item.Crop.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(upgrade) }), null, null), 3);
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly).get(0);
nInv.addItem(nInv.createItem(new ItemStack(Material.FEATHER), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Fly.Displayname")), configLoad.getStringList("Menu.Admin.Upgrade.Upgrades.Item.Fly.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(upgrade) }), null, null), 4);
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops).get(0);
nInv.addItem(nInv.createItem(new ItemStack(Material.SPIDER_EYE), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Drops.Displayname")), configLoad.getStringList("Menu.Admin.Upgrade.Upgrades.Item.Drops.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(upgrade) }), null, null), 5);
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size);
int upgradeTiers = 0;
if (upgrades != null) {
upgradeTiers = upgrades.size();
}
nInv.addItem(nInv.createItem(new ItemStack(Material.BEACON), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Size.Displayname")), configLoad.getStringList("Menu.Admin.Upgrade.Upgrades.Item.Size.Lore"), nInv.createItemLoreVariable(new String[] { "%tiers#" + upgradeTiers }), null, null), 6);
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner).get(0);
nInv.addItem(nInv.createItem(Materials.SPAWNER.parseItem(), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Spawner.Displayname")), configLoad.getStringList("Menu.Admin.Upgrade.Upgrades.Item.Spawner.Lore"), nInv.createItemLoreVariable(new String[] { "%cost#" + NumberUtil.formatNumber(upgrade.getCost()), "%status#" + getStatus(upgrade) }), null, null), 7);
nInv.addItem(nInv.createItem(Materials.OAK_FENCE_GATE.parseItem(), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Exit.Displayname")), null, null, null, null), 0, 8);
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Title")));
nInv.setRows(1);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
} else if (viewer.getType() == Upgrade.Viewer.Type.Size) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (!(player.hasPermission("skyblock.admin.upgrade") || player.hasPermission("skyblock.admin.*") || player.hasPermission("skyblock.*"))) {
messageManager.sendMessage(player, configLoad.getString("Island.Admin.Upgrade.Permission.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
ItemStack is = event.getItem();
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Size.Item.Return.Displayname"))))) {
playerData.setViewer(new Upgrade.Viewer(Upgrade.Viewer.Type.Upgrades, null));
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Size.Item.Information.Displayname"))))) {
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size);
if (upgrades != null && upgrades.size() >= 5) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Tier.Limit.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else {
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
AnvilGUI gui = new AnvilGUI(player, event1 -> {
if (event1.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) {
if (playerDataManager.hasPlayerData(player) && playerDataManager.getPlayerData(player) != null) {
if (!event1.getName().matches("[0-9]+")) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Numerical.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event1.setWillClose(false);
event1.setWillDestroy(false);
return;
} else {
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size);
if (upgrades != null && upgrades.size() >= 5) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Tier.Limit.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
return;
}
}
int size = Integer.valueOf(event1.getName());
if (size > 1000) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Tier.Size.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
} else if (upgradeManager.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size, size)) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Tier.Exist.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event1.setWillClose(false);
event1.setWillDestroy(false);
return;
}
soundManager.playSound(player, Sounds.ANVIL_USE.bukkitSound(), 1.0F, 1.0F);
upgradeManager.addUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size, size);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
}
event1.setWillClose(true);
event1.setWillDestroy(true);
} else {
event1.setWillClose(false);
event1.setWillDestroy(false);
}
});
ItemStack is = new ItemStack(Material.NAME_TAG);
ItemMeta im = is.getItemMeta();
im.setDisplayName(configLoad.getString("Menu.Admin.Upgrade.Size.Item.Word.Size.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
}
}, 1L);
}
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Size.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Material.PAPER) && (is.hasItemMeta())) {
int slot = event.getSlot();
int tier = slot - 3;
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size).get(tier);
if (upgrade != null) {
if (event.getClick() == ClickType.LEFT) {
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
AnvilGUI gui = new AnvilGUI(player, event1 -> {
if (event1.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) {
if (!(player.hasPermission("skyblock.admin.upgrade") || player.hasPermission("skyblock.admin.*") || player.hasPermission("skyblock.*"))) {
messageManager.sendMessage(player, configLoad.getString("Island.Admin.Upgrade.Permission.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
if (playerDataManager.hasPlayerData(player) && playerDataManager.getPlayerData(player) != null) {
if (!event1.getName().matches("[0-9]+")) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Numerical.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event1.setWillClose(false);
event1.setWillDestroy(false);
return;
} else if (upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size).get(tier) == null) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Tier.Selected.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
return;
}
int size = Integer.valueOf(event1.getName());
if (size > 1000) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Tier.Size.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
} else if (upgradeManager.hasUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size, size)) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Tier.Exist.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
soundManager.playSound(player, Sounds.ANVIL_USE.bukkitSound(), 1.0F, 1.0F);
upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size).get(tier).setValue(size);
fileManager.getConfig(new File(skyblock.getDataFolder(), "upgrades.yml")).getFileConfiguration().set("Upgrades.Size." + tier + ".Value", size);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
}
event1.setWillClose(true);
event1.setWillDestroy(true);
} else {
event1.setWillClose(false);
event1.setWillDestroy(false);
}
});
ItemStack is = new ItemStack(Material.NAME_TAG);
ItemMeta im = is.getItemMeta();
im.setDisplayName(configLoad.getString("Menu.Admin.Upgrade.Size.Item.Word.Size.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
}
}, 1L);
return;
} else if (event.getClick() == ClickType.MIDDLE) {
soundManager.playSound(player, Sounds.IRONGOLEM_HIT.bukkitSound(), 1.0F, 1.0F);
upgradeManager.removeUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size, upgrade.getCost(), upgrade.getValue());
} else if (event.getClick() == ClickType.RIGHT) {
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
AnvilGUI gui = new AnvilGUI(player, event1 -> {
if (event1.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) {
if (!(player.hasPermission("skyblock.admin.upgrade") || player.hasPermission("skyblock.admin.*") || player.hasPermission("skyblock.*"))) {
messageManager.sendMessage(player, configLoad.getString("Island.Admin.Upgrade.Permission.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
if (playerDataManager.hasPlayerData(player) && playerDataManager.getPlayerData(player) != null) {
if (!(event1.getName().matches("[0-9]+") || event1.getName().matches("([0-9]*)\\.([0-9]{2}$)"))) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Numerical.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event1.setWillClose(false);
event1.setWillDestroy(false);
return;
} else if (upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size).get(tier) == null) {
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Island.Admin.Upgrade.Tier.Selected.Message")));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
return;
}
double cost = Double.valueOf(event1.getName());
soundManager.playSound(player, Sounds.ANVIL_USE.bukkitSound(), 1.0F, 1.0F);
upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size).get(tier).setCost(cost);
fileManager.getConfig(new File(skyblock.getDataFolder(), "upgrades.yml")).getFileConfiguration().set("Upgrades.Size." + tier + ".Cost", cost);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
}
event1.setWillClose(true);
event1.setWillDestroy(true);
} else {
event1.setWillClose(false);
event1.setWillDestroy(false);
}
});
ItemStack is = new ItemStack(Material.NAME_TAG);
ItemMeta im = is.getItemMeta();
im.setDisplayName(configLoad.getString("Menu.Admin.Upgrade.Size.Item.Word.Cost.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
}
}, 1L);
return;
} else {
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
}
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
}
}
}
});
nInv.addItem(nInv.createItem(Materials.OAK_FENCE_GATE.parseItem(), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Size.Item.Return.Displayname")), null, null, null, null), 0);
nInv.addItem(nInv.createItem(new ItemStack(Material.PAINTING), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Size.Item.Information.Displayname")), configLoad.getStringList("Menu.Admin.Upgrade.Size.Item.Information.Lore"), null, null, null), 1);
nInv.addItem(nInv.createItem(Materials.BLACK_STAINED_GLASS_PANE.parseItem(), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Size.Item.Barrier.Displayname")), null, null, null, null), 2);
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size);
if (upgrades != null) {
for (int i = 0; i < 5; i++) {
if (upgrades.size() >= i+1) {
me.goodandevil.skyblock.upgrade.Upgrade upgrade = upgrades.get(i);
int tier = i + 1;
if (upgrade != null) {
nInv.addItem(nInv.createItem(new ItemStack(Material.PAPER, tier), ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Size.Item.Tier.Displayname").replace("%tier", "" + tier)), configLoad.getStringList("Menu.Admin.Upgrade.Size.Item.Tier.Lore"), nInv.createItemLoreVariable(new String[] { "%size#" + upgrade.getValue(), "%cost#" + NumberUtil.formatNumber(upgrade.getCost()) }), null, null), i + 3);
}
}
}
}
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Size.Title")));
nInv.setRows(1);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
}
}
}
private String getStatus(me.goodandevil.skyblock.upgrade.Upgrade upgrade) {
SkyBlock skyblock = SkyBlock.getInstance();
FileConfiguration configLoad = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml")).getFileConfiguration();
if (upgrade.isEnabled()) {
return configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Word.Disable");
} else {
return configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Word.Enable");
}
}
public static class Viewer {
private Type type;
private me.goodandevil.skyblock.upgrade.Upgrade.Type upgrade;
public Viewer(Type type, me.goodandevil.skyblock.upgrade.Upgrade.Type upgrade) {
this.type = type;
this.upgrade = upgrade;
}
public Type getType() {
return type;
}
public void setType(Type type) {
this.type = type;
}
public me.goodandevil.skyblock.upgrade.Upgrade.Type getUpgrade() {
return upgrade;
}
public void setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type upgrade) {
this.upgrade = upgrade;
}
public enum Type {
Upgrades,
Size;
}
}
}

View File

@ -148,6 +148,8 @@ public class PlayerDataManager {
}
}
islandManager.giveUpgrades(player, island);
ScoreboardManager scoreboardManager = skyblock.getScoreboardManager();
if (scoreboardManager != null) {
@ -218,6 +220,12 @@ public class PlayerDataManager {
islandManager.loadIsland(visitIslandList);
Island island = islandManager.getIsland(visitIslandList);
if (island != null) {
islandManager.giveUpgrades(player, island);
}
return;
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Closed.Island.Message").replace("%player", targetPlayerName));

View File

@ -0,0 +1,53 @@
package me.goodandevil.skyblock.upgrade;
public class Upgrade {
private double cost;
private int value;
private boolean enabled = true;
public Upgrade(double cost) {
this.cost = cost;
}
public Upgrade(double cost, int value) {
this.cost = cost;
this.value = value;
}
public double getCost() {
return cost;
}
public void setCost(double cost) {
this.cost = cost;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public enum Type {
Crop,
Spawner,
Fly,
Drops,
Size,
Speed,
Jump;
}
}

View File

@ -0,0 +1,138 @@
package me.goodandevil.skyblock.upgrade;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.configuration.file.FileConfiguration;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.config.FileManager.Config;
public class UpgradeManager {
private SkyBlock skyblock;
private Map<Upgrade.Type, List<Upgrade>> upgradeStorage = new HashMap<>();
public UpgradeManager(SkyBlock skyblock) {
this.skyblock = skyblock;
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "upgrades.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
for (Upgrade.Type typeList : Upgrade.Type.values()) {
if (typeList != Upgrade.Type.Size) {
List<Upgrade> upgrades = new ArrayList<>();
Upgrade upgrade = new Upgrade(configLoad.getDouble("Upgrades." + typeList.name() + ".Cost"));
upgrade.setEnabled(configLoad.getBoolean("Upgrades." + typeList.name() + ".Enable"));
upgrades.add(upgrade);
upgradeStorage.put(typeList, upgrades);
}
}
if (configLoad.getString("Upgrades.Size") != null) {
List<Upgrade> upgrades = new ArrayList<>();
for (String tierList : configLoad.getConfigurationSection("Upgrades.Size").getKeys(false)) {
if (configLoad.getString("Upgrades.Size." + tierList + ".Value") != null) {
if (configLoad.getInt("Upgrades.Size." + tierList + ".Value") > 1000) {
continue;
}
}
upgrades.add(new Upgrade(configLoad.getDouble("Upgrades.Size." + tierList + ".Cost"), configLoad.getInt("Upgrades.Size." + tierList + ".Value")));
if (upgrades.size() == 5) {
break;
}
}
upgradeStorage.put(Upgrade.Type.Size, upgrades);
}
}
public List<Upgrade> getUpgrades(Upgrade.Type type) {
if (upgradeStorage.containsKey(type)) {
return upgradeStorage.get(type);
}
return null;
}
public void addUpgrade(Upgrade.Type type, int value) {
List<Upgrade> upgrades = new ArrayList<Upgrade>();
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "upgrades.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
if (configLoad.getString("Upgrades.Size") != null) {
for (String tierList : configLoad.getConfigurationSection("Upgrades.Size").getKeys(false)) {
upgrades.add(new Upgrade(configLoad.getDouble("Upgrades.Size." + tierList + ".Cost"), configLoad.getInt("Upgrades.Size." + tierList + ".Value")));
if (upgrades.size() == 4) {
break;
}
}
}
upgrades.add(new Upgrade(0, value));
configLoad.set("Upgrades.Size", null);
for (int i = 0; i < upgrades.size(); i++) {
Upgrade upgrade = upgrades.get(i);
configLoad.set("Upgrades.Size." + i + ".Value", upgrade.getValue());
configLoad.set("Upgrades.Size." + i + ".Cost", upgrade.getCost());
}
upgradeStorage.put(type, upgrades);
try {
configLoad.save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
}
public void removeUpgrade(Upgrade.Type type, double cost, int value) {
for (Upgrade upgradeList : upgradeStorage.get(type)) {
if (upgradeList.getCost() == cost && upgradeList.getValue() == value) {
List<Upgrade> upgrades = upgradeStorage.get(type);
upgrades.remove(upgradeList);
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "upgrades.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
configLoad.set("Upgrades.Size", null);
for (int i = 0; i < upgrades.size(); i++) {
Upgrade upgrade = upgrades.get(i);
configLoad.set("Upgrades.Size." + i + ".Value", upgrade.getValue());
configLoad.set("Upgrades.Size." + i + ".Cost", upgrade.getCost());
}
try {
configLoad.save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
return;
}
}
}
public boolean hasUpgrade(Upgrade.Type type, int value) {
for (Upgrade upgradeList : upgradeStorage.get(type)) {
if (upgradeList.getValue() == value) {
return true;
}
}
return false;
}
}

View File

@ -8,6 +8,23 @@ public final class NumberUtil {
return String.format("%,d", number);
}
public static String formatNumber(double number) {
String withoutDecimal = String.valueOf(number), withDecimal = "";
if (withoutDecimal.contains(".")) {
withDecimal = "." + withoutDecimal.split("\\.")[1];
withoutDecimal = withoutDecimal.replace(withDecimal, "");
}
if (withDecimal.equals(".0")) {
withDecimal = "";
}
int itemCostWithoutDecimalValue = Integer.valueOf(withoutDecimal);
return formatNumber(itemCostWithoutDecimalValue) + withDecimal;
}
public static long[] getDuration(int time) {
long seconds = time % 60;
long minutes = time % 3600 / 60;

View File

@ -191,7 +191,7 @@ public class nInventoryUtil {
return inv;
}
private class Item {
public class Item {
private ItemStack is;
private String itemDisplayname;

Binary file not shown.

35
upgrades.yml Normal file
View File

@ -0,0 +1,35 @@
Upgrades:
Speed:
Enable: true
Cost: 100000
Jump:
Enable: true
Cost: 100000
Crop:
Enable: true
Cost: 100000
Fly:
Enable: true
Cost: 100000
Drops:
Enable: true
Cost: 100000
Size:
0:
Value: 150
Cost: 100000
1:
Value: 200
Cost: 200000
2:
Value: 250
Cost: 300000
3:
Value: 300
Cost: 400000
4:
Value: 350
Cost: 500000
Spawner:
Enable: true
Cost: 100000