Merge branch 'development' into 'master'

1.14 support and some bug fixes

See merge request Songoda/fabledskyblock!12
This commit is contained in:
Esophose 2019-04-27 20:55:46 +00:00
commit ada4938bb4
60 changed files with 5052 additions and 5141 deletions

View File

@ -2,7 +2,7 @@ import org.apache.tools.ant.filters.ReplaceTokens
apply plugin: 'java'
group 'com.songoda.fabledskyblock'
version 'Build-73'
version 'Build-74'
sourceCompatibility = 1.8
@ -15,6 +15,11 @@ repositories {
}
}
configurations {
shade
compile.extendsFrom shade
}
dependencies {
// PlaceholderAPI
implementation (group: 'be.maximvdw', name: 'placeholderapi', version: '2.5.1')
@ -32,13 +37,29 @@ dependencies {
// WildStacker
implementation (group: 'com.bgsoftware', name: 'wildstacker-api', version: 'b14')
// Apache Commons
shade (group: 'org.apache.commons', name: 'commons-lang3', version: '3.0')
shade (group: 'commons-io', name: 'commons-io', version: '2.5')
// Songoda Updater
shade (group: 'com.songoda', name: 'songodaupdater', version: '1')
// Spigot
implementation (group: 'org.spigotmc', name: 'spigot', version: '1.13.2')
implementation (group: 'org.spigotmc', name: 'spigot', version: '1.14')
}
processResources {
filter ReplaceTokens, tokens: ["version": project.property("version")]
from (sourceSets.main.resources.srcDirs) {
include '**/*.yml'
}
from (sourceSets.main.resources.srcDirs) {
include '**/*.yml'
filter ReplaceTokens, tokens: ["version": project.property("version")]
}
}
jar {
configurations.shade.each { dep ->
from (project.zipTree(dep)) {
exclude '**/*.yml'
exclude 'META-INF', 'META-INF/**'
}
}
}

View File

@ -1,5 +1,7 @@
package me.goodandevil.skyblock;
import com.songoda.update.Plugin;
import com.songoda.update.SongodaUpdate;
import me.goodandevil.skyblock.api.SkyBlockAPI;
import me.goodandevil.skyblock.ban.BanManager;
import me.goodandevil.skyblock.biome.BiomeManager;
@ -30,6 +32,7 @@ import me.goodandevil.skyblock.stackable.StackableManager;
import me.goodandevil.skyblock.structure.StructureManager;
import me.goodandevil.skyblock.upgrade.UpgradeManager;
import me.goodandevil.skyblock.usercache.UserCacheManager;
import me.goodandevil.skyblock.utils.Metrics;
import me.goodandevil.skyblock.visit.VisitManager;
import me.goodandevil.skyblock.visit.VisitTask;
import me.goodandevil.skyblock.world.WorldManager;
@ -114,11 +117,7 @@ public class SkyBlock extends JavaPlugin {
if (fileManager.getConfig(new File(getDataFolder(), "config.yml")).getFileConfiguration()
.getBoolean("Island.Stackable.Enable")) {
stackableManager = new StackableManager(this);
new BukkitRunnable() {
public void run() {
stackableManager.loadSavedStackables();
}
}.runTaskLater(this, 5L);
Bukkit.getScheduler().scheduleSyncDelayedTask(this, () -> stackableManager.loadSavedStackables(), 5L);
}
leaderboardManager = new LeaderboardManager(this);
@ -164,6 +163,13 @@ public class SkyBlock extends JavaPlugin {
this.getCommand("skyblock").setExecutor(new SkyBlockCommand());
// bStats Metrics
new Metrics(this);
// Songoda Updater
Plugin plugin = new Plugin(this, 17);
SongodaUpdate.load(plugin);
SkyBlockAPI.setImplementation(instance);
}

View File

@ -12,7 +12,7 @@ public class IslandCreateEvent extends IslandEvent {
private final Player player;
public IslandCreateEvent(Island island, Player player) {
super(island);
super(island, true);
this.player = player;
}

View File

@ -12,6 +12,11 @@ public abstract class IslandEvent extends Event {
this.island = island;
}
protected IslandEvent(Island island, boolean async) {
super(async);
this.island = island;
}
public Island getIsland() {
return island;
}

View File

@ -12,7 +12,7 @@ public class IslandLevelChangeEvent extends IslandEvent {
private final IslandLevel level;
public IslandLevelChangeEvent(Island island, IslandLevel level) {
super(island);
super(island, true);
this.level = level;
}

View File

@ -12,7 +12,7 @@ public class IslandLocationChangeEvent extends IslandEvent {
private final IslandLocation location;
public IslandLocationChangeEvent(Island island, IslandLocation location) {
super(island);
super(island, true);
this.location = location;
}

View File

@ -15,6 +15,12 @@ public abstract class PlayerEvent extends Event {
this.island = island;
}
protected PlayerEvent(Player player, Island island, boolean async) {
super(async);
this.player = player;
this.island = island;
}
public Player getPlayer() {
return player;
}

View File

@ -106,162 +106,157 @@ public class CommandManager implements CommandExecutor, TabCompleter {
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
if (command.getName().equalsIgnoreCase("island")) {
new BukkitRunnable() {
@Override
public void run() {
MessageManager messageManager = skyblock.getMessageManager();
SoundManager soundManager = skyblock.getSoundManager();
FileManager fileManager = skyblock.getFileManager();
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();
Config config = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
Player player = null;
Player player = null;
if (sender instanceof Player) {
player = (Player) sender;
}
if (sender instanceof Player) {
player = (Player) sender;
}
if (args.length == 0) {
if (player == null) {
sendConsoleHelpCommands(sender);
} else {
if (skyblock.getIslandManager().getIsland(player) == null) {
Bukkit.getServer().getScheduler().runTask(skyblock, () -> Bukkit.getServer().dispatchCommand(sender, "island create"));
} else {
boolean canUseControlPanel = player.hasPermission("fabledskyblock.*")
|| player.hasPermission("fabledskyblock.island.*")
|| player.hasPermission("fabledskyblock.island.controlpanel");
if (!canUseControlPanel) {
messageManager.sendMessage(player, configLoad.getString("Command.PermissionDenied.Island.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
ControlPanel.getInstance().open(player);
soundManager.playSound(player, Sounds.CHEST_OPEN.bukkitSound(), 1.0F, 1.0F);
}
}
return;
}
SubCommand subCommand;
boolean isAdmin;
if (args[0].equalsIgnoreCase("help")) {
if (player == null) {
sendConsoleHelpCommands(sender);
} else {
boolean canUseHelp = player.hasPermission("fabledskyblock.*")
|| player.hasPermission("fabledskyblock.island.*")
|| player.hasPermission("fabledskyblock.island.help");
if (!canUseHelp) {
messageManager.sendMessage(player, configLoad.getString("Command.PermissionDenied.Island.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
int page = -1;
if (!fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Command.Help.List")) {
page = 1;
if (args.length == 2) {
if (args[1].matches("[0-9]+")) {
page = Integer.valueOf(args[1]);
} else {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Help.Integer.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
}
}
sendPlayerIslandHelpCommands(player, page);
}
return;
} else if (args[0].equalsIgnoreCase("admin")) {
if (args.length == 1 || args[1].equalsIgnoreCase("help")) {
if (player == null) {
sendConsoleHelpCommands(sender);
} else {
boolean canUseHelp = player.hasPermission("fabledskyblock.*")
|| player.hasPermission("fabledskyblock.admin.*")
|| player.hasPermission("fabledskyblock.admin.help");
if (!canUseHelp) {
messageManager.sendMessage(player, configLoad.getString("Command.PermissionDenied.Admin.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
int page = -1;
if (!fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Command.Help.List")) {
page = 1;
if (args.length == 3) {
if (args[2].matches("[0-9]+")) {
page = Integer.valueOf(args[2]);
} else {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Help.Integer.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F,
1.0F);
return;
}
}
}
sendPlayerAdminHelpCommands(player, page);
}
return;
}
subCommand = getAdminSubCommand(args[1]);
isAdmin = true;
if (args.length == 0) {
if (player == null) {
sendConsoleHelpCommands(sender);
} else {
if (skyblock.getIslandManager().getIsland(player) == null) {
Bukkit.getServer().getScheduler().runTask(skyblock, () -> Bukkit.getServer().dispatchCommand(sender, "island create"));
} else {
subCommand = getIslandSubCommand(args[0]);
isAdmin = false;
}
boolean canUseControlPanel = player.hasPermission("fabledskyblock.*")
|| player.hasPermission("fabledskyblock.island.*")
|| player.hasPermission("fabledskyblock.island.controlpanel");
if (subCommand == null) {
messageManager.sendMessage(sender, configLoad.getString("Command.Island.Argument.Unrecognised.Message"));
soundManager.playSound(sender, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
return;
}
if (!canUseControlPanel) {
messageManager.sendMessage(player, configLoad.getString("Command.PermissionDenied.Island.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return true;
}
if (!subCommand.hasPermission(sender, isAdmin)) {
messageManager.sendMessage(sender, configLoad.getString("Command.PermissionDenied." + (isAdmin ? "Admin" : "Island") + ".Message"));
soundManager.playSound(sender, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
List<String> arguments = new ArrayList<>(Arrays.asList(args));
arguments.remove(args[0]);
if (adminCommands.contains(subCommand)) {
arguments.remove(args[1]);
}
if (sender instanceof Player) {
subCommand.onCommandByPlayer(player, arguments.toArray(new String[0]));
} else if (sender instanceof ConsoleCommandSender) {
subCommand.onCommandByConsole((ConsoleCommandSender) sender,
arguments.toArray(new String[0]));
ControlPanel.getInstance().open(player);
soundManager.playSound(player, Sounds.CHEST_OPEN.bukkitSound(), 1.0F, 1.0F);
}
}
}.runTaskAsynchronously(skyblock);
return true;
}
SubCommand subCommand;
boolean isAdmin;
if (args[0].equalsIgnoreCase("help")) {
if (player == null) {
sendConsoleHelpCommands(sender);
} else {
boolean canUseHelp = player.hasPermission("fabledskyblock.*")
|| player.hasPermission("fabledskyblock.island.*")
|| player.hasPermission("fabledskyblock.island.help");
if (!canUseHelp) {
messageManager.sendMessage(player, configLoad.getString("Command.PermissionDenied.Island.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return true;
}
int page = -1;
if (!fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Command.Help.List")) {
page = 1;
if (args.length == 2) {
if (args[1].matches("[0-9]+")) {
page = Integer.valueOf(args[1]);
} else {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Help.Integer.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return true;
}
}
}
sendPlayerIslandHelpCommands(player, page);
}
return true;
} else if (args[0].equalsIgnoreCase("admin")) {
if (args.length == 1 || args[1].equalsIgnoreCase("help")) {
if (player == null) {
sendConsoleHelpCommands(sender);
} else {
boolean canUseHelp = player.hasPermission("fabledskyblock.*")
|| player.hasPermission("fabledskyblock.admin.*")
|| player.hasPermission("fabledskyblock.admin.help");
if (!canUseHelp) {
messageManager.sendMessage(player, configLoad.getString("Command.PermissionDenied.Admin.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return true;
}
int page = -1;
if (!fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Command.Help.List")) {
page = 1;
if (args.length == 3) {
if (args[2].matches("[0-9]+")) {
page = Integer.valueOf(args[2]);
} else {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Help.Integer.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F,
1.0F);
return true;
}
}
}
sendPlayerAdminHelpCommands(player, page);
}
return true;
}
subCommand = getAdminSubCommand(args[1]);
isAdmin = true;
} else {
subCommand = getIslandSubCommand(args[0]);
isAdmin = false;
}
if (subCommand == null) {
messageManager.sendMessage(sender, configLoad.getString("Command.Island.Argument.Unrecognised.Message"));
soundManager.playSound(sender, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
return true;
}
if (!subCommand.hasPermission(sender, isAdmin)) {
messageManager.sendMessage(sender, configLoad.getString("Command.PermissionDenied." + (isAdmin ? "Admin" : "Island") + ".Message"));
soundManager.playSound(sender, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return true;
}
List<String> arguments = new ArrayList<>(Arrays.asList(args));
arguments.remove(args[0]);
if (adminCommands.contains(subCommand)) {
arguments.remove(args[1]);
}
if (sender instanceof Player) {
subCommand.onCommandByPlayer(player, arguments.toArray(new String[0]));
} else if (sender instanceof ConsoleCommandSender) {
subCommand.onCommandByConsole((ConsoleCommandSender) sender,
arguments.toArray(new String[0]));
}
}
return true;

View File

@ -37,27 +37,27 @@ public class LeaderboardCommand extends SubCommand {
.setViewer(new Leaderboard.Viewer(Leaderboard.Viewer.Type.Level));
}
} else if (args.length == 1) {
if (args[0].equalsIgnoreCase("level")) {
playerDataManager.getPlayerData(player)
.setViewer(new Leaderboard.Viewer(Leaderboard.Viewer.Type.Level));
} else if (args[0].equalsIgnoreCase("votes")) {
if (fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration()
.getBoolean("Island.Visitor.Vote")) {
playerDataManager.getPlayerData(player)
.setViewer(new Leaderboard.Viewer(Leaderboard.Viewer.Type.Votes));
} else {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Leaderboard.Disabled.Message"));
String type = args[0].toLowerCase();
switch (type) {
case "level":
playerDataManager.getPlayerData(player).setViewer(new Leaderboard.Viewer(Leaderboard.Viewer.Type.Level));
break;
case "bank":
playerDataManager.getPlayerData(player).setViewer(new Leaderboard.Viewer(Leaderboard.Viewer.Type.Bank));
break;
case "votes":
if (fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Visitor.Vote")) {
playerDataManager.getPlayerData(player).setViewer(new Leaderboard.Viewer(Leaderboard.Viewer.Type.Votes));
} else {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Leaderboard.Disabled.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
break;
default:
messageManager.sendMessage(player, configLoad.getString("Command.Island.Leaderboard.Invalid.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
} else {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Leaderboard.Invalid.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
} else {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Leaderboard.Invalid.Message"));
@ -93,6 +93,6 @@ public class LeaderboardCommand extends SubCommand {
@Override
public String[] getArguments() {
return new String[] { "level", "votes" };
return new String[] { "level", "bank", "votes" };
}
}

View File

@ -92,31 +92,20 @@ public class SetSpawnCommand extends SubCommand {
return;
} else {
if (LocationUtil.isLocationCentreOfBlock(location)) {
new BukkitRunnable() {
public void run() {
if (location.getBlock().getType() != Material.AIR && location.getBlock().getType() != Materials.MOVING_PISTON.parseMaterial()) {
location.getBlock().breakNaturally();
}
if (location.clone().add(0.0D, 1.0D, 0.0D).getBlock().getType() != Material.AIR && location.getBlock().getType() != Materials.MOVING_PISTON.parseMaterial()) {
location.clone().add(0.0D, 1.0D, 0.0D).getBlock().breakNaturally();
}
islandManager.removeSpawnProtection(island.getLocation(world, environment));
}
}.runTask(skyblock);
} else {
messageManager.sendMessage(player, configLoad
.getString("Command.Island.SetSpawn.Protection.Centre.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
if (location.getBlock().getType() != Material.AIR && location.getBlock().getType() != Materials.MOVING_PISTON.parseMaterial()) {
location.getBlock().breakNaturally();
}
if (location.clone().add(0.0D, 1.0D, 0.0D).getBlock().getType() != Material.AIR && location.getBlock().getType() != Materials.MOVING_PISTON.parseMaterial()) {
location.clone().add(0.0D, 1.0D, 0.0D).getBlock().breakNaturally();
}
islandManager.removeSpawnProtection(island.getLocation(world, environment));
}
}
island.setLocation(world, environment, location);
Location newSpawnLocation = new Location(location.getWorld(), location.getBlockX() + 0.5, location.getBlockY(), location.getBlockZ() + 0.5, location.getYaw(), location.getPitch());
island.setLocation(world, environment, newSpawnLocation);
messageManager.sendMessage(player,
configLoad.getString("Command.Island.SetSpawn.Set.Message").replace("%spawn",

View File

@ -113,12 +113,9 @@ public class TeleportCommand extends SubCommand {
configLoad.getString("Command.Island.Teleport.Teleported.Yourself.Message"));
soundManager.playSound(player, Sounds.ENDERMAN_TELEPORT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
player.teleport(island.getLocation(IslandWorld.Normal, IslandEnvironment.Main));
player.setFallDistance(0.0F);
}
Bukkit.getServer().getScheduler().runTask(skyblock, () -> {
player.teleport(island.getLocation(IslandWorld.Normal, IslandEnvironment.Main));
player.setFallDistance(0.0F);
});
}
}

View File

@ -27,12 +27,7 @@ public class VisitCommand extends SubCommand {
Visit.getInstance().open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
soundManager.playSound(player, Sounds.CHEST_OPEN.bukkitSound(), 1.0F, 1.0F);
} else if (args.length == 1) {
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(player, "island teleport " + args[0]);
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> Bukkit.getServer().dispatchCommand(player, "island teleport " + args[0]));
} else {
messageManager.sendMessage(player,
skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml"))

View File

@ -5,6 +5,7 @@ import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.plugin.RegisteredServiceProvider;
@ -53,9 +54,9 @@ public class EconomyManager {
Bukkit.getServer().getPluginManager().callEvent(new PlayerWithdrawMoneyEvent(player, money));
}
public boolean hasPermission(String world, OfflinePlayer player, String perm) {
public boolean hasPermission(String world, OfflinePlayer offlinePlayer, String perm) {
if (permission != null)
return permission.playerHas(world, player, perm);
return permission.playerHas(world, offlinePlayer, perm);
return false;
}

View File

@ -5,6 +5,7 @@ import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.utils.version.Materials;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import me.goodandevil.skyblock.utils.version.Sounds;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
@ -31,21 +32,21 @@ public class GeneratorManager {
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "generators.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
if (configLoad.getString("Generators") == null) return;
if (configLoad.getString("Generators") == null)
return;
Materials[] oreMaterials = new Materials[]{Materials.COAL, Materials.CHARCOAL, Materials.DIAMOND,
Materials.IRON_INGOT, Materials.GOLD_INGOT, Materials.EMERALD};
Random rnd = new Random();
for (String generatorList : configLoad.getConfigurationSection("Generators").getKeys(false)) {
if (configLoad.getString("Generators." + generatorList + ".Name") == null) continue;
if (configLoad.getString("Generators." + generatorList + ".Name") == null)
continue;
List<GeneratorMaterial> generatorMaterials = new ArrayList<>();
if (configLoad.getString("Generators." + generatorList + ".Materials") != null) {
for (String materialList : configLoad
.getConfigurationSection("Generators." + generatorList + ".Materials").getKeys(false)) {
for (String materialList : configLoad.getConfigurationSection("Generators." + generatorList + ".Materials").getKeys(false)) {
Materials materials = Materials.fromString(materialList);
if (materials != null) {
generatorMaterials.add(new GeneratorMaterial(materials, configLoad.getDouble(
"Generators." + generatorList + ".Materials." + materialList + ".Chance")));
@ -231,13 +232,11 @@ public class GeneratorManager {
@SuppressWarnings("deprecation")
public BlockState generateBlock(Generator generator, Block block) {
block.setType(Material.AIR);
Materials materials = getRandomMaterials(generator);
if (materials == null)
return block.getState();
if (materials == null) return block.getState();
skyblock.getSoundManager().playSound(block.getLocation(), Sounds.FIZZ.bukkitSound(),
1.0F, 10.0F);
skyblock.getSoundManager().playSound(block.getLocation(), Sounds.FIZZ.bukkitSound(), 1.0F, 10.0F);
if (NMSUtil.getVersionNumber() > 12) {
block.setType(materials.parseMaterial());
@ -246,8 +245,7 @@ public class GeneratorManager {
block.setType(is.getType());
try {
block.getClass().getMethod("setData", byte.class).invoke(block,
(byte) is.getDurability());
block.getClass().getMethod("setData", byte.class).invoke(block, (byte) is.getDurability());
} catch (IllegalAccessException | IllegalArgumentException
| InvocationTargetException | NoSuchMethodException | SecurityException e) {
e.printStackTrace();
@ -259,23 +257,13 @@ public class GeneratorManager {
public Materials getRandomMaterials(Generator generator) {
if (generator.getGeneratorMaterials() != null && generator.getGeneratorMaterials().size() != 0) {
Map<Integer, Integer> chances = new HashMap<>();
List<Materials> weightedList = new ArrayList<>();
for (GeneratorMaterial generatorMaterial : generator.getGeneratorMaterials())
for (int i = 0; i < generatorMaterial.getChance() * 30; i++)
weightedList.add(generatorMaterial.getMaterials());
for (int index = 0; index < generator.getGeneratorMaterials().size(); index++) {
GeneratorMaterial generatorMaterial = generator.getGeneratorMaterials().get(index);
for (int i = 0; i < generatorMaterial.getChance(); i++) {
chances.put(chances.size() + 1, index);
}
}
if (chances.size() != 0) {
int rndNum = new Random().nextInt(chances.size());
if (rndNum != 0) {
return generator.getGeneratorMaterials().get(chances.get(rndNum)).getMaterials();
}
}
int choice = new Random().nextInt(weightedList.size());
return weightedList.get(choice);
}
return Materials.COBBLESTONE;

View File

@ -52,8 +52,7 @@ public class LeaderboardManager {
for (int i = 0; i < visitManager.getIslands().size(); i++) {
UUID ownerUUID = (UUID) visitManager.getIslands().keySet().toArray()[i];
if (enableExemptions && economyManager.hasPermission(
worldManager.getWorld(IslandWorld.Normal).getName(),
if (enableExemptions && economyManager.hasPermission(worldManager.getWorld(IslandWorld.Normal).getName(),
Bukkit.getOfflinePlayer(ownerUUID),
"fabledskyblock.island.top.exempt"))
continue;

View File

@ -5,6 +5,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.Bukkit;
@ -105,23 +106,27 @@ public class Chunk {
}
private void sendPercentMessage(int percent) {
String message = ChatColor.translateAlternateColorCodes('&',
this.skyblock.getFileManager()
.getConfig(new File(this.skyblock.getDataFolder(), "language.yml"))
.getFileConfiguration().getString("Command.Island.Level.Scanning.Progress.Message")
.replace("%percent", String.valueOf(percent)));
for (Player player : this.skyblock.getIslandManager().getPlayersAtIsland(this.island)) {
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message));
}
if (NMSUtil.getVersionNumber() > 8) {
String message = ChatColor.translateAlternateColorCodes('&',
this.skyblock.getFileManager()
.getConfig(new File(this.skyblock.getDataFolder(), "language.yml"))
.getFileConfiguration().getString("Command.Island.Level.Scanning.Progress.Message")
.replace("%percent", String.valueOf(percent)));
for (Player player : this.skyblock.getIslandManager().getPlayersAtIsland(this.island)) {
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message));
}
}
}
private void sendFinishedMessage() {
String message = ChatColor.translateAlternateColorCodes('&', this.skyblock.getFileManager()
.getConfig(new File(this.skyblock.getDataFolder(), "language.yml"))
.getFileConfiguration().getString("Command.Island.Level.Scanning.Finished.Message"));
for (Player player : this.skyblock.getIslandManager().getPlayersAtIsland(this.island)) {
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message));
}
if (NMSUtil.getVersionNumber() > 8) {
String message = ChatColor.translateAlternateColorCodes('&', this.skyblock.getFileManager()
.getConfig(new File(this.skyblock.getDataFolder(), "language.yml"))
.getFileConfiguration().getString("Command.Island.Level.Scanning.Finished.Message"));
for (Player player : this.skyblock.getIslandManager().getPlayersAtIsland(this.island)) {
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message));
}
}
}
private void getChunksToScan(IslandWorld islandWorld) {

View File

@ -12,7 +12,11 @@ import me.goodandevil.skyblock.utils.version.Materials;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import me.goodandevil.skyblock.utils.version.Sounds;
import me.goodandevil.skyblock.world.WorldManager;
import org.bukkit.*;
import org.bukkit.Bukkit;
import org.bukkit.ChunkSnapshot;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.EntityType;
@ -22,7 +26,11 @@ import org.bukkit.scheduler.BukkitRunnable;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.logging.Level;
public class LevellingManager {
@ -63,6 +71,13 @@ public class LevellingManager {
Map<LevellingData, Long> levellingData = new HashMap<>();
List<Material> blacklistedMaterials = new ArrayList<>();
blacklistedMaterials.add(Materials.AIR.getPostMaterial());
blacklistedMaterials.add(Materials.WATER.getPostMaterial());
blacklistedMaterials.add(Materials.LEGACY_STATIONARY_WATER.getPostMaterial());
blacklistedMaterials.add(Materials.LAVA.getPostMaterial());
blacklistedMaterials.add(Materials.LEGACY_STATIONARY_LAVA.getPostMaterial());
new BukkitRunnable() {
@Override
public void run() {
@ -118,14 +133,14 @@ public class LevellingManager {
blockData = (int) getBlockTypeDataMethod.invoke(chunkSnapshotList, x, y, z);
}
if (blockMaterial == org.bukkit.Material.AIR)
if (blacklistedMaterials.contains(blockMaterial))
continue;
long amount = 1;
if (blockMaterial == Materials.SPAWNER.parseMaterial()) {
World world = Bukkit.getWorld(chunkSnapshotList.getWorldName());
Location location = new Location(world, chunkSnapshotList.getX() * 16 + x, y, chunkSnapshotList.getZ() * 16 + z);
Location location = new Location(world, chunkSnapshotList.getX() * 16 + x, y, chunkSnapshotList.getZ() * 16 + z);
if (isEpicSpawnersEnabled) {
com.songoda.epicspawners.api.EpicSpawners epicSpawners = com.songoda.epicspawners.api.EpicSpawnersAPI.getImplementation();
@ -134,20 +149,24 @@ public class LevellingManager {
amount = spawner.getSpawnerDataCount();
spawnerType = spawner.getCreatureSpawner().getSpawnedType();
}
} else if (isWildStackerEnabled) {
}
if (isWildStackerEnabled && spawnerType == null) {
com.bgsoftware.wildstacker.api.handlers.SystemManager wildStacker = com.bgsoftware.wildstacker.api.WildStackerAPI.getWildStacker().getSystemManager();
if (wildStacker.isStackedSpawner(location.getBlock())) {
com.bgsoftware.wildstacker.api.objects.StackedSpawner spawner = wildStacker.getStackedSpawner(location);
amount = spawner.getStackAmount();
spawnerType = spawner.getSpawnedType();
}
} else {
}
if (spawnerType == null) {
spawnerType = ((CreatureSpawner) location.getBlock().getState()).getSpawnedType();
}
} else {
if (isWildStackerEnabled) {
World world = Bukkit.getWorld(chunkSnapshotList.getWorldName());
Location location = new Location(world, chunkSnapshotList.getX() * 16 + x, y, chunkSnapshotList.getZ() * 16 + z);
Location location = new Location(world, chunkSnapshotList.getX() * 16 + x, y, chunkSnapshotList.getZ() * 16 + z);
com.bgsoftware.wildstacker.api.handlers.SystemManager wildStacker = com.bgsoftware.wildstacker.api.WildStackerAPI.getWildStacker().getSystemManager();
if (wildStacker.isStackedBarrel(location.getBlock())) {
com.bgsoftware.wildstacker.api.objects.StackedBarrel barrel = wildStacker.getStackedBarrel(location.getBlock());
@ -159,17 +178,19 @@ public class LevellingManager {
blockData = 0;
}
}
} else if (stackableManager != null && stackableManager.getStackableMaterials().contains(blockMaterial)) {
}
if (stackableManager != null && stackableManager.getStackableMaterials().contains(blockMaterial) && amount == 1) {
World world = Bukkit.getWorld(chunkSnapshotList.getWorldName());
Location location = new Location(world, chunkSnapshotList.getX() * 16 + x, y, chunkSnapshotList.getZ() * 16 + z);
Location location = new Location(world, chunkSnapshotList.getX() * 16 + x, y, chunkSnapshotList.getZ() * 16 + z);
if (stackableManager.isStacked(location)) {
Stackable stackable = stackableManager.getStack(location, blockMaterial);
amount = stackable.getSize();
amount += stackable.getSize();
}
}
}
LevellingData data = new LevellingData(blockMaterial, (byte)blockData, spawnerType);
LevellingData data = new LevellingData(blockMaterial, (byte) blockData, spawnerType);
Long totalAmountInteger = levellingData.get(data);
long totalAmount = totalAmountInteger == null ? amount : totalAmountInteger + amount;
levellingData.put(data, totalAmount);
@ -221,13 +242,13 @@ public class LevellingManager {
public void registerMaterials() {
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "levelling.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
if (configLoad.getString("Materials") != null) {
for (String materialKey : configLoad.getConfigurationSection("Materials").getKeys(false)) {
try {
Materials material = Materials.fromString(materialKey);
if (!material.isAvailable() || material.getPostItem() == null) continue;
if (!containsMaterial(material)) {
addMaterial(material, configLoad.getLong("Materials." + materialKey + ".Points"));
}
@ -289,7 +310,7 @@ public class LevellingManager {
@Override
public boolean equals(Object obj) {
if (!(obj instanceof LevellingData)) return false;
LevellingData data = (LevellingData)obj;
LevellingData data = (LevellingData) obj;
if (this == obj) return true;
return this.material == data.material && this.data == data.data && this.spawnerType == data.spawnerType;
}
@ -307,7 +328,8 @@ public class LevellingManager {
if (NMSUtil.getVersionNumber() > 12) {
try {
return Materials.fromString(material.name());
} catch (Exception ignored) {}
} catch (Exception ignored) {
}
}
return Materials.getMaterials(this.material, this.data);

View File

@ -472,7 +472,10 @@ public class Block implements Listener {
org.bukkit.block.BlockState genState = generatorManager.generateBlock(generator, block);
event.getNewState().setType(genState.getType());
event.getNewState().setData(genState.getData());
if (NMSUtil.getVersionNumber() < 13) {
event.getNewState().setData(genState.getData());
}
return;
}

View File

@ -50,12 +50,10 @@ public class Death implements Listener {
}
if (configLoad.getBoolean("Island.Death.AutoRespawn")) {
Bukkit.getScheduler().scheduleSyncDelayedTask(skyblock, new Runnable() {
public void run() {
player.spigot().respawn();
player.setFallDistance(0.0F);
player.setFireTicks(0);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(skyblock, () -> {
player.spigot().respawn();
player.setFallDistance(0.0F);
player.setFireTicks(0);
}, 1L);
}
}

View File

@ -244,6 +244,16 @@ public class Entity implements Listener {
@EventHandler
public void onStackableInteract(PlayerArmorStandManipulateEvent event) {
Player player = event.getPlayer();
if (!skyblock.getIslandManager().hasPermission(player, event.getRightClicked().getLocation(), "ArmorStandUse")) {
event.setCancelled(true);
skyblock.getMessageManager().sendMessage(player,
skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml"))
.getFileConfiguration().getString("Island.Settings.Permission.Message"));
skyblock.getSoundManager().playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
}
if (NMSUtil.getVersionNumber() != 8)
return;

View File

@ -17,9 +17,9 @@ import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityPortalEnterEvent;
import org.bukkit.event.entity.EntityPortalEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import java.io.File;
@ -64,7 +64,7 @@ public class Portal implements Listener {
}
}
@EventHandler
@EventHandler(priority = EventPriority.LOW)
public void onEntityPortalEnter(EntityPortalEnterEvent event) {
if (!(event.getEntity() instanceof Player))
return;

View File

@ -23,7 +23,7 @@ import me.goodandevil.skyblock.placeholder.Placeholder;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.AnvilGUI;
import me.goodandevil.skyblock.utils.AbstractAnvilGUI;
import me.goodandevil.skyblock.utils.item.SkullUtil;
import me.goodandevil.skyblock.utils.item.nInventoryUtil;
import me.goodandevil.skyblock.utils.item.nInventoryUtil.ClickEvent;
@ -60,123 +60,102 @@ public class Bans {
Config languageConfig = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = languageConfig.getFileConfiguration();
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
Island island = islandManager.getIsland(player);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData1 = playerDataManager.getPlayerData(player);
Island island1 = islandManager.getIsland(player);
if (island == null) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Bans.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
if (island1 == null) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Bans.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
} else if (!fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Visitor.Banning")) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Bans.Disabled.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
} else if (!fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Visitor.Banning")) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Bans.Disabled.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
return;
}
ItemStack is = event.getItem();
ItemStack is = event.getItem();
if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Bans.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Bans.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Bans.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Bans.Item.Information.Displayname"))))) {
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Bans.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Bans.Item.Information.Displayname"))))) {
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) {
Bukkit.getServer().dispatchCommand(player,
"island ban " + event1.getName());
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> {
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event1 -> {
if (event1.getSlot() == AbstractAnvilGUI.AnvilSlot.OUTPUT) {
Bukkit.getServer().dispatchCommand(player,
"island ban " + event1.getName());
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.Bans.Item.Word.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
}
}, 1L);
} else if ((is.getType() == Material.BARRIER) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Bans.Item.Nothing.Displayname"))))) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Bans.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
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.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes(
'&', configLoad.getString("Menu.Bans.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
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 ((island.hasRole(IslandRole.Operator, player.getUniqueId())
&& island.getSetting(IslandRole.Operator, "Unban").getStatus())
|| island.hasRole(IslandRole.Owner, player.getUniqueId())) {
String playerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
Bukkit.getServer().dispatchCommand(player, "island unban " + playerName);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
open(player);
}
}, 3L);
event1.setWillClose(true);
event1.setWillDestroy(true);
} else {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Bans.Permission.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
event1.setWillClose(false);
event1.setWillDestroy(false);
}
});
ItemStack is1 = new ItemStack(Material.NAME_TAG);
ItemMeta im = is1.getItemMeta();
im.setDisplayName(configLoad.getString("Menu.Bans.Item.Word.Enter"));
is1.setItemMeta(im);
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, is1);
gui.open();
}, 1L);
} else if ((is.getType() == Material.BARRIER) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Bans.Item.Nothing.Displayname"))))) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Bans.Item.Previous.Displayname")))) {
playerData1.setPage(playerData1.getPage() - 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes(
'&', configLoad.getString("Menu.Bans.Item.Next.Displayname")))) {
playerData1.setPage(playerData1.getPage() + 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else {
if ((island1.hasRole(IslandRole.Operator, player.getUniqueId())
&& island1.getSetting(IslandRole.Operator, "Unban").getStatus())
|| island1.hasRole(IslandRole.Owner, player.getUniqueId())) {
String playerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
Bukkit.getServer().dispatchCommand(player, "island unban " + playerName);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 3L);
} else {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Bans.Permission.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
}
@ -254,12 +233,7 @@ public class Bans {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Bans.Title")));
nInv.setRows(6);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}
}

View File

@ -54,107 +54,99 @@ public class Biome {
if (playerDataManager.hasPlayerData(player)) {
FileConfiguration langConfig = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml")).getFileConfiguration();
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
Island island = islandManager.getIsland(player);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
Island island = islandManager.getIsland(player);
if (island == null) {
messageManager.sendMessage(player,
langConfig.getString("Command.Island.Biome.Owner.Message"));
if (island == null) {
messageManager.sendMessage(player,
langConfig.getString("Command.Island.Biome.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
return;
} else if (!((island.hasRole(IslandRole.Operator, player.getUniqueId())
&& island.getSetting(IslandRole.Operator, "Biome").getStatus())
|| island.hasRole(IslandRole.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player,
langConfig.getString("Command.Island.Biome.Permission.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
return;
}
ItemStack is = event.getItem();
if ((is.getType() == Material.NAME_TAG) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
langConfig.getString("Menu.Biome.Item.Info.Displayname"))))) {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
langConfig.getString("Menu.Biome.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
langConfig.getString("Menu.Biome.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else {
if (is.getItemMeta().hasEnchant(Enchantment.THORNS)) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
return;
} else if (!((island.hasRole(IslandRole.Operator, player.getUniqueId())
&& island.getSetting(IslandRole.Operator, "Biome").getStatus())
|| island.hasRole(IslandRole.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player,
langConfig.getString("Command.Island.Biome.Permission.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
return;
}
ItemStack is = event.getItem();
if ((is.getType() == Material.NAME_TAG) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
langConfig.getString("Menu.Biome.Item.Info.Displayname"))))) {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
langConfig.getString("Menu.Biome.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
langConfig.getString("Menu.Biome.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else {
if (is.getItemMeta().hasEnchant(Enchantment.THORNS)) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
if (cooldownManager.hasPlayer(CooldownType.Biome, player) && !player.hasPermission("fabledskyblock.bypass.cooldown")) {
CooldownPlayer cooldownPlayer = cooldownManager.getCooldownPlayer(CooldownType.Biome, player);
Cooldown cooldown = cooldownPlayer.getCooldown();
if (cooldown.getTime() < 60) {
messageManager.sendMessage(player,
langConfig.getString("Island.Biome.Cooldown.Message")
.replace("%time",
cooldown.getTime() + " " + langConfig
.getString("Island.Biome.Cooldown.Word.Second")));
} else {
long[] durationTime = NumberUtil.getDuration(cooldown.getTime());
messageManager.sendMessage(player,
langConfig.getString("Island.Biome.Cooldown.Message")
.replace("%time", durationTime[2] + " "
+ langConfig.getString("Island.Biome.Cooldown.Word.Minute")
+ " " + durationTime[3] + " "
+ langConfig.getString("Island.Biome.Cooldown.Word.Second")));
}
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else {
if (cooldownManager.hasPlayer(CooldownType.Biome, player) && !player.hasPermission("fabledskyblock.bypass.cooldown")) {
CooldownPlayer cooldownPlayer = cooldownManager.getCooldownPlayer(CooldownType.Biome, player);
Cooldown cooldown = cooldownPlayer.getCooldown();
if (cooldown.getTime() < 60) {
messageManager.sendMessage(player,
langConfig.getString("Island.Biome.Cooldown.Message")
.replace("%time",
cooldown.getTime() + " " + langConfig
.getString("Island.Biome.Cooldown.Word.Second")));
} else {
long[] durationTime = NumberUtil.getDuration(cooldown.getTime());
messageManager.sendMessage(player,
langConfig.getString("Island.Biome.Cooldown.Message")
.replace("%time", durationTime[2] + " "
+ langConfig.getString("Island.Biome.Cooldown.Word.Minute")
+ " " + durationTime[3] + " "
+ langConfig.getString("Island.Biome.Cooldown.Word.Second")));
}
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
@SuppressWarnings("deprecation")
SBiome selectedBiomeType = SBiome.getFromGuiIcon(is.getType(), is.getData().getData());
cooldownManager.createPlayer(CooldownType.Biome, player);
biomeManager.setBiome(island, selectedBiomeType.getBiome());
island.setBiome(selectedBiomeType.getBiome());
island.save();
soundManager.playSound(island.getLocation(IslandWorld.Normal, IslandEnvironment.Island),
Sounds.SPLASH.bukkitSound(), 1.0F, 1.0F);
if (!islandManager.isPlayerAtIsland(island, player, IslandWorld.Normal)) {
soundManager.playSound(player, Sounds.SPLASH.bukkitSound(), 1.0F, 1.0F);
}
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
return;
}
@SuppressWarnings("deprecation")
SBiome selectedBiomeType = SBiome.getFromGuiIcon(is.getType(), is.getData().getData());
cooldownManager.createPlayer(CooldownType.Biome, player);
biomeManager.setBiome(island, selectedBiomeType.getBiome());
island.setBiome(selectedBiomeType.getBiome());
island.save();
soundManager.playSound(island.getLocation(IslandWorld.Normal, IslandEnvironment.Island),
Sounds.SPLASH.bukkitSound(), 1.0F, 1.0F);
if (!islandManager.isPlayerAtIsland(island, player, IslandWorld.Normal)) {
soundManager.playSound(player, Sounds.SPLASH.bukkitSound(), 1.0F, 1.0F);
}
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
}
});
@ -221,12 +213,7 @@ public class Biome {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', langConfig.getString("Menu.Biome.Title")));
nInv.setRows(4);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}
}

View File

@ -48,125 +48,102 @@ public class Border {
FileConfiguration configLoad = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"))
.getFileConfiguration();
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
Island island = islandManager.getIsland(player);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
Island island = islandManager.getIsland(player);
if (island == null) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Border.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
if (island == null) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Border.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
} else if (!((island.hasRole(IslandRole.Operator, player.getUniqueId())
&& island.getSetting(IslandRole.Operator, "Border").getStatus())
|| island.hasRole(IslandRole.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Border.Permission.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
return;
} else if (!((island.hasRole(IslandRole.Operator, player.getUniqueId())
&& island.getSetting(IslandRole.Operator, "Border").getStatus())
|| island.hasRole(IslandRole.Owner, player.getUniqueId()))) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Border.Permission.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
return;
} else if (!fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.WorldBorder.Enable")) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Border.Disabled.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
} else if (!fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.WorldBorder.Enable")) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Border.Disabled.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
return;
}
ItemStack is = event.getItem();
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Border.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Material.TRIPWIRE_HOOK) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Border.Item.Toggle.Displayname"))))) {
if (island.isBorder()) {
island.setBorder(false);
} else {
island.setBorder(true);
}
ItemStack is = event.getItem();
islandManager.updateBorder(island);
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Border.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Material.TRIPWIRE_HOOK) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Border.Item.Toggle.Displayname"))))) {
if (island.isBorder()) {
island.setBorder(false);
} else {
island.setBorder(true);
}
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else if ((is.getType() == Materials.LIGHT_BLUE_DYE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color",
configLoad.getString("Menu.Border.Item.Word.Blue")))))) {
if (island.getBorderColor() == WorldBorder.Color.Blue) {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else {
island.setBorderColor(WorldBorder.Color.Blue);
islandManager.updateBorder(island);
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.LIGHT_BLUE_DYE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color",
configLoad.getString("Menu.Border.Item.Word.Blue")))))) {
if (island.getBorderColor() == WorldBorder.Color.Blue) {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
} else if ((is.getType() == Materials.LIME_DYE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color",
configLoad.getString("Menu.Border.Item.Word.Green")))))) {
if (island.getBorderColor() == WorldBorder.Color.Green) {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else {
island.setBorderColor(WorldBorder.Color.Blue);
islandManager.updateBorder(island);
event.setWillClose(false);
event.setWillDestroy(false);
} else {
island.setBorderColor(WorldBorder.Color.Green);
islandManager.updateBorder(island);
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
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.LIME_DYE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color",
configLoad.getString("Menu.Border.Item.Word.Green")))))) {
if (island.getBorderColor() == WorldBorder.Color.Green) {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
} else if ((is.getType() == Materials.RED_DYE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color",
configLoad.getString("Menu.Border.Item.Word.Red")))))) {
if (island.getBorderColor() == WorldBorder.Color.Red) {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else {
island.setBorderColor(WorldBorder.Color.Green);
islandManager.updateBorder(island);
event.setWillClose(false);
event.setWillDestroy(false);
} else {
island.setBorderColor(WorldBorder.Color.Red);
islandManager.updateBorder(island);
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
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.ROSE_RED.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color",
configLoad.getString("Menu.Border.Item.Word.Red")))))) {
if (island.getBorderColor() == WorldBorder.Color.Red) {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else {
island.setBorderColor(WorldBorder.Color.Red);
islandManager.updateBorder(island);
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);
}
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
}
});
@ -225,14 +202,14 @@ public class Border {
}
if (borderColor == WorldBorder.Color.Red) {
nInv.addItem(nInv.createItem(Materials.ROSE_RED.parseItem(),
nInv.addItem(nInv.createItem(Materials.RED_DYE.parseItem(),
configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color",
configLoad.getString("Menu.Border.Item.Word.Red")),
configLoad.getStringList("Menu.Border.Item.Color.Selected.Lore"),
new Placeholder[] { new Placeholder("%color", configLoad.getString("Menu.Border.Item.Word.Red")) },
null, null), 4);
} else {
nInv.addItem(nInv.createItem(Materials.ROSE_RED.parseItem(),
nInv.addItem(nInv.createItem(Materials.RED_DYE.parseItem(),
configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color",
configLoad.getString("Menu.Border.Item.Word.Red")),
configLoad.getStringList("Menu.Border.Item.Color.Unselected.Lore"),
@ -243,11 +220,6 @@ public class Border {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Border.Title")));
nInv.setType(InventoryType.HOPPER);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}

View File

@ -36,91 +36,48 @@ public class ControlPanel {
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
ItemStack is = event.getItem();
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
ItemStack is = event.getItem();
if ((is.getType() == Materials.OAK_DOOR.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Teleport.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(player, "island teleport");
}
}, 1L);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Barrier.Displayname"))))) {
skyblock.getSoundManager().playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.OAK_DOOR.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Teleport.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> Bukkit.getServer().dispatchCommand(player, "island teleport"), 1L);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Barrier.Displayname"))))) {
skyblock.getSoundManager().playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.EXPERIENCE_BOTTLE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Level.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(player, "island level");
}
}, 1L);
} else if ((is.getType() == Material.NAME_TAG) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Settings.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(player, "island settings");
}
}, 1L);
} else if ((is.getType() == Material.ITEM_FRAME) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Members.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(player, "island members");
}
}, 1L);
} else if ((is.getType() == Materials.OAK_SAPLING.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Biome.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(player, "island biome");
}
}, 1L);
} else if ((is.getType() == Materials.CLOCK.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Weather.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(player, "island weather");
}
}, 1L);
} else if ((is.getType() == Material.IRON_AXE) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Bans.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(player, "island bans");
}
}, 1L);
} else if ((is.getType() == Material.SIGN) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Visitors.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(player, "island visitors");
}
}, 1L);
}
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.EXPERIENCE_BOTTLE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Level.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> Bukkit.getServer().dispatchCommand(player, "island level"), 1L);
} else if ((is.getType() == Material.NAME_TAG) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Settings.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> Bukkit.getServer().dispatchCommand(player, "island settings"), 1L);
} else if ((is.getType() == Material.ITEM_FRAME) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Members.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> Bukkit.getServer().dispatchCommand(player, "island members"), 1L);
} else if ((is.getType() == Materials.OAK_SAPLING.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Biome.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> Bukkit.getServer().dispatchCommand(player, "island biome"), 1L);
} else if ((is.getType() == Materials.CLOCK.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Weather.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> Bukkit.getServer().dispatchCommand(player, "island weather"), 1L);
} else if ((is.getType() == Material.IRON_AXE) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Bans.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> Bukkit.getServer().dispatchCommand(player, "island bans"), 1L);
} else if ((is.getType() == Materials.OAK_SIGN.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.ControlPanel.Item.Visitors.Displayname"))))) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> Bukkit.getServer().dispatchCommand(player, "island visitors"), 1L);
}
});
@ -148,18 +105,13 @@ public class ControlPanel {
configLoad.getString("Menu.ControlPanel.Item.Bans.Displayname"),
configLoad.getStringList("Menu.ControlPanel.Item.Bans.Lore"), null, null,
new ItemFlag[] { ItemFlag.HIDE_ATTRIBUTES }), 7);
nInv.addItem(nInv.createItem(new ItemStack(Material.SIGN),
nInv.addItem(nInv.createItem(new ItemStack(Materials.OAK_SIGN.parseMaterial()),
configLoad.getString("Menu.ControlPanel.Item.Visitors.Displayname"),
configLoad.getStringList("Menu.ControlPanel.Item.Visitors.Lore"), null, null, null), 8);
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.ControlPanel.Title")));
nInv.setRows(1);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}

View File

@ -23,7 +23,7 @@ import me.goodandevil.skyblock.placeholder.Placeholder;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.AnvilGUI;
import me.goodandevil.skyblock.utils.AbstractAnvilGUI;
import me.goodandevil.skyblock.utils.item.SkullUtil;
import me.goodandevil.skyblock.utils.item.nInventoryUtil;
import me.goodandevil.skyblock.utils.item.nInventoryUtil.ClickEvent;
@ -57,124 +57,103 @@ public class Coop {
Config config = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
Island island = islandManager.getIsland(player);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
Island island = islandManager.getIsland(player);
if (island == null) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Coop.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
if (island == null) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Coop.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
} else if (!fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Coop.Enable")) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Coop.Disabled.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
} else if (!fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Coop.Enable")) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Coop.Disabled.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
return;
}
ItemStack is = event.getItem();
ItemStack is = event.getItem();
if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Coop.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Coop.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Coop.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Coop.Item.Information.Displayname"))))) {
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Coop.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Coop.Item.Information.Displayname"))))) {
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) {
Bukkit.getServer().dispatchCommand(player,
"island coop " + event1.getName());
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> {
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event1 -> {
if (event1.getSlot() == AbstractAnvilGUI.AnvilSlot.OUTPUT) {
Bukkit.getServer().dispatchCommand(player,
"island coop " + event1.getName());
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.Coop.Item.Word.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
}
}, 1L);
} else if ((is.getType() == Material.BARRIER) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Coop.Item.Nothing.Displayname"))))) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Coop.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
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.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes(
'&', configLoad.getString("Menu.Coop.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
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 ((island.hasRole(IslandRole.Operator, player.getUniqueId())
&& island.getSetting(IslandRole.Operator, "CoopPlayers").getStatus())
|| island.hasRole(IslandRole.Owner, player.getUniqueId())) {
String playerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
Bukkit.getServer().dispatchCommand(player, "island coop " + playerName);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
open(player);
}
}, 3L);
event1.setWillClose(true);
event1.setWillDestroy(true);
} else {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Coop.Permission.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
event1.setWillClose(false);
event1.setWillDestroy(false);
}
});
ItemStack is1 = new ItemStack(Material.NAME_TAG);
ItemMeta im = is1.getItemMeta();
im.setDisplayName(configLoad.getString("Menu.Coop.Item.Word.Enter"));
is1.setItemMeta(im);
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, is1);
gui.open();
}, 1L);
} else if ((is.getType() == Material.BARRIER) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Coop.Item.Nothing.Displayname"))))) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Coop.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes(
'&', configLoad.getString("Menu.Coop.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else {
if ((island.hasRole(IslandRole.Operator, player.getUniqueId())
&& island.getSetting(IslandRole.Operator, "CoopPlayers").getStatus())
|| island.hasRole(IslandRole.Owner, player.getUniqueId())) {
String playerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
Bukkit.getServer().dispatchCommand(player, "island coop " + playerName);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 3L);
} else {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Coop.Permission.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
}
@ -256,12 +235,7 @@ public class Coop {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Coop.Title")));
nInv.setRows(6);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}
}

View File

@ -4,6 +4,7 @@ import java.io.File;
import java.util.ArrayList;
import java.util.List;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration;
@ -92,115 +93,104 @@ public class Creator {
inventoryRows = 6;
}
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (islandManager.getIsland(player) != null) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Create.Owner.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (islandManager.getIsland(player) != null) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Create.Owner.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
return;
}
return;
}
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
ItemStack is = event.getItem();
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, () -> {
ItemStack is = event.getItem();
for (Structure structureList : skyblock.getStructureManager().getStructures()) {
if ((is.getType() == structureList.getMaterials().parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Creator.Selector.Item.Island.Displayname")
.replace("%displayname", structureList.getDisplayname()))))) {
if (structureList.isPermission() && structureList.getPermission() != null
&& !structureList.getPermission().isEmpty()) {
if (!player.hasPermission(structureList.getPermission())
&& !player.hasPermission("fabledskyblock.island.*")
&& !player.hasPermission("fabledskyblock.*")) {
messageManager.sendMessage(player,
configLoad.getString("Island.Creator.Selector.Permission.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
for (Structure structureList : skyblock.getStructureManager().getStructures()) {
if ((is.getType() == structureList.getMaterials().parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Creator.Selector.Item.Island.Displayname")
.replace("%displayname", structureList.getDisplayname()))))) {
if (structureList.isPermission() && structureList.getPermission() != null
&& !structureList.getPermission().isEmpty()) {
if (!player.hasPermission(structureList.getPermission())
&& !player.hasPermission("fabledskyblock.island.*")
&& !player.hasPermission("fabledskyblock.*")) {
messageManager.sendMessage(player,
configLoad.getString("Island.Creator.Selector.Permission.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;
}
}
if (!fileManager.isFileExist(
new File(new File(skyblock.getDataFolder().toString() + "/structures"),
structureList.getOverworldFile()))) {
messageManager.sendMessage(player,
configLoad.getString("Island.Creator.Selector.File.Overworld.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
} else if (!fileManager.isFileExist(
new File(new File(skyblock.getDataFolder().toString() + "/structures"),
structureList.getNetherFile()))) {
messageManager.sendMessage(player,
configLoad.getString("Island.Creator.Selector.File.Nether.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
} else if (fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Creation.Cooldown.Creation.Enable")
&& cooldownManager.hasPlayer(CooldownType.Creation, player)) {
CooldownPlayer cooldownPlayer = cooldownManager
.getCooldownPlayer(CooldownType.Creation, player);
Cooldown cooldown = cooldownPlayer.getCooldown();
if (cooldown.getTime() < 60) {
messageManager.sendMessage(player, config.getFileConfiguration()
.getString("Island.Creator.Selector.Cooldown.Message")
.replace("%time", cooldown.getTime() + " "
+ config.getFileConfiguration().getString(
"Island.Creator.Selector.Cooldown.Word.Second")));
} else {
long[] durationTime = NumberUtil.getDuration(cooldown.getTime());
messageManager.sendMessage(player, config.getFileConfiguration()
.getString("Island.Creator.Selector.Cooldown.Message")
.replace("%time", durationTime[2] + " "
+ config.getFileConfiguration().getString(
"Island.Creator.Selector.Cooldown.Word.Minute")
+ " " + durationTime[3] + " "
+ config.getFileConfiguration().getString(
"Island.Creator.Selector.Cooldown.Word.Second")));
}
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
if (islandManager.createIsland(player, structureList)) {
messageManager.sendMessage(player,
configLoad.getString("Island.Creator.Selector.Created.Message"));
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
}
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
return;
}
}
if (!fileManager.isFileExist(
new File(new File(skyblock.getDataFolder().toString() + "/structures"),
structureList.getOverworldFile()))) {
messageManager.sendMessage(player,
configLoad.getString("Island.Creator.Selector.File.Overworld.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
} else if (!fileManager.isFileExist(
new File(new File(skyblock.getDataFolder().toString() + "/structures"),
structureList.getNetherFile()))) {
messageManager.sendMessage(player,
configLoad.getString("Island.Creator.Selector.File.Nether.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
} else if (fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Creation.Cooldown.Creation.Enable")
&& cooldownManager.hasPlayer(CooldownType.Creation, player)) {
CooldownPlayer cooldownPlayer = cooldownManager
.getCooldownPlayer(CooldownType.Creation, player);
Cooldown cooldown = cooldownPlayer.getCooldown();
if (cooldown.getTime() < 60) {
messageManager.sendMessage(player, config.getFileConfiguration()
.getString("Island.Creator.Selector.Cooldown.Message")
.replace("%time", cooldown.getTime() + " "
+ config.getFileConfiguration().getString(
"Island.Creator.Selector.Cooldown.Word.Second")));
} else {
long[] durationTime = NumberUtil.getDuration(cooldown.getTime());
messageManager.sendMessage(player, config.getFileConfiguration()
.getString("Island.Creator.Selector.Cooldown.Message")
.replace("%time", durationTime[2] + " "
+ config.getFileConfiguration().getString(
"Island.Creator.Selector.Cooldown.Word.Minute")
+ " " + durationTime[3] + " "
+ config.getFileConfiguration().getString(
"Island.Creator.Selector.Cooldown.Word.Second")));
}
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
if (islandManager.createIsland(player, structureList)) {
messageManager.sendMessage(player,
configLoad.getString("Island.Creator.Selector.Created.Message"));
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
}
return;
}
});
}
}
});
});
for (int i = 0; i < availableStructures.size(); i++) {
@ -231,11 +221,6 @@ public class Creator {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Creator.Selector.Title")));
nInv.setRows(inventoryRows);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}

View File

@ -113,60 +113,47 @@ public class Information {
}
if (viewer.getType() == Information.Viewer.Type.Categories) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
ItemStack is = event.getItem();
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData13 = 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.Information.Categories.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Materials.ITEM_FRAME.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Categories.Item.Members.Displayname"))))) {
playerData.setViewer(new Information.Viewer(
((Information.Viewer) playerData.getViewer()).getOwner(),
Information.Viewer.Type.Members));
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Categories.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Materials.ITEM_FRAME.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Categories.Item.Members.Displayname"))))) {
playerData13.setViewer(new Viewer(
((Viewer) playerData13.getViewer()).getOwner(),
Viewer.Type.Members));
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.LEGACY_EMPTY_MAP.getPostMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Categories.Item.Information.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
} else if ((is.getType() == Materials.LEGACY_EMPTY_MAP.getPostMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Categories.Item.Information.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.PAINTING.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Categories.Item.Visitors.Displayname"))))) {
playerData.setViewer(new Information.Viewer(
((Information.Viewer) playerData.getViewer()).getOwner(),
Information.Viewer.Type.Visitors));
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.PAINTING.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Categories.Item.Visitors.Displayname"))))) {
playerData13.setViewer(new Viewer(
((Viewer) playerData13.getViewer()).getOwner(),
Viewer.Type.Visitors));
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);
}
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
}
}
});
@ -277,88 +264,65 @@ public class Information {
configLoad.getString("Menu.Information.Categories.Title")));
nInv.setType(InventoryType.HOPPER);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
} else if (viewer.getType() == Information.Viewer.Type.Members) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
ItemStack is = event.getItem();
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData1 = 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.Information.Members.Item.Return.Displayname"))))) {
playerData.setViewer(new Information.Viewer(
((Information.Viewer) playerData.getViewer()).getOwner(),
Information.Viewer.Type.Categories));
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Members.Item.Return.Displayname"))))) {
playerData1.setViewer(new Viewer(
((Viewer) playerData1.getViewer()).getOwner(),
Viewer.Type.Categories));
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
} else if ((is.getType() == Materials.PAINTING.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Members.Item.Statistics.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Members.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType())
&& (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Members.Item.Previous.Displayname")))) {
playerData1.setPage(playerData1.getPage() - 1);
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() == Materials.PAINTING.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Members.Item.Statistics.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
} else if (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Information.Members.Item.Next.Displayname")))) {
playerData1.setPage(playerData1.getPage() + 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
} else {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F,
1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Members.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType())
&& (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Members.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
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.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Information.Members.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
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 {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F,
1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
}
}
@ -461,88 +425,65 @@ public class Information {
configLoad.getString("Menu.Information.Members.Title")));
nInv.setRows(6);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
} else if (viewer.getType() == Information.Viewer.Type.Visitors) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
ItemStack is = event.getItem();
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData12 = 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.Information.Visitors.Item.Return.Displayname"))))) {
playerData.setViewer(new Information.Viewer(
((Information.Viewer) playerData.getViewer()).getOwner(),
Information.Viewer.Type.Categories));
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Visitors.Item.Return.Displayname"))))) {
playerData12.setViewer(new Viewer(
((Viewer) playerData12.getViewer()).getOwner(),
Viewer.Type.Categories));
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
} else if ((is.getType() == Materials.PAINTING.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Visitors.Item.Statistics.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Visitors.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType())
&& (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Visitors.Item.Previous.Displayname")))) {
playerData12.setPage(playerData12.getPage() - 1);
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() == Materials.PAINTING.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Visitors.Item.Statistics.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
} else if (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Information.Visitors.Item.Next.Displayname")))) {
playerData12.setPage(playerData12.getPage() + 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
} else {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F,
1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Visitors.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType())
&& (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString(
"Menu.Information.Visitors.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
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.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Information.Visitors.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
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 {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F,
1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
}
}
@ -620,12 +561,7 @@ public class Information {
configLoad.getString("Menu.Information.Visitors.Title")));
nInv.setRows(6);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
islandManager.unloadIsland(island, null);

View File

@ -53,55 +53,47 @@ public class Leaderboard {
Viewer viewer = (Viewer) playerDataManager.getPlayerData(player).getViewer();
if (viewer.getType() == Viewer.Type.Browse) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
ItemStack is = event.getItem();
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
ItemStack is = event.getItem();
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Leaderboard." + Viewer.Type.Browse.name()
+ ".Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Leaderboard." + Viewer.Type.Browse.name()
+ ".Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
return;
} else if ((is.getType() == Material.DIAMOND) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad
.getString("Menu.Leaderboard." + Viewer.Type.Browse.name()
+ ".Item.Leaderboard.Displayname")
.replace("%leaderboard", Viewer.Type.Level.name()))))) {
playerDataManager.getPlayerData(player).setViewer(new Viewer(Viewer.Type.Level));
} else if ((is.getType() == Material.GOLD_INGOT) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad
.getString("Menu.Leaderboard." + Viewer.Type.Browse.name()
+ ".Item.Leaderboard.Displayname")
.replace("%leaderboard", Viewer.Type.Bank.name()))))) {
playerDataManager.getPlayerData(player).setViewer(new Viewer(Viewer.Type.Bank));
} else if ((is.getType() == Material.EMERALD) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad
.getString("Menu.Leaderboard." + Viewer.Type.Browse.name()
+ ".Item.Leaderboard.Displayname")
.replace("%leaderboard", Viewer.Type.Votes.name()))))) {
playerDataManager.getPlayerData(player).setViewer(new Viewer(Viewer.Type.Votes));
}
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
return;
} else if ((is.getType() == Material.DIAMOND) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad
.getString("Menu.Leaderboard." + Viewer.Type.Browse.name()
+ ".Item.Leaderboard.Displayname")
.replace("%leaderboard", Viewer.Type.Level.name()))))) {
playerDataManager.getPlayerData(player).setViewer(new Viewer(Viewer.Type.Level));
} else if ((is.getType() == Material.GOLD_INGOT) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad
.getString("Menu.Leaderboard." + Viewer.Type.Browse.name()
+ ".Item.Leaderboard.Displayname")
.replace("%leaderboard", Viewer.Type.Bank.name()))))) {
playerDataManager.getPlayerData(player).setViewer(new Viewer(Viewer.Type.Bank));
} else if ((is.getType() == Material.EMERALD) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad
.getString("Menu.Leaderboard." + Viewer.Type.Browse.name()
+ ".Item.Leaderboard.Displayname")
.replace("%leaderboard", Viewer.Type.Votes.name()))))) {
playerDataManager.getPlayerData(player).setViewer(new Viewer(Viewer.Type.Votes));
}
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
});
@ -143,97 +135,83 @@ public class Leaderboard {
configLoad.getString("Menu.Leaderboard." + viewer.getType().name() + ".Title")));
nInv.setType(InventoryType.HOPPER);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
} else {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
ItemStack is = event.getItem();
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
ItemStack is = event.getItem();
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Leaderboard.Leaderboard.Item.Exit.Displayname")))) {
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Leaderboard.Leaderboard.Item.Exit.Displayname")))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Leaderboard.Leaderboard.Item.Return.Displayname")))) {
if (skyblock.getFileManager()
.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Visitor.Vote")) {
playerDataManager.getPlayerData(player)
.setViewer(new Viewer(Viewer.Type.Browse));
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Leaderboard.Leaderboard.Item.Return.Displayname")))) {
if (skyblock.getFileManager()
.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Visitor.Vote")) {
playerDataManager.getPlayerData(player)
.setViewer(new Viewer(Viewer.Type.Browse));
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 {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
}
return;
}
}
int clickedSlot = event.getSlot();
int leaderboardPosition = -1;
if (clickedSlot == 13) {
leaderboardPosition = 0;
} else if (clickedSlot == 21) {
leaderboardPosition = 1;
} else if (clickedSlot == 22) {
leaderboardPosition = 2;
} else if (clickedSlot == 23) {
leaderboardPosition = 3;
} else if (clickedSlot == 29) {
leaderboardPosition = 4;
} else if (clickedSlot == 31) {
leaderboardPosition = 5;
} else if (clickedSlot == 33) {
leaderboardPosition = 6;
} else if (clickedSlot == 37) {
leaderboardPosition = 7;
} else if (clickedSlot == 40) {
leaderboardPosition = 8;
} else if (clickedSlot == 43) {
leaderboardPosition = 9;
}
if (leaderboardPosition != -1) {
List<me.goodandevil.skyblock.leaderboard.Leaderboard> leaderboardIslands = skyblock
.getLeaderboardManager().getLeaderboard(
me.goodandevil.skyblock.leaderboard.Leaderboard.Type.valueOf(viewer.getType().name()));
if (leaderboardIslands.size() > leaderboardPosition) {
me.goodandevil.skyblock.leaderboard.Leaderboard leaderboard = leaderboardIslands.get(leaderboardPosition);
me.goodandevil.skyblock.visit.Visit visit = leaderboard.getVisit();
OfflinePlayer offlinePlayer = new OfflinePlayer(visit.getOwnerUUID());
Bukkit.getScheduler().scheduleSyncDelayedTask(skyblock, () -> Bukkit.dispatchCommand(player, "island teleport " + offlinePlayer.getName()));
}
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
}
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
int clickedSlot = event.getSlot();
int leaderboardPosition = -1;
if (clickedSlot == 13) {
leaderboardPosition = 0;
} else if (clickedSlot == 21) {
leaderboardPosition = 1;
} else if (clickedSlot == 22) {
leaderboardPosition = 2;
} else if (clickedSlot == 23) {
leaderboardPosition = 3;
} else if (clickedSlot == 29) {
leaderboardPosition = 4;
} else if (clickedSlot == 31) {
leaderboardPosition = 5;
} else if (clickedSlot == 33) {
leaderboardPosition = 6;
} else if (clickedSlot == 37) {
leaderboardPosition = 7;
} else if (clickedSlot == 40) {
leaderboardPosition = 8;
} else if (clickedSlot == 43) {
leaderboardPosition = 9;
}
if (leaderboardPosition != -1) {
List<me.goodandevil.skyblock.leaderboard.Leaderboard> leaderboardIslands = skyblock
.getLeaderboardManager().getLeaderboard(
me.goodandevil.skyblock.leaderboard.Leaderboard.Type.valueOf(viewer.getType().name()));
if (leaderboardIslands.size() > leaderboardPosition) {
me.goodandevil.skyblock.leaderboard.Leaderboard leaderboard = leaderboardIslands.get(leaderboardPosition);
me.goodandevil.skyblock.visit.Visit visit = leaderboard.getVisit();
OfflinePlayer offlinePlayer = new OfflinePlayer(visit.getOwnerUUID());
Bukkit.getScheduler().scheduleSyncDelayedTask(skyblock, () -> Bukkit.dispatchCommand(player, "island teleport " + offlinePlayer.getName()));
}
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
});
@ -350,12 +328,7 @@ public class Leaderboard {
viewer.getType().name())));
nInv.setRows(6);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}
}

View File

@ -150,17 +150,14 @@ public class Levelling {
return;
}
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Level.Processing.Message"));
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, () -> {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Level.Processing.Message"));
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
cooldownManager.createPlayer(CooldownType.Levelling,
Bukkit.getServer().getOfflinePlayer(island.getOwnerUUID()));
levellingManager.calculatePoints(player, island);
}
cooldownManager.createPlayer(CooldownType.Levelling,
Bukkit.getServer().getOfflinePlayer(island.getOwnerUUID()));
levellingManager.calculatePoints(player, island);
});
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
PlayerData playerData1 = skyblock.getPlayerDataManager().getPlayerData(player);
@ -170,13 +167,13 @@ public class Levelling {
playerData1.setPage(playerData1.getPage() - 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, () -> open(player), 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes(
'&', configLoad.getString("Menu.Levelling.Item.Next.Displayname")))) {
playerData1.setPage(playerData1.getPage() + 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, () -> open(player), 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
@ -319,12 +316,7 @@ public class Levelling {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Levelling.Title")));
nInv.setRows(6);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}
}

View File

@ -63,178 +63,145 @@ public class Members {
FileConfiguration configLoad = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"))
.getFileConfiguration();
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
if (playerData.getType() == null || playerData.getSort() == null) {
playerData.setType(Members.Type.Default);
playerData.setSort(Members.Sort.Default);
if (playerData.getType() == null || playerData.getSort() == null) {
playerData.setType(Type.Default);
playerData.setSort(Sort.Default);
}
ItemStack is = event.getItem();
Island island = islandManager.getIsland(player);
if (island == null) {
skyblock.getMessageManager().sendMessage(player,
configLoad.getString("Command.Island.Members.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Material.HOPPER) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Type.Displayname")))) {
Type type1 = (Type) playerData.getType();
if (type1.ordinal() + 1 == Type.values().length) {
playerData.setType(Type.Default);
} else {
playerData.setType(Type.values()[type1.ordinal() + 1]);
}
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes(
'&', configLoad.getString("Menu.Members.Item.Sort.Displayname")))) {
Sort sort1 = (Sort) playerData.getSort();
if (sort1.ordinal() + 1 == Sort.values().length) {
playerData.setSort(Sort.Default);
} else {
playerData.setSort(Sort.values()[sort1.ordinal() + 1]);
}
}
ItemStack is = event.getItem();
Island island = islandManager.getIsland(player);
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
if (island == null) {
skyblock.getMessageManager().sendMessage(player,
configLoad.getString("Command.Island.Members.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, (Type) playerData.getType(),
(Sort) playerData.getSort()), 1L);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Statistics.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
return;
}
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Material.BARRIER) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Nothing.Displayname"))))) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Material.HOPPER) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Type.Displayname")))) {
Members.Type type = (Members.Type) playerData.getType();
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, (Type) playerData.getType(),
(Sort) playerData.getSort()), 1L);
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes(
'&', configLoad.getString("Menu.Members.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
if (type.ordinal() + 1 == Members.Type.values().length) {
playerData.setType(Members.Type.Default);
} else {
playerData.setType(Members.Type.values()[type.ordinal() + 1]);
}
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes(
'&', configLoad.getString("Menu.Members.Item.Sort.Displayname")))) {
Members.Sort sort = (Members.Sort) playerData.getSort();
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, (Type) playerData.getType(),
(Sort) playerData.getSort()), 1L);
} else {
String playerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
UUID playerUUID;
if (sort.ordinal() + 1 == Members.Sort.values().length) {
playerData.setSort(Members.Sort.Default);
} else {
playerData.setSort(Members.Sort.values()[sort.ordinal() + 1]);
}
Player targetPlayer = Bukkit.getServer().getPlayer(playerName);
if (targetPlayer == null) {
playerUUID = new OfflinePlayer(playerName).getUUID();
} else {
playerUUID = targetPlayer.getUniqueId();
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Members.Type) playerData.getType(),
(Members.Sort) playerData.getSort());
}
}, 1L);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Statistics.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Material.BARRIER) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Nothing.Displayname"))))) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Members.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Members.Type) playerData.getType(),
(Members.Sort) playerData.getSort());
}
}, 1L);
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes(
'&', configLoad.getString("Menu.Members.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Members.Type) playerData.getType(),
(Members.Sort) playerData.getSort());
}
}, 1L);
} else {
String playerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
UUID playerUUID;
Player targetPlayer = Bukkit.getServer().getPlayer(playerName);
if (targetPlayer == null) {
playerUUID = new OfflinePlayer(playerName).getUUID();
} else {
playerUUID = targetPlayer.getUniqueId();
}
if (!(playerUUID.equals(player.getUniqueId())
|| island.hasRole(IslandRole.Owner, playerUUID))) {
if (island.hasRole(IslandRole.Owner, player.getUniqueId())) {
if (event.getClick() == ClickType.LEFT) {
if (island.hasRole(IslandRole.Member, playerUUID)) {
Bukkit.getServer().dispatchCommand(player,
"island promote " + playerName);
} else {
Bukkit.getServer().dispatchCommand(player,
"island demote " + playerName);
}
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
open(player, (Members.Type) playerData.getType(),
(Members.Sort) playerData.getSort());
}
}, 3L);
return;
} else if (event.getClick() == ClickType.RIGHT) {
Bukkit.getServer().dispatchCommand(player, "island kick " + playerName);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
open(player, (Members.Type) playerData.getType(),
(Members.Sort) playerData.getSort());
}
}, 3L);
return;
if (!(playerUUID.equals(player.getUniqueId())
|| island.hasRole(IslandRole.Owner, playerUUID))) {
if (island.hasRole(IslandRole.Owner, player.getUniqueId())) {
if (event.getClick() == ClickType.LEFT) {
if (island.hasRole(IslandRole.Member, playerUUID)) {
Bukkit.getServer().dispatchCommand(player,
"island promote " + playerName);
} else {
Bukkit.getServer().dispatchCommand(player,
"island demote " + playerName);
}
} else if (island.hasRole(IslandRole.Operator, player.getUniqueId())
&& island.getSetting(IslandRole.Operator, "Kick").getStatus()) {
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player, (Type) playerData.getType(),
(Sort) playerData.getSort()), 3L);
return;
} else if (event.getClick() == ClickType.RIGHT) {
Bukkit.getServer().dispatchCommand(player, "island kick " + playerName);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
open(player, (Members.Type) playerData.getType(),
(Members.Sort) playerData.getSort());
}
}, 3L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player, (Type) playerData.getType(),
(Sort) playerData.getSort()), 3L);
return;
}
} else if (island.hasRole(IslandRole.Operator, player.getUniqueId())
&& island.getSetting(IslandRole.Operator, "Kick").getStatus()) {
Bukkit.getServer().dispatchCommand(player, "island kick " + playerName);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player, (Type) playerData.getType(),
(Sort) playerData.getSort()), 3L);
return;
}
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
}
@ -618,12 +585,7 @@ public class Members {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Members.Title")));
nInv.setRows(6);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}

View File

@ -23,7 +23,7 @@ import me.goodandevil.skyblock.placeholder.Placeholder;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.AnvilGUI;
import me.goodandevil.skyblock.utils.AbstractAnvilGUI;
import me.goodandevil.skyblock.utils.item.SkullUtil;
import me.goodandevil.skyblock.utils.item.nInventoryUtil;
import me.goodandevil.skyblock.utils.item.nInventoryUtil.ClickEvent;
@ -57,213 +57,178 @@ public class Ownership {
FileConfiguration configLoad = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"))
.getFileConfiguration();
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = skyblock.getPlayerDataManager().getPlayerData(player);
Island island = islandManager.getIsland(player);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = skyblock.getPlayerDataManager().getPlayerData(player);
Island island = islandManager.getIsland(player);
if (island == null) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Ownership.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
if (island == null) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Ownership.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
} else if (!island.hasRole(IslandRole.Owner, player.getUniqueId())) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Ownership.Role.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
return;
} else if (!island.hasRole(IslandRole.Owner, player.getUniqueId())) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Ownership.Role.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
return;
}
return;
}
if (playerData.getType() == null) {
playerData.setType(Ownership.Visibility.Hidden);
}
if (playerData.getType() == null) {
playerData.setType(Visibility.Hidden);
}
ItemStack is = event.getItem();
ItemStack is = event.getItem();
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Ownership.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Ownership.Item.Original.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Ownership.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Ownership.Item.Original.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Ownership.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Ownership.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.WRITABLE_BOOK.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Ownership.Item.Assign.Displayname"))))) {
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.WRITABLE_BOOK.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Ownership.Item.Assign.Displayname"))))) {
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, new AnvilGUI.AnvilClickEventHandler() {
@Override
public void onAnvilClick(final AnvilGUI.AnvilClickEvent event) {
if (event.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) {
if (playerDataManager.hasPlayerData(player)) {
Island island = islandManager.getIsland(player);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> {
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event1 -> {
if (event1.getSlot() == AbstractAnvilGUI.AnvilSlot.OUTPUT) {
if (playerDataManager.hasPlayerData(player)) {
Island island1 = islandManager.getIsland(player);
if (island == null) {
messageManager.sendMessage(player, configLoad
.getString("Command.Island.Ownership.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(),
1.0F, 1.0F);
if (island1 == null) {
messageManager.sendMessage(player, configLoad
.getString("Command.Island.Ownership.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(),
1.0F, 1.0F);
return;
} else if (!island.hasRole(IslandRole.Owner,
player.getUniqueId())) {
messageManager.sendMessage(player, configLoad
.getString("Command.Island.Ownership.Role.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(),
1.0F, 1.0F);
return;
} else if (!island1.hasRole(IslandRole.Owner,
player.getUniqueId())) {
messageManager.sendMessage(player, configLoad
.getString("Command.Island.Ownership.Role.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(),
1.0F, 1.0F);
return;
}
Bukkit.getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
Bukkit.getServer().dispatchCommand(player,
"island ownership " + event.getName());
}
});
}
} else {
event.setWillClose(false);
event.setWillDestroy(false);
}
return;
}
});
ItemStack is = new ItemStack(Material.NAME_TAG);
ItemMeta im = is.getItemMeta();
im.setDisplayName(configLoad.getString("Menu.Ownership.Item.Assign.Word.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
}
}, 1L);
} else if ((is.getType() == Materials.LEGACY_EMPTY_MAP.getPostMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Ownership.Item.Password.Displayname"))))) {
if (island.hasPassword()) {
if (event.getClick() == ClickType.MIDDLE) {
Ownership.Visibility visibility = (Ownership.Visibility) playerData.getType();
if (visibility == Ownership.Visibility.Hidden) {
playerData.setType(Ownership.Visibility.Visible);
} else {
playerData.setType(Ownership.Visibility.Hidden);
Bukkit.getScheduler().runTask(skyblock, () -> Bukkit.getServer().dispatchCommand(player,
"island ownership " + event1.getName()));
}
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);
return;
} else if (event.getClick() == ClickType.RIGHT) {
island.setPassword(null);
soundManager.playSound(player, Sounds.EXPLODE.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
return;
} else if (event.getClick() != ClickType.LEFT) {
event.setWillClose(false);
event.setWillDestroy(false);
return;
} else {
event1.setWillClose(false);
event1.setWillDestroy(false);
}
});
ItemStack is1 = new ItemStack(Material.NAME_TAG);
ItemMeta im = is1.getItemMeta();
im.setDisplayName(configLoad.getString("Menu.Ownership.Item.Assign.Word.Enter"));
is1.setItemMeta(im);
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, is1);
gui.open();
}, 1L);
} else if ((is.getType() == Materials.LEGACY_EMPTY_MAP.getPostMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Ownership.Item.Password.Displayname"))))) {
if (island.hasPassword()) {
if (event.getClick() == ClickType.MIDDLE) {
Visibility visibility = (Visibility) playerData.getType();
if (visibility == Visibility.Hidden) {
playerData.setType(Visibility.Visible);
} else {
playerData.setType(Visibility.Hidden);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
return;
} else if (event.getClick() == ClickType.RIGHT) {
island.setPassword(null);
soundManager.playSound(player, Sounds.EXPLODE.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
return;
} else if (event.getClick() != ClickType.LEFT) {
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
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, new AnvilGUI.AnvilClickEventHandler() {
@Override
public void onAnvilClick(final AnvilGUI.AnvilClickEvent event) {
if (event.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) {
if (playerDataManager.hasPlayerData(player)) {
Island island = islandManager.getIsland(player);
if (island == null) {
messageManager.sendMessage(player, configLoad
.getString("Command.Island.Ownership.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(),
1.0F, 1.0F);
return;
} else if (!island.hasRole(IslandRole.Owner,
player.getUniqueId())) {
messageManager.sendMessage(player, configLoad
.getString("Command.Island.Ownership.Role.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(),
1.0F, 1.0F);
return;
}
island.setPassword(
event.getName().replace("&", "").replace(" ", ""));
soundManager.playSound(player, Sounds.ANVIL_USE.bukkitSound(), 1.0F,
1.0F);
Bukkit.getServer().getScheduler()
.runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
}
} else {
event.setWillClose(false);
event.setWillDestroy(false);
}
}
});
ItemStack is = new ItemStack(Material.NAME_TAG);
ItemMeta im = is.getItemMeta();
im.setDisplayName(
configLoad.getString("Menu.Ownership.Item.Password.Hidden.Word.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
}
}, 1L);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> {
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event12 -> {
if (event12.getSlot() == AbstractAnvilGUI.AnvilSlot.OUTPUT) {
if (playerDataManager.hasPlayerData(player)) {
Island island12 = islandManager.getIsland(player);
if (island12 == null) {
messageManager.sendMessage(player, configLoad
.getString("Command.Island.Ownership.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(),
1.0F, 1.0F);
return;
} else if (!island12.hasRole(IslandRole.Owner,
player.getUniqueId())) {
messageManager.sendMessage(player, configLoad
.getString("Command.Island.Ownership.Role.Message"));
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(),
1.0F, 1.0F);
return;
}
island12.setPassword(
event12.getName().replace("&", "").replace(" ", ""));
soundManager.playSound(player, Sounds.ANVIL_USE.bukkitSound(), 1.0F,
1.0F);
Bukkit.getServer().getScheduler()
.runTaskLater(skyblock, () -> open(player), 1L);
}
} else {
event12.setWillClose(false);
event12.setWillDestroy(false);
}
});
ItemStack is12 = new ItemStack(Material.NAME_TAG);
ItemMeta im = is12.getItemMeta();
im.setDisplayName(
configLoad.getString("Menu.Ownership.Item.Password.Hidden.Word.Enter"));
is12.setItemMeta(im);
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, is12);
gui.open();
}, 1L);
}
}
});
@ -324,12 +289,7 @@ public class Ownership {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Ownership.Title")));
nInv.setType(InventoryType.HOPPER);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}

View File

@ -4,6 +4,7 @@ import java.io.File;
import java.util.ArrayList;
import java.util.List;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
@ -120,8 +121,18 @@ public class Rollback implements Listener {
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
if (event.getInventory().getName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Rollback.Title")))) {
String inventoryName = "";
if (NMSUtil.getVersionNumber() > 13) {
inventoryName = event.getView().getTitle();
} else {
try {
inventoryName = (String) Inventory.class.getMethod("getName").invoke(event.getInventory());
} catch (Exception ex) {
ex.printStackTrace();
}
}
if (inventoryName.equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Rollback.Title")))) {
event.setCancelled(true);
Island island = islandManager.getIsland(player);

File diff suppressed because it is too large Load Diff

View File

@ -73,423 +73,49 @@ public class Upgrade {
if (playerDataManager.hasPlayerData(player) && playerDataManager.getPlayerData(player).getOwner() != null) {
Island island = islandManager.getIsland(player);
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"));
nInventoryUtil nInv = new nInventoryUtil(player, 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;
}
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
ItemStack is = event.getItem();
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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed,
false);
for (Player all : islandManager.getPlayersAtIsland(island)) {
all.removePotionEffect(PotionEffectType.SPEED);
}
} else {
island.setUpgrade(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed,
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.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(player,
me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed, 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.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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump,
false);
for (Player all : islandManager.getPlayersAtIsland(island)) {
all.removePotionEffect(PotionEffectType.JUMP);
}
} else {
island.setUpgrade(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump,
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.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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump,
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() == 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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop, false);
} else {
island.setUpgrade(player, 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(player, 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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly, false);
islandManager.updateFlightAtIsland(island);
} else {
island.setUpgrade(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly, true);
islandManager.updateFlightAtIsland(island);
}
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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly,
true);
islandManager.updateFlightAtIsland(island);
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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops,
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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed,
false);
} else {
island.setUpgrade(player, 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(player, 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);
for (Player all : islandManager.getPlayersAtIsland(island)) {
all.removePotionEffect(PotionEffectType.SPEED);
}
} 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().getPluginManager().callEvent(new IslandUpgradeEvent(
island.getAPIWrapper(), player, APIUtil.fromImplementation(
me.goodandevil.skyblock.upgrade.Upgrade.Type.Size)));
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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner,
false);
} else {
island.setUpgrade(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner,
island.setUpgrade(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed,
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);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
} else {
List<me.goodandevil.skyblock.upgrade.Upgrade> upgrades = upgradeManager
.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner);
.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);
@ -501,16 +127,11 @@ public class Upgrade {
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
economyManager.withdraw(player, upgrade.getCost());
island.setUpgrade(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner,
true);
island.setUpgrade(player,
me.goodandevil.skyblock.upgrade.Upgrade.Type.Speed, true);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
} else {
messageManager.sendMessage(player,
configLoad.getString("Island.Upgrade.Money.Message"));
@ -528,6 +149,317 @@ public class Upgrade {
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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump,
false);
for (Player all : islandManager.getPlayersAtIsland(island)) {
all.removePotionEffect(PotionEffectType.JUMP);
}
} else {
island.setUpgrade(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump,
true);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> 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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Jump,
true);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> 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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop, false);
} else {
island.setUpgrade(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop, true);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> 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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Crop,
true);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> 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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly, false);
islandManager.updateFlightAtIsland(island);
} else {
island.setUpgrade(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly, true);
islandManager.updateFlightAtIsland(island);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> 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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Fly,
true);
islandManager.updateFlightAtIsland(island);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> 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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops,
false);
} else {
island.setUpgrade(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops, true);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> 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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops,
true);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> 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().getPluginManager().callEvent(new IslandUpgradeEvent(
island.getAPIWrapper(), player, APIUtil.fromImplementation(
me.goodandevil.skyblock.upgrade.Upgrade.Type.Size)));
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> 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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner,
false);
} else {
island.setUpgrade(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner,
true);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> 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(player, me.goodandevil.skyblock.upgrade.Upgrade.Type.Spawner,
true);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> 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);
}
}
}
}

View File

@ -62,232 +62,199 @@ public class Visit {
FileConfiguration configLoad = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"))
.getFileConfiguration();
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
if (playerData.getType() == null || playerData.getSort() == null) {
playerData.setType(Visit.Type.Default);
playerData.setSort(Visit.Sort.Default);
if (playerData.getType() == null || playerData.getSort() == null) {
playerData.setType(Type.Default);
playerData.setSort(Sort.Default);
}
ItemStack is = event.getItem();
if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Statistics.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Material.HOPPER) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Type.Displayname")))) {
Type type1 = (Type) playerData.getType();
if (type1.ordinal() + 1 == Type.values().length) {
playerData.setType(Type.Default);
} else {
playerData.setType(Type.values()[type1.ordinal() + 1]);
}
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Sort.Displayname")))) {
Sort sort1 = (Sort) playerData.getSort();
if (sort1.ordinal() + 1 == Sort.values().length) {
playerData.setSort(Sort.Default);
} else {
playerData.setSort(Sort.values()[sort1.ordinal() + 1]);
}
}
ItemStack is = event.getItem();
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, (Type) playerData.getType(), (Sort) playerData.getSort()), 1L);
} else if ((is.getType() == Material.BARRIER) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Nothing.Displayname"))))) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Statistics.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Material.HOPPER) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Type.Displayname")))) {
Visit.Type type = (Visit.Type) playerData.getType();
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, (Type) playerData.getType(), (Sort) playerData.getSort()), 1L);
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
if (type.ordinal() + 1 == Visit.Type.values().length) {
playerData.setType(Visit.Type.Default);
} else {
playerData.setType(Visit.Type.values()[type.ordinal() + 1]);
}
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Sort.Displayname")))) {
Visit.Sort sort = (Visit.Sort) playerData.getSort();
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, (Type) playerData.getType(), (Sort) playerData.getSort()), 1L);
} else {
String targetPlayerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
UUID targetPlayerUUID;
if (sort.ordinal() + 1 == Visit.Sort.values().length) {
playerData.setSort(Visit.Sort.Default);
} else {
playerData.setSort(Visit.Sort.values()[sort.ordinal() + 1]);
}
Player targetPlayer = Bukkit.getServer().getPlayer(targetPlayerName);
if (targetPlayer == null) {
targetPlayerUUID = new OfflinePlayer(targetPlayerName).getUniqueId();
} else {
targetPlayerUUID = targetPlayer.getUniqueId();
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
if (visitManager.hasIsland(targetPlayerUUID)) {
me.goodandevil.skyblock.visit.Visit visit = visitManager.getIsland(targetPlayerUUID);
boolean isCoopPlayer = false;
org.bukkit.OfflinePlayer offlinePlayer = Bukkit.getServer()
.getOfflinePlayer(targetPlayerUUID);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
}
}, 1L);
} else if ((is.getType() == Material.BARRIER) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Nothing.Displayname"))))) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
if (islandManager.containsIsland(targetPlayerUUID)) {
if (islandManager.getIsland(offlinePlayer).isCoopPlayer(player.getUniqueId())) {
isCoopPlayer = true;
}
}, 1L);
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visit.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
}
}, 1L);
} else {
String targetPlayerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
UUID targetPlayerUUID;
Player targetPlayer = Bukkit.getServer().getPlayer(targetPlayerName);
if (targetPlayer == null) {
targetPlayerUUID = new OfflinePlayer(targetPlayerName).getUniqueId();
} else {
targetPlayerUUID = targetPlayer.getUniqueId();
}
if (visitManager.hasIsland(targetPlayerUUID)) {
me.goodandevil.skyblock.visit.Visit visit = visitManager.getIsland(targetPlayerUUID);
boolean isCoopPlayer = false;
org.bukkit.OfflinePlayer offlinePlayer = Bukkit.getServer()
.getOfflinePlayer(targetPlayerUUID);
if (islandManager.containsIsland(targetPlayerUUID)) {
if (islandManager.getIsland(offlinePlayer).isCoopPlayer(player.getUniqueId())) {
isCoopPlayer = true;
}
if (isCoopPlayer || player.hasPermission("fabledskyblock.bypass")
|| player.hasPermission("fabledskyblock.bypass.*")
|| player.hasPermission("fabledskyblock.*") || visit.isOpen()) {
if (!islandManager.containsIsland(targetPlayerUUID)) {
islandManager.loadIsland(Bukkit.getServer().getOfflinePlayer(targetPlayerUUID));
}
if (isCoopPlayer || player.hasPermission("fabledskyblock.bypass")
|| player.hasPermission("fabledskyblock.bypass.*")
|| player.hasPermission("fabledskyblock.*") || visit.isOpen()) {
if (!islandManager.containsIsland(targetPlayerUUID)) {
islandManager.loadIsland(Bukkit.getServer().getOfflinePlayer(targetPlayerUUID));
}
Island island = islandManager.getIsland(offlinePlayer);
Island island = islandManager.getIsland(offlinePlayer);
if ((!island.hasRole(IslandRole.Member, player.getUniqueId())
&& !island.hasRole(IslandRole.Operator, player.getUniqueId())
&& !island.hasRole(IslandRole.Owner, player.getUniqueId()))
&& fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Visitor.Vote")) {
if (event.getClick() == ClickType.RIGHT) {
if (playerData.getIsland() != null
&& playerData.getIsland().equals(island.getOwnerUUID())) {
if (visit.getVoters().contains(player.getUniqueId())) {
visit.removeVoter(player.getUniqueId());
if ((!island.hasRole(IslandRole.Member, player.getUniqueId())
&& !island.hasRole(IslandRole.Operator, player.getUniqueId())
&& !island.hasRole(IslandRole.Owner, player.getUniqueId()))
&& fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Visitor.Vote")) {
if (event.getClick() == ClickType.RIGHT) {
if (playerData.getIsland() != null
&& playerData.getIsland().equals(island.getOwnerUUID())) {
if (visit.getVoters().contains(player.getUniqueId())) {
visit.removeVoter(player.getUniqueId());
messageManager.sendMessage(player,
configLoad.getString("Island.Visit.Vote.Removed.Message")
.replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.EXPLODE.bukkitSound(), 1.0F,
1.0F);
} else {
visit.addVoter(player.getUniqueId());
messageManager.sendMessage(player,
configLoad.getString("Island.Visit.Vote.Added.Message")
.replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F,
1.0F);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F,
1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(),
(Visit.Sort) playerData.getSort());
}
}, 1L);
} else {
messageManager.sendMessage(player,
configLoad.getString("Island.Visit.Vote.Island.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F,
configLoad.getString("Island.Visit.Vote.Removed.Message")
.replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.EXPLODE.bukkitSound(), 1.0F,
1.0F);
} else {
visit.addVoter(player.getUniqueId());
event.setWillClose(false);
event.setWillDestroy(false);
messageManager.sendMessage(player,
configLoad.getString("Island.Visit.Vote.Added.Message")
.replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F,
1.0F);
}
islandManager.unloadIsland(island, null);
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F,
1.0F);
return;
} else if (event.getClick() != ClickType.LEFT) {
return;
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player, (Type) playerData.getType(),
(Sort) playerData.getSort()), 1L);
} else {
messageManager.sendMessage(player,
configLoad.getString("Island.Visit.Vote.Island.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F,
1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
}
if (islandManager.isPlayerAtIsland(island, player)) {
messageManager.sendMessage(player,
configLoad.getString("Island.Visit.Already.Message").replace("%player",
targetPlayerName));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
islandManager.unloadIsland(island, null);
return;
} else if (event.getClick() != ClickType.LEFT) {
return;
}
}
islandManager.visitIsland(player, island);
if (islandManager.isPlayerAtIsland(island, player)) {
messageManager.sendMessage(player,
configLoad.getString("Island.Visit.Teleported.Message").replace("%player",
targetPlayerName));
soundManager.playSound(player, Sounds.ENDERMAN_TELEPORT.bukkitSound(), 1.0F, 1.0F);
} else {
messageManager.sendMessage(player,
configLoad.getString("Island.Visit.Closed.Menu.Message").replace("%player",
configLoad.getString("Island.Visit.Already.Message").replace("%player",
targetPlayerName));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(),
(Visit.Sort) playerData.getSort());
}
}, 1L);
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
return;
islandManager.visitIsland(player, island);
messageManager.sendMessage(player,
configLoad.getString("Island.Visit.Teleported.Message").replace("%player",
targetPlayerName));
soundManager.playSound(player, Sounds.ENDERMAN_TELEPORT.bukkitSound(), 1.0F, 1.0F);
} else {
messageManager.sendMessage(player,
configLoad.getString("Island.Visit.Closed.Menu.Message").replace("%player",
targetPlayerName));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player, (Type) playerData.getType(),
(Sort) playerData.getSort()), 1L);
}
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Exist.Message")
.replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
}
}, 1L);
return;
}
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Exist.Message")
.replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, (Type) playerData.getType(), (Sort) playerData.getSort()), 1L);
}
}
}
@ -561,12 +528,7 @@ public class Visit {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Visit.Title")));
nInv.setRows(6);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
public enum Type {

View File

@ -57,101 +57,74 @@ public class Visitors {
FileConfiguration configLoad = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"))
.getFileConfiguration();
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = skyblock.getPlayerDataManager().getPlayerData(player);
Island island = islandManager.getIsland(player);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = skyblock.getPlayerDataManager().getPlayerData(player);
Island island = islandManager.getIsland(player);
if (island == null) {
skyblock.getMessageManager().sendMessage(player,
configLoad.getString("Command.Island.Visitors.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
if (island == null) {
skyblock.getMessageManager().sendMessage(player,
configLoad.getString("Command.Island.Visitors.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
return;
}
ItemStack is = event.getItem();
ItemStack is = event.getItem();
if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visitors.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visitors.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visitors.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visitors.Item.Statistics.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visitors.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visitors.Item.Statistics.Displayname"))))) {
soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Material.BARRIER) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visitors.Item.Nothing.Displayname"))))) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Material.BARRIER) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visitors.Item.Nothing.Displayname"))))) {
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visitors.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Visitors.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
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.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes(
'&', configLoad.getString("Menu.Visitors.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes(
'&', configLoad.getString("Menu.Visitors.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
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 {
boolean isOperator = island.hasRole(IslandRole.Operator, player.getUniqueId()),
isOwner = island.hasRole(IslandRole.Owner, player.getUniqueId()),
canKick = island.getSetting(IslandRole.Operator, "Kick").getStatus(),
canBan = island.getSetting(IslandRole.Operator, "Ban").getStatus(),
banningEnabled = fileManager
.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Visitor.Banning");
String playerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else {
boolean isOperator = island.hasRole(IslandRole.Operator, player.getUniqueId()),
isOwner = island.hasRole(IslandRole.Owner, player.getUniqueId()),
canKick = island.getSetting(IslandRole.Operator, "Kick").getStatus(),
canBan = island.getSetting(IslandRole.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) {
if (banningEnabled && ((isOperator && canBan) || isOwner)) {
if (event.getClick() == ClickType.LEFT) {
Bukkit.getServer().dispatchCommand(player, "island kick " + playerName);
} else if (event.getClick() == ClickType.RIGHT) {
Bukkit.getServer().dispatchCommand(player, "island ban " + playerName);
} else {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F,
1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
} else {
if ((isOperator && canKick) || isOwner) {
if (banningEnabled && ((isOperator && canBan) || isOwner)) {
if (event.getClick() == ClickType.LEFT) {
Bukkit.getServer().dispatchCommand(player, "island kick " + playerName);
}
} else {
if (banningEnabled && ((isOperator && canBan) || isOwner)) {
} else if (event.getClick() == ClickType.RIGHT) {
Bukkit.getServer().dispatchCommand(player, "island ban " + playerName);
} else {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F,
@ -162,15 +135,24 @@ public class Visitors {
return;
}
} else {
Bukkit.getServer().dispatchCommand(player, "island kick " + playerName);
}
} else {
if (banningEnabled && ((isOperator && canBan) || isOwner)) {
Bukkit.getServer().dispatchCommand(player, "island ban " + playerName);
} else {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F,
1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
}
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
}
}
@ -313,12 +295,7 @@ public class Visitors {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Visitors.Title")));
nInv.setRows(6);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}
}

View File

@ -52,138 +52,120 @@ public class Weather {
FileConfiguration configLoad = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"))
.getFileConfiguration();
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (playerDataManager.hasPlayerData(player)) {
Island island = islandManager.getIsland(player);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (playerDataManager.hasPlayerData(player)) {
Island island = islandManager.getIsland(player);
if (island == null) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Weather.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
if (island == null) {
messageManager.sendMessage(player,
configLoad.getString("Command.Island.Weather.Owner.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
return;
} else if (!((island.hasRole(IslandRole.Operator, player.getUniqueId())
&& island.getSetting(IslandRole.Operator, "Biome").getStatus())
|| island.hasRole(IslandRole.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();
return;
} else if (!((island.hasRole(IslandRole.Operator, player.getUniqueId())
&& island.getSetting(IslandRole.Operator, "Biome").getStatus())
|| island.hasRole(IslandRole.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();
return;
return;
}
ItemStack is = event.getItem();
if ((is.getType() == Material.NAME_TAG) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Weather.Item.Info.Displayname"))))) {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Weather.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.SUNFLOWER.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Weather.Item.Time.Displayname"))))) {
int islandTime = island.getTime();
if (islandTime == 0) {
island.setTime(1000);
} else if (islandTime == 1000) {
island.setTime(6000);
} else if (islandTime == 6000) {
island.setTime(12000);
} else if (islandTime == 12000) {
island.setTime(13000);
} else if (islandTime == 13000) {
island.setTime(18000);
} else if (islandTime == 18000) {
island.setTime(0);
}
ItemStack is = event.getItem();
if (!island.isWeatherSynchronized()) {
for (Player all : islandManager.getPlayersAtIsland(island, IslandWorld.Normal)) {
all.setPlayerTime(island.getTime(),
fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Weather.Time.Cycle"));
}
}
if ((is.getType() == Material.NAME_TAG) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Weather.Item.Info.Displayname"))))) {
soundManager.playSound(player, Sounds.CHICKEN_EGG_POP.bukkitSound(), 1.0F, 1.0F);
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.BLACK_STAINED_GLASS_PANE.parseMaterial())
&& (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Weather.Item.Barrier.Displayname"))))) {
soundManager.playSound(player, Sounds.GLASS.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else if ((is.getType() == Material.GHAST_TEAR) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Weather.Item.Weather.Displayname"))))) {
if (island.getWeather() == WeatherType.DOWNFALL) {
island.setWeather(WeatherType.CLEAR);
} else {
island.setWeather(WeatherType.DOWNFALL);
}
if (!island.isWeatherSynchronized()) {
for (Player all : islandManager.getPlayersAtIsland(island, IslandWorld.Normal)) {
all.setPlayerWeather(island.getWeather());
}
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else if ((is.getType() == Material.TRIPWIRE_HOOK) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Weather.Item.Synchronised.Displayname"))))) {
if (island.isWeatherSynchronized()) {
island.setWeatherSynchronized(false);
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == Materials.SUNFLOWER.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Weather.Item.Time.Displayname"))))) {
int islandTime = island.getTime();
WeatherType islandWeather = island.getWeather();
if (islandTime == 0) {
island.setTime(1000);
} else if (islandTime == 1000) {
island.setTime(6000);
} else if (islandTime == 6000) {
island.setTime(12000);
} else if (islandTime == 12000) {
island.setTime(13000);
} else if (islandTime == 13000) {
island.setTime(18000);
} else if (islandTime == 18000) {
island.setTime(0);
for (Player all : islandManager.getPlayersAtIsland(island, IslandWorld.Normal)) {
all.setPlayerTime(islandTime,
fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Weather.Time.Cycle"));
all.setPlayerWeather(islandWeather);
}
} else {
island.setWeatherSynchronized(true);
if (!island.isWeatherSynchronized()) {
for (Player all : islandManager.getPlayersAtIsland(island, IslandWorld.Normal)) {
all.setPlayerTime(island.getTime(),
fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Weather.Time.Cycle"));
}
for (Player all : islandManager.getPlayersAtIsland(island, IslandWorld.Normal)) {
all.resetPlayerTime();
all.resetPlayerWeather();
}
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() == Material.GHAST_TEAR) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Weather.Item.Weather.Displayname"))))) {
if (island.getWeather() == WeatherType.DOWNFALL) {
island.setWeather(WeatherType.CLEAR);
} else {
island.setWeather(WeatherType.DOWNFALL);
}
if (!island.isWeatherSynchronized()) {
for (Player all : islandManager.getPlayersAtIsland(island, IslandWorld.Normal)) {
all.setPlayerWeather(island.getWeather());
}
}
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() == Material.TRIPWIRE_HOOK) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Weather.Item.Synchronised.Displayname"))))) {
if (island.isWeatherSynchronized()) {
island.setWeatherSynchronized(false);
int islandTime = island.getTime();
WeatherType islandWeather = island.getWeather();
for (Player all : islandManager.getPlayersAtIsland(island, IslandWorld.Normal)) {
all.setPlayerTime(islandTime,
fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"))
.getFileConfiguration().getBoolean("Island.Weather.Time.Cycle"));
all.setPlayerWeather(islandWeather);
}
} else {
island.setWeatherSynchronized(true);
for (Player all : islandManager.getPlayersAtIsland(island, IslandWorld.Normal)) {
all.resetPlayerTime();
all.resetPlayerWeather();
}
}
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);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
}
});
@ -256,12 +238,7 @@ public class Weather {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Weather.Title")));
nInv.setType(InventoryType.HOPPER);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}
}

View File

@ -9,7 +9,7 @@ import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.placeholder.Placeholder;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.AnvilGUI;
import me.goodandevil.skyblock.utils.AbstractAnvilGUI;
import me.goodandevil.skyblock.utils.item.SkullUtil;
import me.goodandevil.skyblock.utils.item.nInventoryUtil;
import me.goodandevil.skyblock.utils.version.Materials;
@ -24,6 +24,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
@ -64,7 +65,7 @@ public class Generator implements Listener {
configLoad.getString("Menu.Admin.Generator.Browse.Item.Exit.Displayname"), null, null, null, null),
0, 8);
nInv.addItem(
nInv.createItem(new ItemStack(org.bukkit.Material.SIGN),
nInv.createItem(new ItemStack(Materials.OAK_SIGN.parseMaterial()),
configLoad.getString("Menu.Admin.Generator.Browse.Item.Information.Displayname"),
configLoad.getStringList("Menu.Admin.Generator.Browse.Item.Information.Lore"),
new Placeholder[]{new Placeholder("%generators", "" + generators.size())}, null, null),
@ -191,8 +192,18 @@ public class Generator implements Listener {
Config config = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
if (!event.getInventory().getName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Generator.Title"))))
String inventoryName = "";
if (NMSUtil.getVersionNumber() > 13) {
inventoryName = event.getView().getTitle();
} else {
try {
inventoryName = (String) Inventory.class.getMethod("getName").invoke(event.getInventory());
} catch (Exception ex) {
ex.printStackTrace();
}
}
if (!inventoryName.equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Generator.Title"))))
return;
event.setCancelled(true);
@ -240,22 +251,17 @@ public class Generator implements Listener {
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
return;
}
} else if ((event.getCurrentItem().getType() == Material.SIGN) && (is.hasItemMeta())
} else if ((event.getCurrentItem().getType() == Materials.OAK_SIGN.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Generator.Browse.Item.Information.Displayname"))))) {
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
AnvilGUI gui = new AnvilGUI(player, event1 -> {
if (event1.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) {
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event1 -> {
if (event1.getSlot() == AbstractAnvilGUI.AnvilSlot.OUTPUT) {
if (!(player.hasPermission("fabledskyblock.admin.generator")
|| player.hasPermission("fabledskyblock.admin.*")
|| player.hasPermission("fabledskyblock.*"))) {
@ -278,31 +284,23 @@ public class Generator implements Listener {
.replace("%generator", event1.getName()));
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(), "generators.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, () -> {
Config config14 = fileManager
.getConfig(new File(skyblock.getDataFolder(), "generators.yml"));
FileConfiguration configLoad14 = config14.getFileConfiguration();
configLoad.set("Generators." + event1.getName() + ".Name", event1.getName());
configLoad14.set("Generators." + event1.getName() + ".Name", event1.getName());
try {
configLoad.save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
try {
configLoad14.save(config14.getFile());
} catch (IOException e) {
e.printStackTrace();
}
});
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
event1.setWillClose(true);
@ -318,7 +316,7 @@ public class Generator implements Listener {
im.setDisplayName(configLoad.getString("Menu.Admin.Generator.Browse.Item.Information.Word.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
return;
@ -334,7 +332,7 @@ public class Generator implements Listener {
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, () -> open(player), 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else {
String name = ((Generator.Viewer) playerData.getViewer()).getName();
@ -366,12 +364,7 @@ public class Generator implements Listener {
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else {
playerData.setViewer(null);
@ -381,12 +374,7 @@ public class Generator implements Listener {
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
}
@ -410,12 +398,7 @@ public class Generator implements Listener {
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
return;
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
@ -425,12 +408,7 @@ public class Generator implements Listener {
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
return;
}
@ -456,8 +434,8 @@ public class Generator implements Listener {
if (event.getClick() == ClickType.LEFT) {
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
AnvilGUI gui = new AnvilGUI(player, event1 -> {
if (event1.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) {
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event1 -> {
if (event1.getSlot() == AbstractAnvilGUI.AnvilSlot.OUTPUT) {
if (!(player.hasPermission("fabledskyblock.admin.generator")
|| player.hasPermission("fabledskyblock.admin.*")
|| player.hasPermission("fabledskyblock.*"))) {
@ -534,7 +512,7 @@ public class Generator implements Listener {
player.closeInventory();
Bukkit.getServer().getScheduler()
.runTaskLaterAsynchronously(skyblock, () -> open(player), 1L);
.runTaskLater(skyblock, () -> open(player), 1L);
}
}
@ -552,36 +530,33 @@ public class Generator implements Listener {
.getString("Menu.Admin.Generator.Generator.Item.Material.Word.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
} else if (event.getClick() == ClickType.RIGHT) {
generator.getGeneratorMaterials().remove(generatorMaterialList);
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
Config config = fileManager.getConfig(
new File(skyblock.getDataFolder(), "generators.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
() -> {
Config config15 = fileManager.getConfig(
new File(skyblock.getDataFolder(), "generators.yml"));
FileConfiguration configLoad15 = config15.getFileConfiguration();
configLoad.set(
"Generators." + generator.getName() + ".Materials."
+ generatorMaterialList.getMaterials().name(),
null);
configLoad15.set(
"Generators." + generator.getName() + ".Materials."
+ generatorMaterialList.getMaterials().name(),
null);
try {
configLoad.save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
try {
configLoad15.save(config15.getFile());
} catch (IOException e) {
e.printStackTrace();
}
});
soundManager.playSound(player, Sounds.IRONGOLEM_HIT.bukkitSound(), 1.0F, 1.0F);
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock,
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
}
@ -623,27 +598,24 @@ public class Generator implements Listener {
.replace("%generator", generator.getName()));
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(), "generators.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, () -> {
Config config16 = fileManager
.getConfig(new File(skyblock.getDataFolder(), "generators.yml"));
FileConfiguration configLoad16 = config16.getFileConfiguration();
configLoad.set("Generators." + generator.getName() + ".Materials."
+ materials.name() + ".Chance", 0);
configLoad16.set("Generators." + generator.getName() + ".Materials."
+ materials.name() + ".Chance", 0);
try {
configLoad.save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
try {
configLoad16.save(config16.getFile());
} catch (IOException e) {
e.printStackTrace();
}
});
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, () -> open(player), 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
return;
@ -656,7 +628,7 @@ public class Generator implements Listener {
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, () -> open(player), 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
return;
@ -673,7 +645,7 @@ public class Generator implements Listener {
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, () -> open(player), 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else if (event.getClick() == ClickType.RIGHT) {
generatorManager.removeGenerator(generatorList);
@ -698,7 +670,7 @@ public class Generator implements Listener {
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, () -> open(player), 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
}
return;

View File

@ -27,7 +27,7 @@ import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.placeholder.Placeholder;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.sound.SoundManager;
import me.goodandevil.skyblock.utils.AnvilGUI;
import me.goodandevil.skyblock.utils.AbstractAnvilGUI;
import me.goodandevil.skyblock.utils.NumberUtil;
import me.goodandevil.skyblock.utils.item.MaterialUtil;
import me.goodandevil.skyblock.utils.item.SkullUtil;
@ -80,7 +80,7 @@ public class Levelling implements Listener {
configLoad.getString("Menu.Admin.Levelling.Item.Exit.Displayname"), null, null, null, null),
0, 8);
nInv.addItem(
nInv.createItem(new ItemStack(org.bukkit.Material.SIGN),
nInv.createItem(new ItemStack(Materials.OAK_SIGN.parseMaterial()),
configLoad.getString("Menu.Admin.Levelling.Item.Information.Displayname"),
configLoad.getStringList("Menu.Admin.Levelling.Item.Information.Lore"),
new Placeholder[] { new Placeholder("%materials", "" + levellingMaterials.size()),
@ -142,12 +142,7 @@ public class Levelling implements Listener {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Levelling.Title")));
nInv.setRows(6);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
@SuppressWarnings("deprecation")
@ -167,8 +162,18 @@ public class Levelling implements Listener {
Config config = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
if (event.getInventory().getName().equals(
ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Levelling.Title")))) {
String inventoryName = "";
if (NMSUtil.getVersionNumber() > 13) {
inventoryName = event.getView().getTitle();
} else {
try {
inventoryName = (String) Inventory.class.getMethod("getName").invoke(event.getInventory());
} catch (Exception ex) {
ex.printStackTrace();
}
}
if (inventoryName.equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Levelling.Title")))) {
PlayerData playerData = skyblock.getPlayerDataManager().getPlayerData(player);
if (!(player.hasPermission("fabledskyblock.admin.level") || player.hasPermission("fabledskyblock.admin.*")
@ -197,14 +202,14 @@ public class Levelling implements Listener {
player.closeInventory();
return;
} else if ((event.getCurrentItem().getType() == Material.SIGN) && (is.hasItemMeta())
} else if ((event.getCurrentItem().getType() == Materials.OAK_SIGN.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Levelling.Item.Information.Displayname"))))) {
event.setCancelled(true);
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
AnvilGUI gui = new AnvilGUI(player, event1 -> {
if (event1.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) {
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event1 -> {
if (event1.getSlot() == AbstractAnvilGUI.AnvilSlot.OUTPUT) {
if (!(player.hasPermission("fabledskyblock.admin.level")
|| player.hasPermission("fabledskyblock.admin.*")
|| player.hasPermission("fabledskyblock.*"))) {
@ -219,31 +224,23 @@ public class Levelling implements Listener {
.replace("%division", NumberUtil.formatNumberByDecimal(pointDivision)));
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(), "config.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, () -> {
Config config12 = fileManager
.getConfig(new File(skyblock.getDataFolder(), "config.yml"));
FileConfiguration configLoad12 = config12.getFileConfiguration();
configLoad.set("Island.Levelling.Division", pointDivision);
configLoad12.set("Island.Levelling.Division", pointDivision);
try {
configLoad.save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
try {
configLoad12.save(config12.getFile());
} catch (IOException e) {
e.printStackTrace();
}
});
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
} else {
messageManager.sendMessage(player,
configLoad.getString("Island.Admin.Levelling.Numerical.Message"));
@ -263,7 +260,7 @@ public class Levelling implements Listener {
im.setDisplayName(configLoad.getString("Menu.Admin.Levelling.Item.Information.Word.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
return;
@ -284,12 +281,7 @@ public class Levelling implements Listener {
playerData.setPage(playerData.getPage() - 1);
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);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
return;
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
@ -300,12 +292,7 @@ public class Levelling implements Listener {
playerData.setPage(playerData.getPage() + 1);
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);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player), 1L);
return;
}
@ -322,8 +309,8 @@ public class Levelling implements Listener {
if (event.getClick() == ClickType.LEFT) {
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
AnvilGUI gui = new AnvilGUI(player, event1 -> {
if (event1.getSlot() == AnvilGUI.AnvilSlot.OUTPUT) {
AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event1 -> {
if (event1.getSlot() == AbstractAnvilGUI.AnvilSlot.OUTPUT) {
if (!(player.hasPermission("fabledskyblock.admin.level")
|| player.hasPermission("fabledskyblock.admin.*")
|| player.hasPermission("fabledskyblock.*"))) {
@ -343,32 +330,24 @@ public class Levelling implements Listener {
1.0F);
player.closeInventory();
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
open(player);
}
}, 1L);
Bukkit.getServer().getScheduler().runTaskLater(skyblock,
() -> open(player), 1L);
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock,
new Runnable() {
@Override
public void run() {
Config config = fileManager.getConfig(new File(
skyblock.getDataFolder(), "levelling.yml"));
FileConfiguration configLoad = config
.getFileConfiguration();
() -> {
Config config1 = fileManager.getConfig(new File(
skyblock.getDataFolder(), "levelling.yml"));
FileConfiguration configLoad1 = config1
.getFileConfiguration();
configLoad.set(
"Materials." + materials.name() + ".Points",
materialPoints);
configLoad1.set(
"Materials." + materials.name() + ".Points",
materialPoints);
try {
configLoad.save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
try {
configLoad1.save(config1.getFile());
} catch (IOException e) {
e.printStackTrace();
}
});
} else {
@ -397,7 +376,7 @@ public class Levelling implements Listener {
configLoad.getString("Menu.Admin.Levelling.Item.Material.Word.Enter"));
is.setItemMeta(im);
gui.setSlot(AnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
} else if (event.getClick() == ClickType.RIGHT) {
levellingManager.removeMaterial(materialList);
@ -408,20 +387,17 @@ public class Levelling implements Listener {
.replace("%material", materials.name()));
soundManager.playSound(player, Sounds.IRONGOLEM_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
Config config = fileManager
.getConfig(new File(skyblock.getDataFolder(), "levelling.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, () -> {
Config config13 = fileManager
.getConfig(new File(skyblock.getDataFolder(), "levelling.yml"));
FileConfiguration configLoad13 = config13.getFileConfiguration();
configLoad.set("Materials." + materials.name(), null);
configLoad13.set("Materials." + materials.name(), null);
try {
configLoad.save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
try {
configLoad13.save(config13.getFile());
} catch (IOException e) {
e.printStackTrace();
}
});
}
@ -456,19 +432,16 @@ public class Levelling implements Listener {
.replace("%material", materials.name()));
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(), "levelling.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, () -> {
Config config14 = fileManager.getConfig(new File(skyblock.getDataFolder(), "levelling.yml"));
FileConfiguration configLoad14 = config14.getFileConfiguration();
configLoad.set("Materials." + materials.name() + ".Points", 0);
configLoad14.set("Materials." + materials.name() + ".Points", 0);
try {
configLoad.save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
try {
configLoad14.save(config14.getFile());
} catch (IOException e) {
e.printStackTrace();
}
});
}

View File

@ -49,85 +49,57 @@ public class Settings {
FileConfiguration configLoad = languageConfig.getFileConfiguration();
if (menuType == Settings.Type.Categories) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (!(player.hasPermission("fabledskyblock.admin.settings") || player.hasPermission("fabledskyblock.admin.*")
|| player.hasPermission("fabledskyblock.*"))) {
messageManager.sendMessage(player,
configLoad.getString("Island.Admin.Settings.Permission.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (!(player.hasPermission("fabledskyblock.admin.settings") || player.hasPermission("fabledskyblock.admin.*")
|| player.hasPermission("fabledskyblock.*"))) {
messageManager.sendMessage(player,
configLoad.getString("Island.Admin.Settings.Permission.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
return;
}
ItemStack is = event.getItem();
ItemStack is = event.getItem();
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Categories.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.hasItemMeta()) && (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Admin.Settings.Categories.Item.Visitor.Displayname"))))) {
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Categories.Item.Exit.Displayname"))))) {
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
} else if ((is.hasItemMeta()) && (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Admin.Settings.Categories.Item.Visitor.Displayname"))))) {
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.IslandRole.Visitor);
}
}, 1L);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Categories.Item.Member.Displayname"))))) {
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, Type.Role, me.goodandevil.skyblock.island.IslandRole.Visitor), 1L);
} else if ((is.getType() == Material.PAINTING) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Categories.Item.Member.Displayname"))))) {
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.IslandRole.Member);
}
}, 1L);
} else if ((is.getType() == Material.ITEM_FRAME) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Admin.Settings.Categories.Item.Operator.Displayname"))))) {
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, Type.Role, me.goodandevil.skyblock.island.IslandRole.Member), 1L);
} else if ((is.getType() == Material.ITEM_FRAME) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&', configLoad
.getString("Menu.Admin.Settings.Categories.Item.Operator.Displayname"))))) {
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.IslandRole.Operator);
}
}, 1L);
} else if ((is.getType() == Material.NAME_TAG) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Categories.Item.Coop.Displayname"))))) {
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, Type.Role, me.goodandevil.skyblock.island.IslandRole.Operator), 1L);
} else if ((is.getType() == Material.NAME_TAG) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Categories.Item.Coop.Displayname"))))) {
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.IslandRole.Coop);
}
}, 1L);
} else if ((is.getType() == Materials.OAK_SAPLING.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Categories.Item.Owner.Displayname"))))) {
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, Type.Role, me.goodandevil.skyblock.island.IslandRole.Coop), 1L);
} else if ((is.getType() == Materials.OAK_SAPLING.parseMaterial()) && (is.hasItemMeta())
&& (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Categories.Item.Owner.Displayname"))))) {
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.IslandRole.Owner);
}
}, 1L);
}
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, Type.Role, me.goodandevil.skyblock.island.IslandRole.Owner), 1L);
}
});
nInv.addItem(nInv.createItem(new ItemStack(Material.SIGN),
nInv.addItem(nInv.createItem(new ItemStack(Materials.OAK_SIGN.parseMaterial()),
configLoad.getString("Menu.Admin.Settings.Categories.Item.Visitor.Displayname"),
configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Visitor.Lore"), null, null, null), 2);
nInv.addItem(nInv.createItem(new ItemStack(Material.PAINTING),
@ -165,92 +137,71 @@ public class Settings {
configLoad.getString("Menu.Admin.Settings.Categories.Title")));
nInv.setRows(1);
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
} else if (menuType == Settings.Type.Role) {
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
@Override
public void onClick(ClickEvent event) {
if (!(player.hasPermission("fabledskyblock.admin.settings") || player.hasPermission("fabledskyblock.admin.*")
|| player.hasPermission("fabledskyblock.*"))) {
messageManager.sendMessage(player,
configLoad.getString("Island.Admin.Settings.Permission.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
nInventoryUtil nInv = new nInventoryUtil(player, event -> {
if (!(player.hasPermission("fabledskyblock.admin.settings") || player.hasPermission("fabledskyblock.admin.*")
|| player.hasPermission("fabledskyblock.*"))) {
messageManager.sendMessage(player,
configLoad.getString("Island.Admin.Settings.Permission.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
return;
}
return;
}
ItemStack is = event.getItem();
ItemStack is = event.getItem();
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta()) && (is
.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Visitor.Item.Return.Displayname")))
|| is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Member.Item.Return.Displayname")))
|| is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad
.getString("Menu.Admin.Settings.Operator.Item.Return.Displayname")))
|| is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Owner.Item.Return.Displayname"))))) {
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
if ((is.getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta()) && (is
.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Visitor.Item.Return.Displayname")))
|| is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Member.Item.Return.Displayname")))
|| is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad
.getString("Menu.Admin.Settings.Operator.Item.Return.Displayname")))
|| is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings.Owner.Item.Return.Displayname"))))) {
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Categories, null);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, Type.Categories, null), 1L);
} else if (is.hasItemMeta()) {
String roleName = getRoleName(role);
FileConfiguration settingsConfigLoad = skyblock.getFileManager()
.getConfig(new File(skyblock.getDataFolder(), "settings.yml")).getFileConfiguration();
for (String settingList : settingsConfigLoad.getConfigurationSection("Settings." + role.name())
.getKeys(false)) {
if (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings." + roleName + ".Item.Setting."
+ settingList + ".Displayname")))) {
if (settingsConfigLoad.getBoolean("Settings." + role.name() + "." + settingList)) {
settingsConfigLoad.set("Settings." + role.name() + "." + settingList, false);
} else {
settingsConfigLoad.set("Settings." + role.name() + "." + settingList, true);
}
}, 1L);
} else if (is.hasItemMeta()) {
String roleName = getRoleName(role);
FileConfiguration settingsConfigLoad = skyblock.getFileManager()
.getConfig(new File(skyblock.getDataFolder(), "settings.yml")).getFileConfiguration();
for (String settingList : settingsConfigLoad.getConfigurationSection("Settings." + role.name())
.getKeys(false)) {
if (is.getItemMeta().getDisplayName()
.equals(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings." + roleName + ".Item.Setting."
+ settingList + ".Displayname")))) {
if (settingsConfigLoad.getBoolean("Settings." + role.name() + "." + settingList)) {
settingsConfigLoad.set("Settings." + role.name() + "." + settingList, false);
} else {
settingsConfigLoad.set("Settings." + role.name() + "." + settingList, true);
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, () -> {
try {
Config config = skyblock.getFileManager()
.getConfig(new File(skyblock.getDataFolder(), "settings.yml"));
config.getFileConfiguration().save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
});
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
try {
Config config = skyblock.getFileManager()
.getConfig(new File(skyblock.getDataFolder(), "settings.yml"));
config.getFileConfiguration().save(config.getFile());
} catch (IOException e) {
e.printStackTrace();
}
}
});
break;
}
break;
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, Settings.Type.Role, role);
}
}, 1L);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLater(skyblock, () -> open(player, Type.Role, role), 1L);
}
});
@ -312,8 +263,8 @@ public class Settings {
nInv.addItemStack(createItem(role, "Invite", Materials.WRITABLE_BOOK.parseItem()), 9);
nInv.addItemStack(createItem(role, "Kick", new ItemStack(Material.IRON_DOOR)), 10);
nInv.addItemStack(createItem(role, "Ban", new ItemStack(Material.IRON_AXE)), 11);
nInv.addItemStack(createItem(role, "Unban", Materials.ROSE_RED.parseItem()), 12);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Material.SIGN)), 13);
nInv.addItemStack(createItem(role, "Unban", Materials.RED_DYE.parseItem()), 12);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Materials.OAK_SIGN.parseMaterial())), 13);
nInv.addItemStack(createItem(role, "Member", new ItemStack(Material.PAINTING)), 14);
nInv.addItemStack(createItem(role, "Island", Materials.OAK_SAPLING.parseItem()), 15);
nInv.addItemStack(createItem(role, "Coop", new ItemStack(Material.NAME_TAG)), 16);
@ -328,8 +279,8 @@ public class Settings {
nInv.addItemStack(createItem(role, "Invite", Materials.WRITABLE_BOOK.parseItem()), 9);
nInv.addItemStack(createItem(role, "Kick", new ItemStack(Material.IRON_DOOR)), 10);
nInv.addItemStack(createItem(role, "Ban", new ItemStack(Material.IRON_AXE)), 11);
nInv.addItemStack(createItem(role, "Unban", Materials.ROSE_RED.parseItem()), 12);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Material.SIGN)), 13);
nInv.addItemStack(createItem(role, "Unban", Materials.RED_DYE.parseItem()), 12);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Materials.OAK_SIGN.parseMaterial())), 13);
nInv.addItemStack(createItem(role, "Member", new ItemStack(Material.PAINTING)), 14);
nInv.addItemStack(createItem(role, "Island", Materials.OAK_SAPLING.parseItem()), 15);
nInv.addItemStack(createItem(role, "Coop", new ItemStack(Material.NAME_TAG)), 16);
@ -345,8 +296,8 @@ public class Settings {
nInv.addItemStack(createItem(role, "Invite", Materials.WRITABLE_BOOK.parseItem()), 10);
nInv.addItemStack(createItem(role, "Kick", new ItemStack(Material.IRON_DOOR)), 11);
nInv.addItemStack(createItem(role, "Ban", new ItemStack(Material.IRON_AXE)), 12);
nInv.addItemStack(createItem(role, "Unban", Materials.ROSE_RED.parseItem()), 13);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Material.SIGN)), 14);
nInv.addItemStack(createItem(role, "Unban", Materials.RED_DYE.parseItem()), 13);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Materials.OAK_SIGN.parseMaterial())), 14);
nInv.addItemStack(createItem(role, "Member", new ItemStack(Material.PAINTING)), 15);
nInv.addItemStack(createItem(role, "Island", Materials.OAK_SAPLING.parseItem()), 16);
nInv.addItemStack(createItem(role, "MainSpawn", new ItemStack(Material.EMERALD)), 20);
@ -359,8 +310,8 @@ public class Settings {
nInv.addItemStack(createItem(role, "Invite", Materials.WRITABLE_BOOK.parseItem()), 10);
nInv.addItemStack(createItem(role, "Kick", new ItemStack(Material.IRON_DOOR)), 11);
nInv.addItemStack(createItem(role, "Ban", new ItemStack(Material.IRON_AXE)), 12);
nInv.addItemStack(createItem(role, "Unban", Materials.ROSE_RED.parseItem()), 13);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Material.SIGN)), 14);
nInv.addItemStack(createItem(role, "Unban", Materials.RED_DYE.parseItem()), 13);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Materials.OAK_SIGN.parseMaterial())), 14);
nInv.addItemStack(createItem(role, "Member", new ItemStack(Material.PAINTING)), 15);
nInv.addItemStack(createItem(role, "Island", Materials.OAK_SAPLING.parseItem()), 16);
nInv.addItemStack(createItem(role, "MainSpawn", new ItemStack(Material.EMERALD)), 20);
@ -377,7 +328,7 @@ public class Settings {
if (mainConfig.getFileConfiguration().getBoolean("Island.WorldBorder.Enable")) {
nInv.addItemStack(createItem(role, "Invite", Materials.WRITABLE_BOOK.parseItem()), 10);
nInv.addItemStack(createItem(role, "Kick", new ItemStack(Material.IRON_DOOR)), 11);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Material.SIGN)), 12);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Materials.OAK_SIGN.parseMaterial())), 12);
nInv.addItemStack(createItem(role, "Member", new ItemStack(Material.PAINTING)), 13);
nInv.addItemStack(createItem(role, "Island", Materials.OAK_SAPLING.parseItem()), 14);
nInv.addItemStack(createItem(role, "Coop", new ItemStack(Material.NAME_TAG)), 15);
@ -391,7 +342,7 @@ public class Settings {
} else {
nInv.addItemStack(createItem(role, "Invite", Materials.WRITABLE_BOOK.parseItem()), 10);
nInv.addItemStack(createItem(role, "Kick", new ItemStack(Material.IRON_DOOR)), 11);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Material.SIGN)), 12);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Materials.OAK_SIGN.parseMaterial())), 12);
nInv.addItemStack(createItem(role, "Member", new ItemStack(Material.PAINTING)), 13);
nInv.addItemStack(createItem(role, "Island", Materials.OAK_SAPLING.parseItem()), 14);
nInv.addItemStack(createItem(role, "Coop", new ItemStack(Material.NAME_TAG)), 15);
@ -408,7 +359,7 @@ public class Settings {
if (mainConfig.getFileConfiguration().getBoolean("Island.WorldBorder.Enable")) {
nInv.addItemStack(createItem(role, "Invite", Materials.WRITABLE_BOOK.parseItem()), 10);
nInv.addItemStack(createItem(role, "Kick", new ItemStack(Material.IRON_DOOR)), 11);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Material.SIGN)), 12);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Materials.OAK_SIGN.parseMaterial())), 12);
nInv.addItemStack(createItem(role, "Member", new ItemStack(Material.PAINTING)), 13);
nInv.addItemStack(createItem(role, "Island", Materials.OAK_SAPLING.parseItem()), 14);
nInv.addItemStack(createItem(role, "MainSpawn", new ItemStack(Material.EMERALD)), 15);
@ -422,7 +373,7 @@ public class Settings {
} else {
nInv.addItemStack(createItem(role, "Invite", Materials.WRITABLE_BOOK.parseItem()), 9);
nInv.addItemStack(createItem(role, "Kick", new ItemStack(Material.IRON_DOOR)), 10);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Material.SIGN)), 11);
nInv.addItemStack(createItem(role, "Visitor", new ItemStack(Materials.OAK_SIGN.parseMaterial())), 11);
nInv.addItemStack(createItem(role, "Member", new ItemStack(Material.PAINTING)), 12);
nInv.addItemStack(createItem(role, "Island", Materials.OAK_SAPLING.parseItem()), 13);
nInv.addItemStack(createItem(role, "MainSpawn", new ItemStack(Material.EMERALD)), 14);
@ -451,7 +402,7 @@ public class Settings {
nInv.addItemStack(createItem(role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 14);
nInv.addItemStack(
createItem(role, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 15);
nInv.addItemStack(createItem(role, "Damage", Materials.ROSE_RED.parseItem()), 16);
nInv.addItemStack(createItem(role, "Damage", Materials.RED_DYE.parseItem()), 16);
nInv.addItemStack(createItem(role, "Hunger", new ItemStack(Material.COOKED_BEEF)), 17);
} else {
nInv.addItemStack(
@ -465,7 +416,7 @@ public class Settings {
nInv.addItemStack(createItem(role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
nInv.addItemStack(
createItem(role, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 16);
nInv.addItemStack(createItem(role, "Damage", Materials.ROSE_RED.parseItem()), 17);
nInv.addItemStack(createItem(role, "Damage", Materials.RED_DYE.parseItem()), 17);
}
} else {
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Hunger.Enable")) {
@ -508,7 +459,7 @@ public class Settings {
nInv.addItemStack(
createItem(role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 14);
nInv.addItemStack(createItem(role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
nInv.addItemStack(createItem(role, "Damage", Materials.ROSE_RED.parseItem()), 16);
nInv.addItemStack(createItem(role, "Damage", Materials.RED_DYE.parseItem()), 16);
nInv.addItemStack(createItem(role, "Hunger", new ItemStack(Material.COOKED_BEEF)), 17);
} else {
nInv.addItemStack(
@ -521,7 +472,7 @@ public class Settings {
nInv.addItemStack(
createItem(role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 14);
nInv.addItemStack(createItem(role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
nInv.addItemStack(createItem(role, "Damage", Materials.ROSE_RED.parseItem()), 16);
nInv.addItemStack(createItem(role, "Damage", Materials.RED_DYE.parseItem()), 16);
}
} else {
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Hunger.Enable")) {
@ -564,7 +515,7 @@ public class Settings {
nInv.addItemStack(createItem(role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 14);
nInv.addItemStack(
createItem(role, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 15);
nInv.addItemStack(createItem(role, "Damage", Materials.ROSE_RED.parseItem()), 16);
nInv.addItemStack(createItem(role, "Damage", Materials.RED_DYE.parseItem()), 16);
nInv.addItemStack(createItem(role, "Hunger", new ItemStack(Material.COOKED_BEEF)), 17);
} else {
nInv.addItemStack(
@ -578,7 +529,7 @@ public class Settings {
nInv.addItemStack(createItem(role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 14);
nInv.addItemStack(
createItem(role, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 15);
nInv.addItemStack(createItem(role, "Damage", Materials.ROSE_RED.parseItem()), 16);
nInv.addItemStack(createItem(role, "Damage", Materials.RED_DYE.parseItem()), 16);
}
} else {
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Hunger.Enable")) {
@ -620,7 +571,7 @@ public class Settings {
nInv.addItemStack(
createItem(role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 13);
nInv.addItemStack(createItem(role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 14);
nInv.addItemStack(createItem(role, "Damage", Materials.ROSE_RED.parseItem()), 15);
nInv.addItemStack(createItem(role, "Damage", Materials.RED_DYE.parseItem()), 15);
nInv.addItemStack(createItem(role, "Hunger", new ItemStack(Material.COOKED_BEEF)), 16);
} else {
nInv.addItemStack(
@ -632,7 +583,7 @@ public class Settings {
nInv.addItemStack(
createItem(role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 14);
nInv.addItemStack(createItem(role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
nInv.addItemStack(createItem(role, "Damage", Materials.ROSE_RED.parseItem()), 16);
nInv.addItemStack(createItem(role, "Damage", Materials.RED_DYE.parseItem()), 16);
}
} else {
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Hunger.Enable")) {
@ -670,12 +621,7 @@ public class Settings {
nInv.setTitle(ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Menu.Admin.Settings." + role.name() + ".Title")));
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
@Override
public void run() {
nInv.open();
}
});
Bukkit.getServer().getScheduler().runTask(skyblock, () -> nInv.open());
}
}

File diff suppressed because it is too large Load Diff

View File

@ -305,8 +305,17 @@ public class PlaceholderManager {
} else {
return ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Placeholder.fabledskyblock_island_bank_balance.Non-empty.Message"))
.replace("%placeholder", "" + island.getBankBalance());
.replace("%placeholder", "" + NumberUtil.formatNumberByDecimal(island.getBankBalance()));
}
} else if (placeholder.equalsIgnoreCase("fabledskyblock_island_bank_balance_formatted")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Placeholder.fabledskyblock_island_bank_balance_formatted.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&',
configLoad.getString("Placeholder.fabledskyblock_island_bank_balance_formatted.Non-empty.Message"))
.replace("%placeholder", "" + NumberUtil.formatNumberBySuffix((long) island.getBankBalance()));
}
} else if (placeholder.toLowerCase().startsWith("fabledskyblock_island_leaderboard_level_rank")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&',

View File

@ -3,7 +3,9 @@ package me.goodandevil.skyblock.stackable;
import java.io.File;
import java.util.UUID;
import me.goodandevil.skyblock.utils.NumberUtil;
import org.apache.commons.lang3.text.WordUtils;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
@ -45,11 +47,11 @@ public class Stackable {
}
public UUID getUuid() {
return uuid;
return this.uuid;
}
public Location getLocation() {
return location.clone();
return this.location.clone();
}
public void setLocation(Location location) {
@ -57,7 +59,7 @@ public class Stackable {
}
public Material getMaterial() {
return material;
return this.material;
}
public void setMaterial(Material material) {
@ -66,7 +68,7 @@ public class Stackable {
}
public Integer getSize() {
return size;
return this.size;
}
public void setSize(Integer size) {
@ -78,14 +80,14 @@ public class Stackable {
public void addOne() {
this.size ++;
this.updateDisplay();
SkyBlock.getInstance().getSoundManager().playSound(location, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
SkyBlock.getInstance().getSoundManager().playSound(this.location, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
this.save();
}
public void takeOne() {
this.size --;
this.updateDisplay();
SkyBlock.getInstance().getSoundManager().playSound(location, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
SkyBlock.getInstance().getSoundManager().playSound(this.location, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
this.save();
}
@ -93,7 +95,7 @@ public class Stackable {
if (this.size > 1) {
this.removeDisplay();
this.createDisplay();
this.display.setCustomName(WordUtils.capitalize(material.name().toLowerCase()).replace("_", " ") + "s: " + size);
this.display.setCustomName(this.getCustomName());
this.display.setCustomNameVisible(true);
} else {
this.removeDisplay();
@ -103,8 +105,8 @@ public class Stackable {
private void createDisplay() {
this.removeDisplay();
Location dropLocation = location.clone().add(0.5, 1, 0.5);
ArmorStand as = (ArmorStand) location.getWorld().spawnEntity(dropLocation, EntityType.ARMOR_STAND);
Location dropLocation = this.location.clone().add(0.5, 1, 0.5);
ArmorStand as = (ArmorStand) this.location.getWorld().spawnEntity(dropLocation, EntityType.ARMOR_STAND);
as.setVisible(false);
as.setGravity(false);
as.setSmall(true);
@ -112,8 +114,8 @@ public class Stackable {
as.setMarker(true);
}
as.setBasePlate(true);
as.setHelmet(new ItemStack(material));
as.setCustomName(WordUtils.capitalize(material.name().toLowerCase()).replace("_", " ") + "s: " + size);
as.setHelmet(new ItemStack(this.material));
as.setCustomName(this.getCustomName());
as.setCustomNameVisible(true);
this.display = as;
}
@ -134,16 +136,24 @@ public class Stackable {
private void save() {
File configFile = new File(SkyBlock.getInstance().getDataFolder().toString() + "/island-data");
FileManager.Config config = SkyBlock.getInstance().getFileManager().getConfig(new File(configFile,
SkyBlock.getInstance().getIslandManager().getIslandAtLocation(location).getOwnerUUID() + ".yml"));
SkyBlock.getInstance().getIslandManager().getIslandAtLocation(this.location).getOwnerUUID() + ".yml"));
FileConfiguration configLoad = config.getFileConfiguration();
if (getSize() == 0) {
configLoad.set("Stackables." + getUuid().toString(), null);
if (this.getSize() == 0) {
configLoad.set("Stackables." + this.getUuid().toString(), null);
} else {
ConfigurationSection section = configLoad.createSection("Stackables." + getUuid().toString());
section.set("Location", getLocation());
section.set("Material", getMaterial().name());
section.set("Size", getSize());
ConfigurationSection section = configLoad.createSection("Stackables." + this.getUuid().toString());
section.set("Location", this.getLocation());
section.set("Material", this.getMaterial().name());
section.set("Size", this.getSize());
}
}
private String getCustomName() {
return ChatColor.translateAlternateColorCodes('&', SkyBlock.getInstance().getFileManager()
.getConfig(new File(SkyBlock.getInstance().getDataFolder(), "language.yml"))
.getFileConfiguration().getString("Hologram.Stackable.Message"))
.replace("%block", WordUtils.capitalize(this.material.name().toLowerCase()).replace("_", " "))
.replace("%amount", NumberUtil.formatNumber(this.size));
}
}

View File

@ -28,74 +28,71 @@ public class UserCacheManager {
FileManager fileManager = skyblock.getFileManager();
File configFile = new File(skyblock.getDataFolder().toString() + "/island-data");
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
if (configFile.exists()) {
int usersIgnored = 0;
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, () -> {
if (configFile.exists()) {
int usersIgnored = 0;
Bukkit.getServer().getLogger().log(Level.INFO,
"SkyBlock | Info: Fetching user information from island data. This may take a while...");
Bukkit.getServer().getLogger().log(Level.INFO,
"SkyBlock | Info: Fetching user information from island data. This may take a while...");
for (File fileList : configFile.listFiles()) {
if (fileList != null && fileList.getName().contains(".yml")
&& fileList.getName().length() > 35) {
UUID islandOwnerUUID = null;
for (File fileList : configFile.listFiles()) {
if (fileList != null && fileList.getName().contains(".yml")
&& fileList.getName().length() > 35) {
UUID islandOwnerUUID = null;
try {
Config config = new FileManager.Config(fileManager, fileList);
FileConfiguration configLoad = config.getFileConfiguration();
try {
Config config = new Config(fileManager, fileList);
FileConfiguration configLoad = config.getFileConfiguration();
islandOwnerUUID = UUID.fromString(fileList.getName().replace(".yml", ""));
islandOwnerUUID = UUID.fromString(fileList.getName().replace(".yml", ""));
if (islandOwnerUUID == null) {
islandOwnerUUID = UUID.fromString(fileList.getName().replaceFirst("[.][^.]+$", ""));
if (islandOwnerUUID == null) {
islandOwnerUUID = UUID.fromString(fileList.getName().replaceFirst("[.][^.]+$", ""));
if (islandOwnerUUID == null) {
continue;
}
continue;
}
Set<UUID> islandMembers = new HashSet<UUID>();
islandMembers.add(islandOwnerUUID);
if (configLoad.getString("Members") != null) {
for (String memberList : configLoad.getStringList("Members")) {
islandMembers.add(UUID.fromString(memberList));
}
}
if (configLoad.getString("Operators") != null) {
for (String operatorList : configLoad.getStringList("Operators")) {
islandMembers.add(UUID.fromString(operatorList));
}
}
for (UUID islandMemberList : islandMembers) {
if (!hasUser(islandMemberList)) {
Names[] names = NameFetcher.getNames(islandMemberList);
if (names.length >= 1) {
addUser(islandMemberList, names[0].getName());
}
}
}
} catch (Exception e) {
usersIgnored++;
}
Set<UUID> islandMembers = new HashSet<>();
islandMembers.add(islandOwnerUUID);
if (configLoad.getString("Members") != null) {
for (String memberList : configLoad.getStringList("Members")) {
islandMembers.add(UUID.fromString(memberList));
}
}
if (configLoad.getString("Operators") != null) {
for (String operatorList : configLoad.getStringList("Operators")) {
islandMembers.add(UUID.fromString(operatorList));
}
}
for (UUID islandMemberList : islandMembers) {
if (!hasUser(islandMemberList)) {
Names[] names = NameFetcher.getNames(islandMemberList);
if (names.length >= 1) {
addUser(islandMemberList, names[0].getName());
}
}
}
} catch (Exception e) {
usersIgnored++;
}
}
}
save();
save();
if (usersIgnored != 0) {
Bukkit.getServer().getLogger().log(Level.INFO,
"SkyBlock | Info: Finished fetching user information from island data. There were "
+ usersIgnored + " users that were skipped.");
} else {
Bukkit.getServer().getLogger().log(Level.INFO,
"SkyBlock | Info: Finished fetching user information from island data.");
}
if (usersIgnored != 0) {
Bukkit.getServer().getLogger().log(Level.INFO,
"SkyBlock | Info: Finished fetching user information from island data. There were "
+ usersIgnored + " users that were skipped.");
} else {
Bukkit.getServer().getLogger().log(Level.INFO,
"SkyBlock | Info: Finished fetching user information from island data.");
}
}
});
@ -152,12 +149,7 @@ public class UserCacheManager {
}
public void saveAsync() {
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
save();
}
});
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, () -> save());
}
public void save() {

View File

@ -0,0 +1,283 @@
package me.goodandevil.skyblock.utils;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
public class AbstractAnvilGUI {
private static Class<?> BlockPositionClass;
private static Class<?> PacketPlayOutOpenWindowClass;
private static Class<?> IChatBaseComponentClass;
private static Class<?> ICraftingClass;
private static Class<?> ContainerAnvilClass;
private static Class<?> ChatMessageClass;
private static Class<?> EntityHumanClass;
private static Class<?> ContainerClass;
private static Class<?> ContainerAccessClass;
private static Class<?> WorldClass;
private static Class<?> PlayerInventoryClass;
private static Class<?> ContainersClass;
private Player player;
private Map<AnvilSlot, ItemStack> items = new HashMap<>();
private Inventory inv;
private Listener listener;
static {
BlockPositionClass = NMSUtil.getNMSClass("BlockPosition");
PacketPlayOutOpenWindowClass = NMSUtil.getNMSClass("PacketPlayOutOpenWindow");
IChatBaseComponentClass = NMSUtil.getNMSClass("IChatBaseComponent");
ICraftingClass = NMSUtil.getNMSClass("ICrafting");
ContainerAnvilClass = NMSUtil.getNMSClass("ContainerAnvil");
EntityHumanClass = NMSUtil.getNMSClass("EntityHuman");
ChatMessageClass = NMSUtil.getNMSClass("ChatMessage");
ContainerClass = NMSUtil.getNMSClass("Container");
WorldClass = NMSUtil.getNMSClass("World");
PlayerInventoryClass = NMSUtil.getNMSClass("PlayerInventory");
if (NMSUtil.getVersionNumber() > 13) {
ContainerAccessClass = NMSUtil.getNMSClass("ContainerAccess");
ContainersClass = NMSUtil.getNMSClass("Containers");
}
}
public AbstractAnvilGUI(final Player player, final AnvilClickEventHandler handler) {
this.player = player;
this.listener = new Listener() {
@EventHandler(priority = EventPriority.LOWEST)
public void onInventoryClick(InventoryClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
if (event.getInventory().equals(inv)) {
event.setCancelled(true);
ItemStack item = event.getCurrentItem();
int slot = event.getRawSlot();
String name = "";
if (item != null) {
if (item.hasItemMeta()) {
ItemMeta meta = item.getItemMeta();
if (meta != null && meta.hasDisplayName()) {
name = meta.getDisplayName();
}
}
}
AnvilClickEvent clickEvent = new AnvilClickEvent(AnvilSlot.bySlot(slot), name);
handler.onAnvilClick(clickEvent);
if (clickEvent.getWillClose()) {
event.getWhoClicked().closeInventory();
}
if (clickEvent.getWillDestroy()) {
destroy();
}
}
}
}
@EventHandler(priority = EventPriority.LOWEST)
public void onInventoryClose(InventoryCloseEvent event) {
if (event.getPlayer() instanceof Player) {
Inventory inv = event.getInventory();
player.setLevel(player.getLevel() - 1);
if (inv.equals(inv)) {
inv.clear();
destroy();
}
}
}
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerQuit(PlayerQuitEvent event) {
if (event.getPlayer().equals(getPlayer())) {
player.setLevel(player.getLevel() - 1);
destroy();
}
}
};
Bukkit.getPluginManager().registerEvents(listener, SkyBlock.getInstance());
}
public Player getPlayer() {
return player;
}
public void setSlot(AnvilSlot slot, ItemStack item) {
items.put(slot, item);
}
public void open() {
player.setLevel(player.getLevel() + 1);
try {
Object craftPlayer = NMSUtil.getCraftClass("entity.CraftPlayer").cast(player);
Method getHandleMethod = craftPlayer.getClass().getMethod("getHandle");
Object entityPlayer = getHandleMethod.invoke(craftPlayer);
Object playerInventory = NMSUtil.getFieldObject(entityPlayer, NMSUtil.getField(entityPlayer.getClass(), "inventory", false));
Object world = NMSUtil.getFieldObject(entityPlayer, NMSUtil.getField(entityPlayer.getClass(), "world", false));
Object blockPosition = BlockPositionClass.getConstructor(int.class, int.class, int.class).newInstance(0, 0, 0);
Object container;
if (NMSUtil.getVersionNumber() > 13) {
container = ContainerAnvilClass
.getConstructor(int.class, PlayerInventoryClass, ContainerAccessClass)
.newInstance(7, playerInventory, ContainerAccessClass.getMethod("at", WorldClass, BlockPositionClass).invoke(null, world, blockPosition));
} else {
container = ContainerAnvilClass
.getConstructor(PlayerInventoryClass, WorldClass, BlockPositionClass, EntityHumanClass)
.newInstance(playerInventory, world, blockPosition, entityPlayer);
}
NMSUtil.getField(ContainerClass, "checkReachable", true).set(container, false);
Method getBukkitViewMethod = container.getClass().getMethod("getBukkitView");
Object bukkitView = getBukkitViewMethod.invoke(container);
Method getTopInventoryMethod = bukkitView.getClass().getMethod("getTopInventory");
inv = (Inventory) getTopInventoryMethod.invoke(bukkitView);
for (AnvilSlot slot : items.keySet()) {
inv.setItem(slot.getSlot(), items.get(slot));
}
Method nextContainerCounterMethod = entityPlayer.getClass().getMethod("nextContainerCounter");
int c = (int) nextContainerCounterMethod.invoke(entityPlayer);
Constructor<?> chatMessageConstructor = ChatMessageClass.getConstructor(String.class, Object[].class);
Object inventoryTitle = chatMessageConstructor.newInstance("Repairing", new Object[]{});
Object packet;
if (NMSUtil.getVersionNumber() > 13) {
packet = PacketPlayOutOpenWindowClass
.getConstructor(int.class, ContainersClass, IChatBaseComponentClass)
.newInstance(c, ContainersClass.getField("ANVIL").get(null), inventoryTitle);
} else {
packet = PacketPlayOutOpenWindowClass
.getConstructor(int.class, String.class, IChatBaseComponentClass, int.class)
.newInstance(c, "minecraft:anvil", inventoryTitle, 0);
}
NMSUtil.sendPacket(player, packet);
Field activeContainerField = NMSUtil.getField(EntityHumanClass, "activeContainer", true);
if (activeContainerField != null) {
activeContainerField.set(entityPlayer, container);
NMSUtil.getField(ContainerClass, "windowId", true).set(activeContainerField.get(entityPlayer), c);
Method addSlotListenerMethod = activeContainerField.get(entityPlayer).getClass().getMethod("addSlotListener", ICraftingClass);
addSlotListenerMethod.invoke(activeContainerField.get(entityPlayer), entityPlayer);
if (NMSUtil.getVersionNumber() > 13) {
ContainerClass.getMethod("setTitle", IChatBaseComponentClass).invoke(container, inventoryTitle);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void destroy() {
player = null;
items = null;
HandlerList.unregisterAll(listener);
listener = null;
}
public enum AnvilSlot {
INPUT_LEFT(0),
INPUT_RIGHT(1),
OUTPUT(2);
private int slot;
AnvilSlot(int slot) {
this.slot = slot;
}
public static AnvilSlot bySlot(int slot) {
for (AnvilSlot anvilSlot : values()) {
if (anvilSlot.getSlot() == slot) {
return anvilSlot;
}
}
return null;
}
public int getSlot() {
return slot;
}
}
@FunctionalInterface
public interface AnvilClickEventHandler {
void onAnvilClick(AnvilClickEvent event);
}
public class AnvilClickEvent {
private AnvilSlot slot;
private String name;
private boolean close = true;
private boolean destroy = true;
public AnvilClickEvent(AnvilSlot slot, String name) {
this.slot = slot;
this.name = name;
}
public AnvilSlot getSlot() {
return slot;
}
public String getName() {
return name;
}
public boolean getWillClose() {
return close;
}
public void setWillClose(boolean close) {
this.close = close;
}
public boolean getWillDestroy() {
return destroy;
}
public void setWillDestroy(boolean destroy) {
this.destroy = destroy;
}
}
}

View File

@ -1,276 +0,0 @@
package me.goodandevil.skyblock.utils;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.utils.version.NMSUtil;
public class AnvilGUI {
private Player player;
private Class<?> BlockPosition;
private Class<?> PacketPlayOutOpenWindow;
private Class<?> ContainerAnvil;
private Class<?> ChatMessage;
private Class<?> EntityHuman;
private Map<AnvilSlot, ItemStack> items = new HashMap<>();
private Inventory inv;
private Listener listener;
private void loadClasses() {
BlockPosition = NMSUtil.getNMSClass("BlockPosition");
PacketPlayOutOpenWindow = NMSUtil.getNMSClass("PacketPlayOutOpenWindow");
ContainerAnvil = NMSUtil.getNMSClass("ContainerAnvil");
EntityHuman = NMSUtil.getNMSClass("EntityHuman");
ChatMessage = NMSUtil.getNMSClass("ChatMessage");
}
public AnvilGUI(final Player player, final AnvilClickEventHandler handler) {
loadClasses();
this.player = player;
this.listener = new Listener() {
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
if (event.getWhoClicked() instanceof Player) {
if (event.getInventory().equals(inv)) {
event.setCancelled(true);
ItemStack item = event.getCurrentItem();
int slot = event.getRawSlot();
String name = "";
if (item != null) {
if (item.hasItemMeta()) {
ItemMeta meta = item.getItemMeta();
if (meta.hasDisplayName()) {
name = meta.getDisplayName();
}
}
}
AnvilClickEvent clickEvent = new AnvilClickEvent(AnvilSlot.bySlot(slot), name);
handler.onAnvilClick(clickEvent);
if (clickEvent.getWillClose()) {
event.getWhoClicked().closeInventory();
}
if (clickEvent.getWillDestroy()) {
destroy();
}
}
}
}
@EventHandler
public void onInventoryClose(InventoryCloseEvent event) {
if (event.getPlayer() instanceof Player) {
Inventory inv = event.getInventory();
player.setLevel(player.getLevel() - 1);
if (inv.equals(AnvilGUI.this.inv)) {
inv.clear();
destroy();
}
}
}
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
if (event.getPlayer().equals(getPlayer())) {
player.setLevel(player.getLevel() - 1);
destroy();
}
}
};
Bukkit.getPluginManager().registerEvents(listener, SkyBlock.getInstance());
}
public Player getPlayer() {
return player;
}
public void setSlot(AnvilSlot slot, ItemStack item) {
items.put(slot, item);
}
public void open() {
player.setLevel(player.getLevel() + 1);
try {
Object craftPlayer = NMSUtil.getCraftClass("entity.CraftPlayer").cast(player);
Method getHandleMethod = craftPlayer.getClass().getMethod("getHandle", new Class<?>[0]);
Object entityPlayer = getHandleMethod.invoke(craftPlayer, new Object[0]);
Object container;
if (NMSUtil.getVersionNumber() == 7) {
container = ContainerAnvil
.getConstructor(
new Class[] { NMSUtil.getNMSClass("PlayerInventory"), NMSUtil.getNMSClass("World"),
Integer.TYPE, Integer.TYPE, Integer.TYPE, EntityHuman })
.newInstance(new Object[] {
NMSUtil.getFieldObject(entityPlayer,
NMSUtil.getField(entityPlayer.getClass(), "inventory", false)),
NMSUtil.getFieldObject(entityPlayer,
NMSUtil.getField(entityPlayer.getClass(), "world", false)),
Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0), entityPlayer });
} else {
container = ContainerAnvil
.getConstructor(NMSUtil.getNMSClass("PlayerInventory"), NMSUtil.getNMSClass("World"),
BlockPosition, EntityHuman)
.newInstance(
NMSUtil.getFieldObject(entityPlayer,
NMSUtil.getField(entityPlayer.getClass(), "inventory", false)),
NMSUtil.getFieldObject(entityPlayer,
NMSUtil.getField(entityPlayer.getClass(), "world", false)),
BlockPosition.getConstructor(int.class, int.class, int.class).newInstance(0, 0, 0),
entityPlayer);
}
NMSUtil.getField(NMSUtil.getNMSClass("Container"), "checkReachable", true).set(container, false);
Method getBukkitViewMethod = container.getClass().getMethod("getBukkitView", new Class<?>[0]);
Object bukkitView = getBukkitViewMethod.invoke(container);
Method getTopInventoryMethod = bukkitView.getClass().getMethod("getTopInventory", new Class<?>[0]);
inv = (Inventory) getTopInventoryMethod.invoke(bukkitView);
for (AnvilSlot slot : items.keySet()) {
inv.setItem(slot.getSlot(), items.get(slot));
}
Method nextContainerCounterMethod = entityPlayer.getClass().getMethod("nextContainerCounter",
new Class<?>[0]);
int c = (int) nextContainerCounterMethod.invoke(entityPlayer);
Constructor<?> chatMessageConstructor = ChatMessage.getConstructor(String.class, Object[].class);
Object packet;
if (NMSUtil.getVersionNumber() == 7) {
packet = PacketPlayOutOpenWindow
.getConstructor(new Class[] { Integer.TYPE, Integer.TYPE, String.class, Integer.TYPE,
Boolean.TYPE, Integer.TYPE })
.newInstance(new Object[] { Integer.valueOf(c), Integer.valueOf(8), "Repairing",
Integer.valueOf(0), Boolean.valueOf(true), Integer.valueOf(0) });
} else {
packet = PacketPlayOutOpenWindow
.getConstructor(int.class, String.class, NMSUtil.getNMSClass("IChatBaseComponent"), int.class)
.newInstance(c, "minecraft:anvil",
chatMessageConstructor.newInstance("Repairing", new Object[] {}), 0);
}
NMSUtil.sendPacket(player, packet);
Field activeContainerField = NMSUtil.getField(EntityHuman, "activeContainer", true);
if (activeContainerField != null) {
activeContainerField.set(entityPlayer, container);
NMSUtil.getField(NMSUtil.getNMSClass("Container"), "windowId", true)
.set(activeContainerField.get(entityPlayer), c);
Method addSlotListenerMethod = activeContainerField.get(entityPlayer).getClass()
.getMethod("addSlotListener", NMSUtil.getNMSClass("ICrafting"));
addSlotListenerMethod.invoke(activeContainerField.get(entityPlayer), entityPlayer);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void destroy() {
player = null;
items = null;
HandlerList.unregisterAll(listener);
listener = null;
}
public enum AnvilSlot {
INPUT_LEFT(0), INPUT_RIGHT(1), OUTPUT(2);
private int slot;
private AnvilSlot(int slot) {
this.slot = slot;
}
public static AnvilSlot bySlot(int slot) {
for (AnvilSlot anvilSlot : values()) {
if (anvilSlot.getSlot() == slot) {
return anvilSlot;
}
}
return null;
}
public int getSlot() {
return slot;
}
}
public interface AnvilClickEventHandler {
void onAnvilClick(AnvilClickEvent event);
}
public class AnvilClickEvent {
private AnvilSlot slot;
private String name;
private boolean close = true;
private boolean destroy = true;
public AnvilClickEvent(AnvilSlot slot, String name) {
this.slot = slot;
this.name = name;
}
public AnvilSlot getSlot() {
return slot;
}
public String getName() {
return name;
}
public boolean getWillClose() {
return close;
}
public void setWillClose(boolean close) {
this.close = close;
}
public boolean getWillDestroy() {
return destroy;
}
public void setWillDestroy(boolean destroy) {
this.destroy = destroy;
}
}
}

View File

@ -0,0 +1,695 @@
package me.goodandevil.skyblock.utils;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.ServicePriority;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import javax.net.ssl.HttpsURLConnection;
import java.io.*;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.concurrent.Callable;
import java.util.logging.Level;
import java.util.zip.GZIPOutputStream;
/**
* bStats collects some data for plugin authors.
* <p>
* Check out https://bStats.org/ to learn more about bStats!
*/
@SuppressWarnings({"WeakerAccess", "unused"})
public class Metrics {
static {
// You can use the property to disable the check in your test environment
if (System.getProperty("bstats.relocatecheck") == null || !System.getProperty("bstats.relocatecheck").equals("false")) {
// Maven's Relocate is clever and changes strings, too. So we have to use this little "trick" ... :D
final String defaultPackage = new String(
new byte[]{'o', 'r', 'g', '.', 'b', 's', 't', 'a', 't', 's', '.', 'b', 'u', 'k', 'k', 'i', 't'});
final String examplePackage = new String(new byte[]{'y', 'o', 'u', 'r', '.', 'p', 'a', 'c', 'k', 'a', 'g', 'e'});
// We want to make sure nobody just copy & pastes the example and use the wrong package names
if (Metrics.class.getPackage().getName().equals(defaultPackage) || Metrics.class.getPackage().getName().equals(examplePackage)) {
throw new IllegalStateException("bStats Metrics class has not been relocated correctly!");
}
}
}
// The version of this bStats class
public static final int B_STATS_VERSION = 1;
// The url to which the data is sent
private static final String URL = "https://bStats.org/submitData/bukkit";
// Is bStats enabled on this server?
private boolean enabled;
// Should failed requests be logged?
private static boolean logFailedRequests;
// Should the sent data be logged?
private static boolean logSentData;
// Should the response text be logged?
private static boolean logResponseStatusText;
// The uuid of the server
private static String serverUUID;
// The plugin
private final Plugin plugin;
// A list with all custom charts
private final List<CustomChart> charts = new ArrayList<>();
/**
* Class constructor.
*
* @param plugin The plugin which stats should be submitted.
*/
public Metrics(Plugin plugin) {
if (plugin == null) {
throw new IllegalArgumentException("Plugin cannot be null!");
}
this.plugin = plugin;
// Get the config file
File bStatsFolder = new File(plugin.getDataFolder().getParentFile(), "bStats");
File configFile = new File(bStatsFolder, "config.yml");
YamlConfiguration config = YamlConfiguration.loadConfiguration(configFile);
// Check if the config file exists
if (!config.isSet("serverUuid")) {
// Add default values
config.addDefault("enabled", true);
// Every server gets it's unique random id.
config.addDefault("serverUuid", UUID.randomUUID().toString());
// Should failed request be logged?
config.addDefault("logFailedRequests", false);
// Should the sent data be logged?
config.addDefault("logSentData", false);
// Should the response text be logged?
config.addDefault("logResponseStatusText", false);
// Inform the server owners about bStats
config.options().header(
"bStats collects some data for plugin authors like how many servers are using their plugins.\n" +
"To honor their work, you should not disable it.\n" +
"This has nearly no effect on the server performance!\n" +
"Check out https://bStats.org/ to learn more :)"
).copyDefaults(true);
try {
config.save(configFile);
} catch (IOException ignored) { }
}
// Load the data
enabled = config.getBoolean("enabled", true);
serverUUID = config.getString("serverUuid");
logFailedRequests = config.getBoolean("logFailedRequests", false);
logSentData = config.getBoolean("logSentData", false);
logResponseStatusText = config.getBoolean("logResponseStatusText", false);
if (enabled) {
boolean found = false;
// Search for all other bStats Metrics classes to see if we are the first one
for (Class<?> service : Bukkit.getServicesManager().getKnownServices()) {
try {
service.getField("B_STATS_VERSION"); // Our identifier :)
found = true; // We aren't the first
break;
} catch (NoSuchFieldException ignored) { }
}
// Register our service
Bukkit.getServicesManager().register(Metrics.class, this, plugin, ServicePriority.Normal);
if (!found) {
// We are the first!
startSubmitting();
}
}
}
/**
* Checks if bStats is enabled.
*
* @return Whether bStats is enabled or not.
*/
public boolean isEnabled() {
return enabled;
}
/**
* Adds a custom chart.
*
* @param chart The chart to add.
*/
public void addCustomChart(CustomChart chart) {
if (chart == null) {
throw new IllegalArgumentException("Chart cannot be null!");
}
charts.add(chart);
}
/**
* Starts the Scheduler which submits our data every 30 minutes.
*/
private void startSubmitting() {
final Timer timer = new Timer(true); // We use a timer cause the Bukkit scheduler is affected by server lags
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if (!plugin.isEnabled()) { // Plugin was disabled
timer.cancel();
return;
}
// Nevertheless we want our code to run in the Bukkit main thread, so we have to use the Bukkit scheduler
// Don't be afraid! The connection to the bStats server is still async, only the stats collection is sync ;)
Bukkit.getScheduler().runTask(plugin, () -> submitData());
}
}, 1000 * 60 * 5, 1000 * 60 * 30);
// Submit the data every 30 minutes, first time after 5 minutes to give other plugins enough time to start
// WARNING: Changing the frequency has no effect but your plugin WILL be blocked/deleted!
// WARNING: Just don't do it!
}
/**
* Gets the plugin specific data.
* This method is called using Reflection.
*
* @return The plugin specific data.
*/
public JSONObject getPluginData() {
JSONObject data = new JSONObject();
String pluginName = plugin.getDescription().getName();
String pluginVersion = plugin.getDescription().getVersion();
data.put("pluginName", pluginName); // Append the name of the plugin
data.put("pluginVersion", pluginVersion); // Append the version of the plugin
JSONArray customCharts = new JSONArray();
for (CustomChart customChart : charts) {
// Add the data of the custom charts
JSONObject chart = customChart.getRequestJsonObject();
if (chart == null) { // If the chart is null, we skip it
continue;
}
customCharts.add(chart);
}
data.put("customCharts", customCharts);
return data;
}
/**
* Gets the server specific data.
*
* @return The server specific data.
*/
private JSONObject getServerData() {
// Minecraft specific data
int playerAmount;
try {
// Around MC 1.8 the return type was changed to a collection from an array,
// This fixes java.lang.NoSuchMethodError: org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection;
Method onlinePlayersMethod = Class.forName("org.bukkit.Server").getMethod("getOnlinePlayers");
playerAmount = onlinePlayersMethod.getReturnType().equals(Collection.class)
? ((Collection<?>) onlinePlayersMethod.invoke(Bukkit.getServer())).size()
: ((Player[]) onlinePlayersMethod.invoke(Bukkit.getServer())).length;
} catch (Exception e) {
playerAmount = Bukkit.getOnlinePlayers().size(); // Just use the new method if the Reflection failed
}
int onlineMode = Bukkit.getOnlineMode() ? 1 : 0;
String bukkitVersion = Bukkit.getVersion();
// OS/Java specific data
String javaVersion = System.getProperty("java.version");
String osName = System.getProperty("os.name");
String osArch = System.getProperty("os.arch");
String osVersion = System.getProperty("os.version");
int coreCount = Runtime.getRuntime().availableProcessors();
JSONObject data = new JSONObject();
data.put("serverUUID", serverUUID);
data.put("playerAmount", playerAmount);
data.put("onlineMode", onlineMode);
data.put("bukkitVersion", bukkitVersion);
data.put("javaVersion", javaVersion);
data.put("osName", osName);
data.put("osArch", osArch);
data.put("osVersion", osVersion);
data.put("coreCount", coreCount);
return data;
}
/**
* Collects the data and sends it afterwards.
*/
private void submitData() {
final JSONObject data = getServerData();
JSONArray pluginData = new JSONArray();
// Search for all other bStats Metrics classes to get their plugin data
for (Class<?> service : Bukkit.getServicesManager().getKnownServices()) {
try {
service.getField("B_STATS_VERSION"); // Our identifier :)
for (RegisteredServiceProvider<?> provider : Bukkit.getServicesManager().getRegistrations(service)) {
try {
pluginData.add(provider.getService().getMethod("getPluginData").invoke(provider.getProvider()));
} catch (NullPointerException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) { }
}
} catch (NoSuchFieldException ignored) { }
}
data.put("plugins", pluginData);
// Create a new thread for the connection to the bStats server
new Thread(new Runnable() {
@Override
public void run() {
try {
// Send the data
sendData(plugin, data);
} catch (Exception e) {
// Something went wrong! :(
if (logFailedRequests) {
plugin.getLogger().log(Level.WARNING, "Could not submit plugin stats of " + plugin.getName(), e);
}
}
}
}).start();
}
/**
* Sends the data to the bStats server.
*
* @param plugin Any plugin. It's just used to get a logger instance.
* @param data The data to send.
* @throws Exception If the request failed.
*/
private static void sendData(Plugin plugin, JSONObject data) throws Exception {
if (data == null) {
throw new IllegalArgumentException("Data cannot be null!");
}
if (Bukkit.isPrimaryThread()) {
throw new IllegalAccessException("This method must not be called from the main thread!");
}
if (logSentData) {
plugin.getLogger().info("Sending data to bStats: " + data.toString());
}
HttpsURLConnection connection = (HttpsURLConnection) new URL(URL).openConnection();
// Compress the data to save bandwidth
byte[] compressedData = compress(data.toString());
// Add headers
connection.setRequestMethod("POST");
connection.addRequestProperty("Accept", "application/json");
connection.addRequestProperty("Connection", "close");
connection.addRequestProperty("Content-Encoding", "gzip"); // We gzip our request
connection.addRequestProperty("Content-Length", String.valueOf(compressedData.length));
connection.setRequestProperty("Content-Type", "application/json"); // We send our data in JSON format
connection.setRequestProperty("User-Agent", "MC-Server/" + B_STATS_VERSION);
// Send data
connection.setDoOutput(true);
DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream());
outputStream.write(compressedData);
outputStream.flush();
outputStream.close();
InputStream inputStream = connection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
builder.append(line);
}
bufferedReader.close();
if (logResponseStatusText) {
plugin.getLogger().info("Sent data to bStats and received response: " + builder.toString());
}
}
/**
* Gzips the given String.
*
* @param str The string to gzip.
* @return The gzipped String.
* @throws IOException If the compression failed.
*/
private static byte[] compress(final String str) throws IOException {
if (str == null) {
return null;
}
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(outputStream);
gzip.write(str.getBytes(StandardCharsets.UTF_8));
gzip.close();
return outputStream.toByteArray();
}
/**
* Represents a custom chart.
*/
public static abstract class CustomChart {
// The id of the chart
final String chartId;
/**
* Class constructor.
*
* @param chartId The id of the chart.
*/
CustomChart(String chartId) {
if (chartId == null || chartId.isEmpty()) {
throw new IllegalArgumentException("ChartId cannot be null or empty!");
}
this.chartId = chartId;
}
private JSONObject getRequestJsonObject() {
JSONObject chart = new JSONObject();
chart.put("chartId", chartId);
try {
JSONObject data = getChartData();
if (data == null) {
// If the data is null we don't send the chart.
return null;
}
chart.put("data", data);
} catch (Throwable t) {
if (logFailedRequests) {
Bukkit.getLogger().log(Level.WARNING, "Failed to get data for custom chart with id " + chartId, t);
}
return null;
}
return chart;
}
protected abstract JSONObject getChartData() throws Exception;
}
/**
* Represents a custom simple pie.
*/
public static class SimplePie extends CustomChart {
private final Callable<String> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public SimplePie(String chartId, Callable<String> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JSONObject getChartData() throws Exception {
JSONObject data = new JSONObject();
String value = callable.call();
if (value == null || value.isEmpty()) {
// Null = skip the chart
return null;
}
data.put("value", value);
return data;
}
}
/**
* Represents a custom advanced pie.
*/
public static class AdvancedPie extends CustomChart {
private final Callable<Map<String, Integer>> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public AdvancedPie(String chartId, Callable<Map<String, Integer>> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JSONObject getChartData() throws Exception {
JSONObject data = new JSONObject();
JSONObject values = new JSONObject();
Map<String, Integer> map = callable.call();
if (map == null || map.isEmpty()) {
// Null = skip the chart
return null;
}
boolean allSkipped = true;
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() == 0) {
continue; // Skip this invalid
}
allSkipped = false;
values.put(entry.getKey(), entry.getValue());
}
if (allSkipped) {
// Null = skip the chart
return null;
}
data.put("values", values);
return data;
}
}
/**
* Represents a custom drilldown pie.
*/
public static class DrilldownPie extends CustomChart {
private final Callable<Map<String, Map<String, Integer>>> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public DrilldownPie(String chartId, Callable<Map<String, Map<String, Integer>>> callable) {
super(chartId);
this.callable = callable;
}
@Override
public JSONObject getChartData() throws Exception {
JSONObject data = new JSONObject();
JSONObject values = new JSONObject();
Map<String, Map<String, Integer>> map = callable.call();
if (map == null || map.isEmpty()) {
// Null = skip the chart
return null;
}
boolean reallyAllSkipped = true;
for (Map.Entry<String, Map<String, Integer>> entryValues : map.entrySet()) {
JSONObject value = new JSONObject();
boolean allSkipped = true;
for (Map.Entry<String, Integer> valueEntry : map.get(entryValues.getKey()).entrySet()) {
value.put(valueEntry.getKey(), valueEntry.getValue());
allSkipped = false;
}
if (!allSkipped) {
reallyAllSkipped = false;
values.put(entryValues.getKey(), value);
}
}
if (reallyAllSkipped) {
// Null = skip the chart
return null;
}
data.put("values", values);
return data;
}
}
/**
* Represents a custom single line chart.
*/
public static class SingleLineChart extends CustomChart {
private final Callable<Integer> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public SingleLineChart(String chartId, Callable<Integer> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JSONObject getChartData() throws Exception {
JSONObject data = new JSONObject();
int value = callable.call();
if (value == 0) {
// Null = skip the chart
return null;
}
data.put("value", value);
return data;
}
}
/**
* Represents a custom multi line chart.
*/
public static class MultiLineChart extends CustomChart {
private final Callable<Map<String, Integer>> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public MultiLineChart(String chartId, Callable<Map<String, Integer>> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JSONObject getChartData() throws Exception {
JSONObject data = new JSONObject();
JSONObject values = new JSONObject();
Map<String, Integer> map = callable.call();
if (map == null || map.isEmpty()) {
// Null = skip the chart
return null;
}
boolean allSkipped = true;
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() == 0) {
continue; // Skip this invalid
}
allSkipped = false;
values.put(entry.getKey(), entry.getValue());
}
if (allSkipped) {
// Null = skip the chart
return null;
}
data.put("values", values);
return data;
}
}
/**
* Represents a custom simple bar chart.
*/
public static class SimpleBarChart extends CustomChart {
private final Callable<Map<String, Integer>> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public SimpleBarChart(String chartId, Callable<Map<String, Integer>> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JSONObject getChartData() throws Exception {
JSONObject data = new JSONObject();
JSONObject values = new JSONObject();
Map<String, Integer> map = callable.call();
if (map == null || map.isEmpty()) {
// Null = skip the chart
return null;
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
JSONArray categoryValues = new JSONArray();
categoryValues.add(entry.getValue());
values.put(entry.getKey(), categoryValues);
}
data.put("values", values);
return data;
}
}
/**
* Represents a custom advanced bar chart.
*/
public static class AdvancedBarChart extends CustomChart {
private final Callable<Map<String, int[]>> callable;
/**
* Class constructor.
*
* @param chartId The id of the chart.
* @param callable The callable which is used to request the chart data.
*/
public AdvancedBarChart(String chartId, Callable<Map<String, int[]>> callable) {
super(chartId);
this.callable = callable;
}
@Override
protected JSONObject getChartData() throws Exception {
JSONObject data = new JSONObject();
JSONObject values = new JSONObject();
Map<String, int[]> map = callable.call();
if (map == null || map.isEmpty()) {
// Null = skip the chart
return null;
}
boolean allSkipped = true;
for (Map.Entry<String, int[]> entry : map.entrySet()) {
if (entry.getValue().length == 0) {
continue; // Skip this invalid
}
allSkipped = false;
JSONArray categoryValues = new JSONArray();
for (int categoryValue : entry.getValue()) {
categoryValues.add(categoryValue);
}
values.put(entry.getKey(), categoryValues);
}
if (allSkipped) {
// Null = skip the chart
return null;
}
data.put("values", values);
return data;
}
}
}

View File

@ -15,8 +15,18 @@ public class MaterialUtil {
material = Material.GRASS;
} else if (material == Materials.LEGACY_NETHER_WARTS.getPostMaterial()) {
material = Materials.LEGACY_NETHER_STALK.getPostMaterial();
} else if (material == Materials.LEGACY_SIGN_POST.getPostMaterial() || material == Material.WALL_SIGN) {
material = Material.SIGN;
} else if (material == Materials.LEGACY_SIGN_POST.getPostMaterial() || material == Materials.OAK_WALL_SIGN.parseMaterial()) {
material = Materials.OAK_SIGN.parseMaterial();
} else if (material == Materials.BIRCH_WALL_SIGN.parseMaterial()) {
material = Materials.BIRCH_SIGN.parseMaterial();
} else if (material == Materials.SPRUCE_WALL_SIGN.parseMaterial()) {
material = Materials.SPRUCE_SIGN.parseMaterial();
} else if (material == Materials.JUNGLE_WALL_SIGN.parseMaterial()) {
material = Materials.JUNGLE_SIGN.parseMaterial();
} else if (material == Materials.ACACIA_WALL_SIGN.parseMaterial()) {
material = Materials.ACACIA_SIGN.parseMaterial();
} else if (material == Materials.DARK_OAK_WALL_SIGN.parseMaterial()) {
material = Materials.DARK_OAK_SIGN.parseMaterial();
} else if (material == Materials.LEGACY_SUGAR_CANE_BLOCK.getPostMaterial()) {
material = Material.SUGAR_CANE;
} else if (material == Material.TRIPWIRE) {
@ -33,6 +43,10 @@ public class MaterialUtil {
material = Materials.LEGACY_BREWING_STAND.getPostMaterial();
} else if (material.name().equals("BED_BLOCK")) {
material = Materials.RED_BED.getPostMaterial();
} else if (material == Materials.SWEET_BERRY_BUSH.parseMaterial()) {
material = Materials.SWEET_BERRIES.parseMaterial();
} else if (material == Materials.BAMBOO_SAPLING.parseMaterial()) {
material = Materials.BAMBOO.parseMaterial();
}
return material;

View File

@ -1,72 +0,0 @@
package me.goodandevil.skyblock.utils.reflection;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
public class PackageClassLoader {
public static <T> List<Class<? extends T>> getClassesOfTypeFromPackage(String packageName, Class<T> classType) {
try {
List<Class<? extends T>> classes = new ArrayList<>();
for (String className : getClassNamesFromPackage(packageName)) {
Class<?> clazz = Class.forName(className);
if (clazz.isAssignableFrom(classType)) {
classes.add((Class<? extends T>) clazz);
}
}
return classes;
} catch (Exception ignored) {
return new ArrayList<>();
}
}
public static List<String> getClassNamesFromPackage(String packageName) throws IOException, URISyntaxException {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL packageURL;
List<String> names = new ArrayList<>();
packageName = packageName.replace(".", "/");
packageURL = classLoader.getResource(packageName);
if (packageURL.getProtocol().equals("jar")) {
String jarFileName;
JarFile jf;
Enumeration<JarEntry> jarEntries;
String entryName;
jarFileName = URLDecoder.decode(packageURL.getFile(), "UTF-8");
jarFileName = jarFileName.substring(5, jarFileName.indexOf("!"));
jf = new JarFile(jarFileName);
jarEntries = jf.entries();
while (jarEntries.hasMoreElements()) {
entryName = jarEntries.nextElement().getName();
if (entryName.startsWith(packageName) && entryName.length() > packageName.length() + 5) {
entryName = entryName.substring(packageName.length(), entryName.lastIndexOf('.'));
names.add(entryName);
}
}
} else {
URI uri = new URI(packageURL.toString());
File folder = new File(uri.getPath());
File[] contenuti = folder.listFiles();
String entryName;
for (File actual : contenuti) {
entryName = actual.getName();
entryName = entryName.substring(0, entryName.lastIndexOf('.'));
names.add(entryName);
}
}
return names;
}
}

View File

@ -112,8 +112,7 @@ public final class StructureUtil {
}
@SuppressWarnings("unchecked")
public static Float[] pasteStructure(Structure structure, org.bukkit.Location location, BlockDegreesType type)
throws Exception {
public static Float[] pasteStructure(Structure structure, org.bukkit.Location location, BlockDegreesType type) {
Storage storage = structure.getStructureStorage();
String[] originLocationPositions = null;
@ -129,38 +128,34 @@ public final class StructureUtil {
pitch = Float.valueOf(originLocationPositions[5]);
}
List<BlockData> blockData = (List<BlockData>) new Gson().fromJson(storage.getBlocks(),
List<BlockData> blockData = new Gson().fromJson(storage.getBlocks(),
new TypeToken<List<BlockData>>() {
}.getType());
for (BlockData blockDataList : blockData) {
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(SkyBlock.getInstance(), new Runnable() {
@Override
public void run() {
try {
org.bukkit.Location blockRotationLocation = LocationUtil
.rotateLocation(new org.bukkit.Location(location.getWorld(), blockDataList.getX(),
blockDataList.getY(), blockDataList.getZ()), type);
org.bukkit.Location blockLocation = new org.bukkit.Location(location.getWorld(),
location.getX() - Math.abs(Integer.valueOf(storage.getOriginLocation().split(":")[0])),
location.getY() - Integer.valueOf(storage.getOriginLocation().split(":")[1]),
location.getZ() + Math.abs(Integer.valueOf(storage.getOriginLocation().split(":")[2])));
blockLocation.add(blockRotationLocation);
BlockUtil.convertBlockDataToBlock(blockLocation.getBlock(), blockDataList);
} catch (Exception e) {
SkyBlock.getInstance().getLogger().warning("Unable to convert BlockData to Block for type {" + blockDataList.getMaterial() +
":" + blockDataList.getData() + "} in structure {" + structure.getStructureFile() + "}");
}
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(SkyBlock.getInstance(), () -> {
try {
org.bukkit.Location blockRotationLocation = LocationUtil
.rotateLocation(new org.bukkit.Location(location.getWorld(), blockDataList.getX(),
blockDataList.getY(), blockDataList.getZ()), type);
org.bukkit.Location blockLocation = new org.bukkit.Location(location.getWorld(),
location.getX() - Math.abs(Integer.valueOf(storage.getOriginLocation().split(":")[0])),
location.getY() - Integer.valueOf(storage.getOriginLocation().split(":")[1]),
location.getZ() + Math.abs(Integer.valueOf(storage.getOriginLocation().split(":")[2])));
blockLocation.add(blockRotationLocation);
BlockUtil.convertBlockDataToBlock(blockLocation.getBlock(), blockDataList);
} catch (Exception e) {
SkyBlock.getInstance().getLogger().warning("Unable to convert BlockData to Block for type {" + blockDataList.getMaterial() +
":" + blockDataList.getData() + "} in structure {" + structure.getStructureFile() + "}");
}
});
}
for (EntityData entityDataList : (List<EntityData>) new Gson().fromJson(storage.getEntities(),
new TypeToken<List<EntityData>>() {
}.getType())) {
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(SkyBlock.getInstance(), new Runnable() {
@Override
public void run() {
Bukkit.getScheduler().scheduleSyncDelayedTask(SkyBlock.getInstance(), () -> {
for (EntityData entityDataList : (List<EntityData>) new Gson().fromJson(storage.getEntities(),
new TypeToken<List<EntityData>>() {
}.getType())) {
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(SkyBlock.getInstance(), () -> {
try {
org.bukkit.Location blockRotationLocation = LocationUtil
.rotateLocation(new org.bukkit.Location(location.getWorld(), entityDataList.getX(),
@ -172,12 +167,12 @@ public final class StructureUtil {
blockLocation.add(blockRotationLocation);
EntityUtil.convertEntityDataToEntity(entityDataList, blockLocation, type);
} catch (Exception e) {
SkyBlock.getInstance().getLogger().warning("Unable to convert EntityData to Entity for type {" + entityDataList.getEntityType() +
"} in structure {" + structure.getStructureFile() + "}");
SkyBlock.getInstance().getLogger().warning("Unable to convert EntityData to Entity for type {" + entityDataList.getEntityType() +
"} in structure {" + structure.getStructureFile() + "}");
}
}
});
}
});
}
}, 60L);
return new Float[] { yaw, pitch };
}

View File

@ -21,13 +21,18 @@ public enum Materials {
ACACIA_PRESSURE_PLATE("WOOD_PLATE", 0, true),
ACACIA_SAPLING("SAPLING", 4),
ACACIA_SLAB("WOOD_STEP", 4),
ACACIA_SIGN("STONE", 0, true),
ACACIA_STAIRS("ACACIA_STAIRS", 4),
ACACIA_TRAPDOOR("TRAP_DOOR", 0, true),
ACACIA_WALL_SIGN("STONE", 0, true),
ACACIA_WOOD("LOG_2", 0),
ACTIVATOR_RAIL("ACTIVATOR_RAIL", 0),
AIR("AIR", 0),
ALLIUM("STONE", 0, true),
ANDESITE("STONE", 5),
ANDESITE_SLAB("STONE", 0, true),
ANDESITE_STAIRS("STONE", 0, true),
ANDESITE_WALL("STONE", 0, true),
ANVIL("ANVIL", 0),
APPLE("APPLE", 0),
ARMOR_STAND("ARMOR_STAND", 0),
@ -36,11 +41,15 @@ public enum Materials {
ATTACHED_PUMPKIN_STEM("PUMPKIN_STEM", 7),
AZURE_BLUET("RED_ROSE", 3),
BAKED_POTATO("BAKED_POTATO", 0),
BAMBOO("STONE", 0, true),
BAMBOO_SAPLING("STONE", 0, true),
BARREL("STONE", 0, true),
BARRIER("BARRIER", 0),
BAT_SPAWN_EGG("MONSTER_EGG", 0),
BEACON("BEACON", 0),
BEDROCK("BEDROCK", 0),
BEEF("RAW_BEEF", 0),
BELL("STONE", 0, true),
BEETROOT("BEETROOT", 0),
BEETROOTS("BEETROOT", 0),
BEETROOT_SEEDS("BEETROOT_SEEDS", 0),
@ -55,15 +64,18 @@ public enum Materials {
BIRCH_PLANKS("WOOD", 2),
BIRCH_PRESSURE_PLATE("WOOD_PLATE", 0, true),
BIRCH_SAPLING("SAPLING", 2),
BIRCH_SIGN("STONE", 0, true),
BIRCH_SLAB("WOOD_STEP", 2),
BIRCH_STAIRS("BIRCH_WOOD_STAIRS", 0),
BIRCH_TRAPDOOR("TRAP_DOOR", 0, true),
BIRCH_WALL_SIGN("STONE", 0, true),
BIRCH_WOOD("LOG", 2),
BLACK_BANNER("BANNER", 0),
BLACK_BED("BED", 15),
BLACK_CARPET("CARPET", 15),
BLACK_CONCRETE("CONCRETE", 15),
BLACK_CONCRETE_POWDER("CONCRETE_POWDER", 15),
BLACK_DYE("STONE", 0, true),
BLACK_GLAZED_TERRACOTTA("BLACK_GLAZED_TERRACOTTA", 0),
BLACK_SHULKER_BOX("BLACK_SHULKER_BOX", 0),
BLACK_STAINED_GLASS("STAINED_GLASS", 15),
@ -71,6 +83,7 @@ public enum Materials {
BLACK_TERRACOTTA("STAINED_CLAY", 15),
BLACK_WALL_BANNER("WALL_BANNER", 0),
BLACK_WOOL("WOOL", 15),
BLAST_FURNACE("STONE", 0, true),
BLAZE_POWDER("BLAZE_POWDER", 0),
BLAZE_ROD("BLAZE_ROD", 0),
BLAZE_SPAWN_EGG("MONSTER_EGG", 0),
@ -79,6 +92,7 @@ public enum Materials {
BLUE_CARPET("CARPET", 11),
BLUE_CONCRETE("CONCRETE", 11),
BLUE_CONCRETE_POWDER("CONCRETE_POWDER", 11),
BLUE_DYE("STONE", 0, true),
BLUE_GLAZED_TERRACOTTA("BLUE_GLAZED_TERRACOTTA", 0),
BLUE_ICE("PACKED_ICE", 0, true),
BLUE_ORCHID("RED_ROSE", 1),
@ -107,11 +121,13 @@ public enum Materials {
BRICKS("BRICK", 0),
BRICK_SLAB("STEP", 4),
BRICK_STAIRS("BRICK_STAIRS", 0),
BRICK_WALL("STONE", 0, true),
BROWN_BANNER("BANNER", 3),
BROWN_BED("BED", 12),
BROWN_CARPET("CARPET", 12),
BROWN_CONCRETE("CONCRETE", 12),
BROWN_CONCRETE_POWDER("CONCRETE_POWDER", 12),
BROWN_DYE("STONE", 0, true),
BROWN_GLAZED_TERRACOTTA("BROWN_GLAZED_TERRACOTTA", 0),
BROWN_MUSHROOM("BROWN_MUSHROOM", 0),
BROWN_MUSHROOM_BLOCK("HUGE_MUSHROOM_1", 0), // UNSURE
@ -130,12 +146,14 @@ public enum Materials {
DEAD_BUBBLE_CORAL_WALL_FAN("STONE", 0, true),
BUCKET("BUCKET", 0),
CACTUS("CACTUS", 0),
CACTUS_GREEN("INK_SACK", 2),
CAKE("CAKE", 0),
CAMPFIRE("STONE", 0, true),
CARROT("CARROT_ITEM", 0),
CARROTS("CARROT", 0),
CARROT_ON_A_STICK("CARROT_STICK", 0),
CARTOGRAPHY_TABLE("STONE", 0, true),
CARVED_PUMPKIN("PUMPKIN", 0),
CAT_SPAWN_EGG("STONE", 0, true),
CAULDRON("CAULDRON", 0),
CAVE_AIR("AIR", 0, true),
CAVE_SPIDER_SPAWN_EGG("MONSTER_EGG", 0),
@ -178,7 +196,9 @@ public enum Materials {
COMMAND_BLOCK_MINECART("COMMAND_MINECART", 0),
COMPARATOR("REDSTONE_COMPARATOR", 0),
COMPASS("COMPASS", 0),
COMPOSTER("STONE", 0, true),
CONDUIT("STONE", 0, true),
CORNFLOWER("STONE", 0, true),
COOKED_BEEF("COOKED_BEEF", 0),
COOKED_CHICKEN("COOKED_CHICKEN", 0),
COOKED_COD("COOKED_FISH", 0),
@ -190,11 +210,15 @@ public enum Materials {
COW_SPAWN_EGG("MONSTER_EGG", 0),
CRACKED_STONE_BRICKS("SMOOTH_BRICK", 2),
CRAFTING_TABLE("WORKBENCH", 0),
CREEPER_BANNER_PATTERN("STONE", 0, true),
CREEPER_HEAD("SKULL", 0),
CREEPER_SPAWN_EGG("MONSTER_EGG", 0),
CREEPER_WALL_HEAD("SKULL", 0),
CROSSBOW("STONE", 0, true),
CUT_RED_SANDSTONE("STONE", 0, true),
CUT_RED_SANDSTONE_SLAB("STONE", 0, true),
CUT_SANDSTONE("STONE", 0, true),
CUT_SANDSTONE_SLAB("STONE", 0, true),
CYAN_BANNER("BANNER", 6),
CYAN_BED("BED", 9),
CYAN_CARPET("CARPET", 9),
@ -210,7 +234,6 @@ public enum Materials {
CYAN_WOOL("WOOL", 9),
DAMAGED_ANVIL("ANVIL", 2),
DANDELION("YELLOW_FLOWER", 0),
DANDELION_YELLOW("INK_SACK", 11),
DARK_OAK_BOAT("BOAT_DARK_OAK", 0),
DARK_OAK_BUTTON("WOOD_BUTTON", 0, true),
DARK_OAK_DOOR("DARK_OAK_DOOR", 0),
@ -221,9 +244,11 @@ public enum Materials {
DARK_OAK_PLANKS("WOOD", 5),
DARK_OAK_PRESSURE_PLATE("WOOD_PLATE", 0, true),
DARK_OAK_SAPLING("SAPLING", 5),
DARK_OAK_SIGN("STONE", 0, true),
DARK_OAK_SLAB("WOOD_STEP", 0),
DARK_OAK_STAIRS("DARK_OAK_STAIRS", 0),
DARK_OAK_TRAPDOOR("TRAP_DOOR", 0, true),
DARK_OAK_WALL_SIGN("STONE", 0, true),
DARK_OAK_WOOD("LOG_2", 1),
DARK_PRISMARINE("PRISMARINE", 2),
DARK_PRISMARINE_SLAB("STONE", 0, true),
@ -253,6 +278,9 @@ public enum Materials {
DIAMOND_SHOVEL("DIAMOND_SPADE", 0),
DIAMOND_SWORD("DIAMOND_SWORD", 0),
DIORITE("STONE", 3),
DIORITE_SLAB("STONE", 0, true),
DIORITE_STAIRS("STONE", 0, true),
DIORITE_WALL("STONE", 0, true),
DIRT("DIRT", 0),
DISPENSER("DISPENSER", 0),
DOLPHIN_SPAWN_EGG("MONSTER_EGG", 0),
@ -285,6 +313,9 @@ public enum Materials {
END_PORTAL_FRAME("ENDER_PORTAL_FRAME", 0),
END_ROD("END_ROD", 0),
END_STONE("ENDER_STONE", 0),
END_STONE_BRICK_SLAB("STONE", 0, true),
END_STONE_BRICK_STAIRS("STONE", 0, true),
END_STONE_BRICK_WALL("STONE", 0, true),
END_STONE_BRICKS("END_BRICKS", 0),
EVOKER_SPAWN_EGG("MONSTER_EGG", 0),
EXPERIENCE_BOTTLE("EXP_BOTTLE", 0),
@ -301,6 +332,9 @@ public enum Materials {
FIRE_CORAL_BLOCK("STONE", 0, true),
FIRE_CORAL_FAN("STONE", 0, true),
FIRE_CORAL_WALL_FAN("STONE", 0, true),
FLETCHING_TABLE("STONE", 0, true),
FLOWER_BANNER_PATTERN("STONE", 0, true),
FOX_SPAWN_EGG("STONE", 0, true),
DEAD_FIRE_CORAL_FAN("STONE", 0, true),
DEAD_FIRE_CORAL_WALL_FAN("STONE", 0, true),
FISHING_ROD("FISHING_ROD", 0),
@ -316,6 +350,7 @@ public enum Materials {
GLASS_BOTTLE("GLASS_BOTTLE", 0),
GLASS_PANE("THIN_GLASS", 0),
GLISTERING_MELON_SLICE("SPECKLED_MELON", 0),
GLOBE_BANNER_PATTERN("STONE", 0, true),
GLOWSTONE("GLOWSTONE", 0),
GLOWSTONE_DUST("GLOWSTONE_DUST", 0),
GOLDEN_APPLE("GOLDEN_APPLE", 0),
@ -335,6 +370,9 @@ public enum Materials {
GOLD_NUGGET("GOLD_NUGGET", 0),
GOLD_ORE("GOLD_ORE", 0),
GRANITE("STONE", 1),
GRANITE_SLAB("STONE", 0, true),
GRANITE_STAIRS("STONE", 0, true),
GRANITE_WALL("STONE", 0, true),
GRASS("GRASS", 0),
GRASS_BLOCK("GRASS", 0),
GRASS_PATH("GRASS_PATH", 0),
@ -357,6 +395,7 @@ public enum Materials {
GREEN_CARPET("CARPET", 13),
GREEN_CONCRETE("CONCRETE", 13),
GREEN_CONCRETE_POWDER("CONCRETE_POWDER", 13),
GREEN_DYE("CACTUS_GREEN", "INK_SACK", 2),
GREEN_GLAZED_TERRACOTTA("GREEN_GLAZED_TERRACOTTA", 0),
GREEN_SHULKER_BOX("GREEN_SHULKER_BOX", 0),
GREEN_STAINED_GLASS("STAINED_GLASS", 13),
@ -364,6 +403,7 @@ public enum Materials {
GREEN_TERRACOTTA("STAINED_CLAY", 13),
GREEN_WALL_BANNER("WALL_BANNER", 0),
GREEN_WOOL("WOOL", 13),
GRINDSTONE("STONE", 0, true),
GUARDIAN_SPAWN_EGG("MONSTER_EGG", 0),
GUNPOWDER("SULPHUR", 0),
HAY_BLOCK("HAY_BLOCK", 0),
@ -406,6 +446,7 @@ public enum Materials {
IRON_TRAPDOOR("IRON_TRAPDOOR", 0),
ITEM_FRAME("ITEM_FRAME", 0),
JACK_O_LANTERN("JACK_O_LANTERN", 0),
JIGSAW("STONE", 0, true),
JUKEBOX("JUKEBOX", 0),
JUNGLE_BOAT("BOAT_JUNGLE", 0),
JUNGLE_BUTTON("WOOD_BUTTON", 0, true),
@ -417,14 +458,17 @@ public enum Materials {
JUNGLE_PLANKS("WOOD", 3),
JUNGLE_PRESSURE_PLATE("WOOD_PLATE", 0, true),
JUNGLE_SAPLING("SAPLING", 3),
JUNGLE_SIGN("STONE", 0, true),
JUNGLE_SLAB("WOOD_STEP", 3),
JUNGLE_STAIRS("JUNGLE_WOOD_STAIRS", 0),
JUNGLE_TRAPDOOR("TRAP_DOOR", 0, true),
JUNGLE_WALL_SIGN("STONE", 0, true),
JUNGLE_WOOD("LOG", 3),
KELP("STONE", 0, true),
KELP_PLANT("STONE", 0, true),
KNOWLEDGE_BOOK("KNOWLEDGE_BOOK", 0),
LADDER("LADDER", 0),
LANTERN("STONE", 0, true),
LAPIS_BLOCK("LAPIS_BLOCK", 0),
LAPIS_LAZULI("INK_SACK", 4),
LAPIS_ORE("LAPIS_ORE", 0),
@ -436,7 +480,9 @@ public enum Materials {
LEATHER_BOOTS("LEATHER_BOOTS", 0),
LEATHER_CHESTPLATE("LEATHER_CHESTPLATE", 0),
LEATHER_HELMET("LEATHER_HELMET", 0),
LEATHER_HORSE_ARMOR("STONE", 0, true),
LEATHER_LEGGINGS("LEATHER_LEGGINGS", 0),
LECTERN("STONE", 0, true),
LEGACY_BED_BLOCK("BED_BLOCK", 0),
LEGACY_BREWING_STAND("BREWING_STAND_ITEM", 0),
LEGACY_BURNING_FURNACE("BURNING_FURNACE", 0),
@ -490,6 +536,7 @@ public enum Materials {
LIGHT_WEIGHTED_PRESSURE_PLATE("GOLD_PLATE", 0),
LILAC("DOUBLE_PLANT", 1),
LILY_PAD("WATER_LILY", 0),
LILY_OF_THE_VALLEY("STONE", 0, true),
LIME_BANNER("BANNER", 10),
LIME_BED("BED", 5),
LIME_CARPET("CARPET", 5),
@ -505,6 +552,7 @@ public enum Materials {
LIME_WOOL("WOOL", 5),
LINGERING_POTION("LINGERING_POTION", 0),
LLAMA_SPAWN_EGG("MONSTER_EGG", 0),
LOOM("STONE", 0, true),
MAGENTA_BANNER("BANNER", 13),
MAGENTA_BED("BED", 2),
MAGENTA_CARPET("CARPET", 2),
@ -528,9 +576,15 @@ public enum Materials {
MELON_STEM("MELON_STEM", 0),
MILK_BUCKET("MILK_BUCKET", 0),
MINECART("MINECART", 0),
MOJANG_BANNER_PATTERN("STONE", 0, true),
MOOSHROOM_SPAWN_EGG("MONSTER_EGG", 0),
MOSSY_COBBLESTONE("MOSSY_COBBLESTONE", 0),
MOSSY_COBBLESTONE_SLAB("STONE", 0, true),
MOSSY_COBBLESTONE_STAIRS("STONE", 0, true),
MOSSY_COBBLESTONE_WALL("COBBLE_WALL", 1),
MOSSY_STONE_BRICK_SLAB("STONE", 0, true),
MOSSY_STONE_BRICK_STAIRS("STONE", 0, true),
MOSSY_STONE_BRICK_WALL("STONE", 0, true),
MOSSY_STONE_BRICKS("SMOOTH_BRICK", 1),
MOVING_PISTON("PISTON_MOVING_PIECE", 0),
MULE_SPAWN_EGG("MONSTER_EGG", 0),
@ -554,6 +608,7 @@ public enum Materials {
NAUTILUS_SHELL("STONE", 0, true),
NETHERRACK("NETHERRACK", 0),
NETHER_BRICK("NETHER_BRICK", 0),
NETHER_BRICK_WALL("STONE", 0, true),
NETHER_BRICKS("NETHER_BRICK", 0),
NETHER_BRICK_FENCE("NETHER_FENCE", 0),
NETHER_BRICK_SLAB("STEP", 6),
@ -574,9 +629,11 @@ public enum Materials {
OAK_PLANKS("WOOD", 0),
OAK_PRESSURE_PLATE("WOOD_PLATE", 0),
OAK_SAPLING("SAPLING", 0),
OAK_SIGN("SIGN", 0),
OAK_SLAB("WOOD_STEP", 0),
OAK_STAIRS("WOOD_STAIRS", 0),
OAK_TRAPDOOR("TRAP_DOOR", 0),
OAK_WALL_SIGN("WALL_SIGN", 0),
OAK_WOOD("LOG", 0),
OBSERVER("OBSERVER", 0),
OBSIDIAN("OBSIDIAN", 0),
@ -598,6 +655,7 @@ public enum Materials {
OXEYE_DAISY("RED_ROSE", 8),
PACKED_ICE("PACKED_ICE", 0),
PAINTING("PAINTING", 0),
PANDA_SPAWN_EGG("STONE", 0, true),
PAPER("PAPER", 0),
PARROT_SPAWN_EGG("MONSTER_EGG", 0),
PEONY("DOUBLE_PLANT", 5),
@ -605,6 +663,7 @@ public enum Materials {
PHANTOM_MEMBRANE("STONE", 0, true),
PHANTOM_SPAWN_EGG("MONSTER_EGG", 0),
PIG_SPAWN_EGG("MONSTER_EGG", 0),
PILLAGER_SPAWN_EGG("STONE", 0, true),
PINK_BANNER("BANNER", 9),
PINK_BED("BED", 6),
PINK_CARPET("CARPET", 6),
@ -627,8 +686,14 @@ public enum Materials {
POISONOUS_POTATO("POISONOUS_POTATO", 0),
POLAR_BEAR_SPAWN_EGG("MONSTER_EGG", 0),
POLISHED_ANDESITE("STONE", 6),
POLISHED_ANDESITE_SLAB("STONE", 0, true),
POLISHED_ANDESITE_STAIRS("STONE", 0, true),
POLISHED_DIORITE("STONE", 4),
POLISHED_DIORITE_SLAB("STONE", 0, true),
POLISHED_DIORITE_STAIRS("STONE", 0, true),
POLISHED_GRANITE("STONE", 2),
POLISHED_GRANITE_SLAB("STONE", 0, true),
POLISHED_GRANITE_STAIRS("STONE", 0, true),
POPPED_CHORUS_FRUIT("CHORUS_FRUIT_POPPED", 0),
POPPY("RED_ROSE", 0),
PORKCHOP("PORK", 0),
@ -638,15 +703,18 @@ public enum Materials {
POTTED_ACACIA_SAPLING("FLOWER_POT", 0, true),
POTTED_ALLIUM("FLOWER_POT", 0, true),
POTTED_AZURE_BLUET("FLOWER_POT", 0, true),
POTTED_BAMBOO("STONE", 0, true),
POTTED_BIRCH_SAPLING("FLOWER_POT", 0, true),
POTTED_BLUE_ORCHID("FLOWER_POT", 0, true),
POTTED_BROWN_MUSHROOM("FLOWER_POT", 0, true),
POTTED_CACTUS("FLOWER_POT", 0, true),
POTTED_CORNFLOWER("STONE", 0, true),
POTTED_DANDELION("FLOWER_POT", 0, true),
POTTED_DARK_OAK_SAPLING("FLOWER_POT", 0, true),
POTTED_DEAD_BUSH("FLOWER_POT", 0, true),
POTTED_FERN("FLOWER_POT", 0, true),
POTTED_JUNGLE_SAPLING("FLOWER_POT", 0, true),
POTTED_LILY_OF_THE_VALLEY("STONE", 0, true),
POTTED_OAK_SAPLING("FLOWER_POT", 0, true),
POTTED_ORANGE_TULIP("FLOWER_POT", 0, true),
POTTED_OXEYE_DAISY("FLOWER_POT", 0, true),
@ -656,6 +724,7 @@ public enum Materials {
POTTED_RED_TULIP("FLOWER_POT", 0, true),
POTTED_SPRUCE_SAPLING("FLOWER_POT", 0, true),
POTTED_WHITE_TULIP("FLOWER_POT", 0, true),
POTTED_WITHER_ROSE("STONE", 0, true),
POWERED_RAIL("POWERED_RAIL", 0),
PRISMARINE("PRISMARINE", 0),
PRISMARINE_BRICKS("PRISMARINE", 1),
@ -665,6 +734,7 @@ public enum Materials {
PRISMARINE_SHARD("PRISMARINE_SHARD", 0),
PRISMARINE_SLAB("STONE", 0, true),
PRISMARINE_STAIRS("STONE", 0, true),
PRISMARINE_WALL("STONE", 0, true),
PUFFERFISH("RAW_FISH", 3),
PUFFERFISH_BUCKET("STONE", 0, true),
PUFFERFISH_SPAWN_EGG("MONSTER_EGG", 0),
@ -700,6 +770,7 @@ public enum Materials {
RABBIT_SPAWN_EGG("MONSTER_EGG", 0),
RABBIT_STEW("RABBIT_STEW", 0),
RAIL("RAILS", 0),
RAVAGER_SPAWN_EGG("STONE", 0, true),
REDSTONE("REDSTONE", 0),
REDSTONE_BLOCK("REDSTONE_BLOCK", 0),
REDSTONE_LAMP("REDSTONE_LAMP_OFF", 0),
@ -712,14 +783,19 @@ public enum Materials {
RED_CARPET("CARPET", 14),
RED_CONCRETE("CONCRETE", 14),
RED_CONCRETE_POWDER("CONCRETE_POWDER", 14),
RED_DYE("ROSE_RED", "INK_SACK", 1),
RED_GLAZED_TERRACOTTA("RED_GLAZED_TERRACOTTA", 0),
RED_MUSHROOM("RED_MUSHROOM", 0),
RED_MUSHROOM_BLOCK("HUGE_MUSHROOM_2", 0),
RED_NETHER_BRICK_SLAB("STONE", 0, true),
RED_NETHER_BRICK_STAIRS("STONE", 0, true),
RED_NETHER_BRICK_WALL("STONE", 0, true),
RED_NETHER_BRICKS("RED_NETHER_BRICK", 0),
RED_SAND("SAND", 1),
RED_SANDSTONE("RED_SANDSTONE", 0),
RED_SANDSTONE_SLAB("STONE_SLAB2", 0),
RED_SANDSTONE_STAIRS("RED_SANDSTONE_STAIRS", 0),
RED_SANDSTONE_WALL("STONE", 0, true),
RED_SHULKER_BOX("RED_SHULKER_BOX", 0),
RED_STAINED_GLASS("STAINED_GLASS", 14),
RED_STAINED_GLASS_PANE("STAINED_GLASS_PANE", 14),
@ -730,7 +806,6 @@ public enum Materials {
REPEATER("DIODE", 0),
REPEATING_COMMAND_BLOCK("COMMAND_REPEATING", 0),
ROSE_BUSH("DOUBLE_PLANT", 4),
ROSE_RED("INK_SACK", 1),
ROTTEN_FLESH("ROTTEN_FLESH", 0),
SADDLE("SADDLE", 0),
SALMON("RAW_FISH", 1),
@ -740,6 +815,8 @@ public enum Materials {
SANDSTONE("SANDSTONE", 0),
SANDSTONE_SLAB("STEP", 1),
SANDSTONE_STAIRS("SANDSTONE_STAIRS", 0),
SANDSTONE_WALL("STONE", 0, true),
SCAFFOLDING("STONE", 0, true),
SCUTE("STONE", 0, true),
SEAGRASS("STONE", 0, true),
SEA_LANTERN("SEA_LANTERN", 0),
@ -750,19 +827,28 @@ public enum Materials {
SHULKER_BOX("PURPLE_SHULKER_BOX", 0),
SHULKER_SHELL("SHULKER_SHELL", 0),
SHULKER_SPAWN_EGG("MONSTER_EGG", 0),
SIGN("SIGN", 0),
SILVERFISH_SPAWN_EGG("MONSTER_EGG", 0),
SKELETON_HORSE_SPAWN_EGG("MONSTER_EGG", 0),
SKELETON_SKULL("SKULL", 0),
SKELETON_SPAWN_EGG("MONSTER_EGG", 0),
SKELETON_WALL_SKULL("SKULL", 0),
SKULL_BANNER_PATTERN("STONE", 0, true),
SLIME_BALL("SLIME_BALL", 0),
SLIME_BLOCK("SLIME_BLOCK", 0),
SLIME_SPAWN_EGG("MONSTER_EGG", 0),
SMITHING_TABLE("STONE", 0, true),
SMOKER("STONE", 0, true),
SMOOTH_QUARTZ("STONE", 0, true),
SMOOTH_QUARTZ_SLAB("STONE", 0, true),
SMOOTH_QUARTZ_STAIRS("STONE", 0, true),
SMOOTH_RED_SANDSTONE("RED_SANDSTONE", 2),
SMOOTH_RED_SANDSTONE_SLAB("STONE", 0, true),
SMOOTH_RED_SANDSTONE_STAIRS("STONE", 0, true),
SMOOTH_SANDSTONE("SANDSTONE", 2),
SMOOTH_SANDSTONE_SLAB("STONE", 0, true),
SMOOTH_SANDSTONE_STAIRS("STONE", 0, true),
SMOOTH_STONE("STEP", 0),
SMOOTH_STONE_SLAB("STONE", 0, true),
SNOW("SNOW", 0),
SNOWBALL("SNOW_BALL", 0),
SNOW_BLOCK("SNOW_BLOCK", 0),
@ -840,24 +926,29 @@ public enum Materials {
SPRUCE_PLANKS("WOOD", 1),
SPRUCE_PRESSURE_PLATE("WOOD_PLATE", 0, true),
SPRUCE_SAPLING("SAPLING", 1),
SPRUCE_SIGN("STONE", 0, true),
SPRUCE_SLAB("WOOD_STEP", 1),
SPRUCE_STAIRS("SPRUCE_WOOD_STAIRS", 0),
SPRUCE_TRAPDOOR("TRAP_DOOR", 0, true),
SPRUCE_WALL_SIGN("STONE", 0, true),
SPRUCE_WOOD("LOG", 1),
SQUID_SPAWN_EGG("MONSTER_EGG", 0),
STICK("STICK", 0),
STICKY_PISTON("PISTON_STICKY_BASE", 0),
STONE("STONE", 0),
STONECUTTER("STONE", 0, true),
STONE_AXE("STONE_AXE", 0),
STONE_BRICKS("SMOOTH_BRICK", 0),
STONE_BRICK_SLAB("STEP", 5),
STONE_BRICK_STAIRS("SMOOTH_STAIRS", 0),
STONE_BRICK_WALL("STONE", 0, true),
STONE_BUTTON("STONE_BUTTON", 0),
STONE_HOE("STONE_HOE", 0),
STONE_PICKAXE("STONE_PICKAXE", 0),
STONE_PRESSURE_PLATE("STONE_PLATE", 0),
STONE_SHOVEL("STONE_SPADE", 0),
STONE_SLAB("STEP", 0),
STONE_STAIRS("STONE", 0, true),
STONE_SWORD("STONE_SWORD", 0),
STRAY_SPAWN_EGG("MONSTER_EGG", 0),
STRING("STRING", 0),
@ -878,6 +969,9 @@ public enum Materials {
SUGAR("SUGAR", 0),
SUGAR_CANE("SUGAR_CANE", 0),
SUNFLOWER("DOUBLE_PLANT", 0),
SUSPICIOUS_STEW("STONE", 0, true),
SWEET_BERRIES("STONE", 0, true),
SWEET_BERRY_BUSH("STONE", 0, true),
TALL_GRASS("DOUBLE_PLANT", 2),
TALL_SEAGRASS("STONE", 0, true),
TERRACOTTA("HARD_CLAY", 0),
@ -886,6 +980,7 @@ public enum Materials {
TNT_MINECART("EXPLOSIVE_MINECART", 0),
TORCH("TORCH", 0),
TOTEM_OF_UNDYING("TOTEM", 0),
TRADER_LLAMA_SPAWN_EGG("STONE", 0, true),
TRAPPED_CHEST("TRAPPED_CHEST", 0),
TRIDENT("STONE", 0, true),
TRIPWIRE("TRIPWIRE", 0),
@ -907,6 +1002,7 @@ public enum Materials {
VOID_AIR("AIR", 0, true),
WALL_SIGN("WALL_SIGN", 0),
WALL_TORCH("TORCH", 1),
WANDERING_TRADER_SPAWN_EGG("STONE", 0, true),
WATER("WATER", 0),
WATER_BUCKET("WATER_BUCKET", 0),
WET_SPONGE("SPONGE", 1),
@ -917,6 +1013,7 @@ public enum Materials {
WHITE_CARPET("CARPET", 0),
WHITE_CONCRETE("CONCRETE", 0),
WHITE_CONCRETE_POWDER("CONCRETE_POWDER", 0),
WHITE_DYE("STONE", 0, true),
WHITE_GLAZED_TERRACOTTA("WHITE_GLAZED_TERRACOTTA", 0),
WHITE_SHULKER_BOX("WHITE_SHULKER_BOX", 0),
WHITE_STAINED_GLASS("STAINED_GLASS", 0),
@ -926,6 +1023,7 @@ public enum Materials {
WHITE_WALL_BANNER("WALL_BANNER", 0),
WHITE_WOOL("WOOL", 0),
WITCH_SPAWN_EGG("MONSTER_EGG", 0),
WITHER_ROSE("STONE", 0, true),
WITHER_SKELETON_SKULL("SKULL", 0),
WITHER_SKELETON_SPAWN_EGG("MONSTER_EGG", 0),
WITHER_SKELETON_WALL_SKULL("SKULL", 0),
@ -942,6 +1040,7 @@ public enum Materials {
YELLOW_CARPET("CARPET", 4),
YELLOW_CONCRETE("CONCRETE", 4),
YELLOW_CONCRETE_POWDER("CONCRETE_POWDER", 4),
YELLOW_DYE("DANDELION_YELLOW", "INK_SACK", 11),
YELLOW_GLAZED_TERRACOTTA("YELLOW_GLAZED_TERRACOTTA", 0),
YELLOW_SHULKER_BOX("YELLOW_SHULKER_BOX", 0),
YELLOW_STAINED_GLASS("STAINED_GLASS", 4),
@ -956,18 +1055,28 @@ public enum Materials {
ZOMBIE_VILLAGER_SPAWN_EGG("MONSTER_EGG", 0),
ZOMBIE_WALL_HEAD("SKULL", 0);
String m;
String old13Mat;
String old12Mat;
int data;
boolean is13only;
boolean is13Plusonly;
Materials(String m, int data) {
this(m, data, false);
Materials(String old13Mat, String old12Mat, int data) {
this(old13Mat, old12Mat, data, false);
}
Materials(String old13Mat, String old12Mat, int data, boolean is13Plusonly) {
this.old13Mat = old13Mat;
this.old12Mat = old12Mat;
this.data = data;
this.is13Plusonly = is13Plusonly;
}
Materials(String old12Mat, int data) {
this(null, old12Mat, data, false);
}
Materials(String m, int data, boolean is13only) {
this.m = m;
this.data = data;
this.is13only = is13only;
Materials(String old12Mat, int data, boolean is13Plusonly) {
this(null, old12Mat, data, is13Plusonly);
}
@SuppressWarnings("deprecation")
@ -1008,7 +1117,7 @@ public enum Materials {
return false;
}
return isNewVersion() || !this.is13only;
return isNewVersion() || !this.is13Plusonly;
}
private static HashMap<String, Materials> cachedSearch = new HashMap<>();
@ -1021,13 +1130,13 @@ public enum Materials {
Materials pmat = null;
for (Materials mat : Materials.values()) {
if (name.toUpperCase().equals(mat.m)) {
if (name.toUpperCase().equals(mat.old12Mat)) {
if (pmat == null) {
pmat = mat;
}
if (((byte) mat.data) == data) {
cachedSearch.put(mat.m + "," + data, mat);
cachedSearch.put(mat.old12Mat + "," + data, mat);
return mat;
}
}
@ -1070,7 +1179,7 @@ public enum Materials {
return Materials.valueOf(mat.toString());
} catch (IllegalArgumentException e) {
for (Materials xmat : Materials.values()) {
if (xmat.m.equals(mat.toString())) {
if (xmat.old12Mat.equals(mat.toString())) {
return xmat;
}
}
@ -1106,35 +1215,22 @@ public enum Materials {
String[] split = type.toString().split("_");
int length = split.length;
switch (split[length - 1]) {
case "HELMET":
return true;
case "CHESTPLATE":
return true;
case "LEGGINGS":
return true;
case "BOOTS":
return true;
case "SWORD":
return true;
case "AXE":
return true;
case "PICKAXE":
return true;
case "SHOVEL":
return true;
case "HOE":
return true;
case "ELYTRA":
return true;
case "TURTLE_HELMET":
return true;
case "TRIDENT":
return true;
case "HORSE_ARMOR":
return true;
case "SHEARS":
return true;
default:
case "HELMET":
case "SHEARS":
case "HORSE_ARMOR":
case "TRIDENT":
case "TURTLE_HELMET":
case "ELYTRA":
case "HOE":
case "SHOVEL":
case "PICKAXE":
case "AXE":
case "SWORD":
case "BOOTS":
case "LEGGINGS":
case "CHESTPLATE":
return true;
default:
return false;
}
}
@ -1144,12 +1240,13 @@ public enum Materials {
return Materials.SPAWNER.parseMaterial();
Material mat = Material.matchMaterial(this.toString());
if (mat != null) {
if (mat != null)
return mat;
}
return Material.matchMaterial(m);
if (old13Mat != null)
return Material.matchMaterial(old13Mat);
return Material.matchMaterial(old12Mat);
}
public Material getPostMaterial() {
@ -1159,7 +1256,7 @@ public enum Materials {
Method fromLegacy = unsafe.getClass().getMethod("fromLegacy", Material.class);
if (fromLegacy != null) {
return (Material) fromLegacy.invoke(unsafe, Material.getMaterial("LEGACY_" + m));
return (Material) fromLegacy.invoke(unsafe, Material.getMaterial("LEGACY_" + old12Mat));
}
} catch (Exception e) {
}
@ -1174,7 +1271,7 @@ public enum Materials {
Method fromLegacy = unsafe.getClass().getMethod("fromLegacy", Material.class);
if (fromLegacy != null) {
return new ItemStack((Material) fromLegacy.invoke(unsafe, Material.getMaterial("LEGACY_" + m)));
return new ItemStack((Material) fromLegacy.invoke(unsafe, Material.getMaterial("LEGACY_" + old12Mat)));
}
} catch (Exception e) {
}

View File

@ -23,16 +23,6 @@ import java.util.logging.Level;
public final class LocationUtil {
public static boolean isLocationCentreOfBlock(Location location) {
double x = location.getX() - location.getBlockX() - 0.5D, z = location.getZ() - location.getBlockZ() - 0.5D;
if (Math.abs(x) < 0.2D && Math.abs(z) < 0.2D) {
return true;
}
return false;
}
public static boolean isLocationLocation(Location location1, Location location2) {
if (location1.getBlockX() == location2.getBlockX() && location1.getBlockY() == location2.getBlockY()
&& location1.getBlockZ() == location2.getBlockZ()) {

View File

@ -29,7 +29,7 @@ public class BlockData {
private String commandBlockName = "";
private String entity = EntityType.COW.toString();
private String exitLocation = "";
private String flower = Materials.ROSE_RED.parseMaterial().toString() + ":0";
private String flower = Materials.RED_DYE.parseMaterial().toString() + ":0";
private String playing = Materials.MUSIC_DISC_CHIRP.parseMaterial().toString();
private String[] signLines = {};
private String rotateFace = BlockFace.NORTH.toString();

View File

@ -60,15 +60,6 @@ public final class BlockUtil {
String secondaryEffectName = beacon.getSecondaryEffect() != null ? beacon.getSecondaryEffect().toString() : "null";
blockData.setPotionEffect(primaryEffectName + ":" + secondaryEffectName);
for (int i = 0; i < beacon.getInventory().getSize(); i++) {
ItemStack is = beacon.getInventory().getItem(i);
if (is != null && is.getType() != Material.AIR) {
blockData.addItem(i, ItemStackUtil.serializeItemStack(is));
}
}
blockData.setStateType(BlockStateType.BEACON.toString());
} else if (blockState instanceof BrewingStand) {
BrewingStand brewingStand = (BrewingStand) blockState;
@ -309,13 +300,6 @@ public final class BlockUtil {
if (!potionEffect[1].equals("null")) {
beacon.setSecondaryEffect(PotionEffectType.getByName(potionEffect[1].toUpperCase()));
}
for (Integer slotList : blockData.getInventory().keySet()) {
if (slotList < beacon.getInventory().getSize()) {
ItemStack is = ItemStackUtil.deserializeItemStack(blockData.getInventory().get(slotList));
beacon.getInventory().setItem(slotList, is);
}
}
} else if (blockTypeState == BlockStateType.BREWINGSTAND) {
BrewingStand brewingStand = (BrewingStand) block.getState();
brewingStand.setBrewingTime(blockData.getBrewingTime());
@ -396,14 +380,14 @@ public final class BlockUtil {
} else if (blockTypeState == BlockStateType.SKULL) {
Skull skull = (Skull) block.getState();
skull.setRotation(BlockFace.valueOf(blockData.getRotateFace().toUpperCase()));
skull.setSkullType(SkullType.valueOf(blockData.getSkullType().toUpperCase()));
if (NMSVersion > 9) {
skull.setOwningPlayer(Bukkit.getServer().getOfflinePlayer(blockData.getSkullOwner()));
} else {
skull.setOwner(skull.getOwner());
skull.setOwner(blockData.getSkullOwner());
}
skull.setRotation(BlockFace.valueOf(blockData.getRotateFace().toUpperCase()));
skull.setSkullType(SkullType.valueOf(blockData.getSkullType().toUpperCase()));
} else {
if (NMSVersion > 8) {
if (blockTypeState == BlockStateType.ENDGATEWAY) {

View File

@ -51,7 +51,6 @@ public class EntityData {
private int llamaStrength;
private int angerLevel;
private int slimeSize;
private int riches;
private int age;
private boolean arms;
@ -449,14 +448,6 @@ public class EntityData {
this.slimeSize = slimeSize;
}
public int getRiches() {
return this.riches;
}
public void setRiches(int riches) {
this.riches = riches;
}
public int getAge() {
return this.age;
}

View File

@ -1,8 +1,9 @@
package me.goodandevil.skyblock.utils.world.entity;
import java.util.ArrayList;
import java.util.List;
import me.goodandevil.skyblock.utils.item.ItemStackUtil;
import me.goodandevil.skyblock.utils.item.MaterialUtil;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import me.goodandevil.skyblock.utils.world.block.BlockDegreesType;
import org.bukkit.Art;
import org.bukkit.Bukkit;
import org.bukkit.DyeColor;
@ -10,7 +11,32 @@ import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Rotation;
import org.bukkit.TreeSpecies;
import org.bukkit.entity.*;
import org.bukkit.entity.Ageable;
import org.bukkit.entity.ArmorStand;
import org.bukkit.entity.Bat;
import org.bukkit.entity.Boat;
import org.bukkit.entity.Creeper;
import org.bukkit.entity.Enderman;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Hanging;
import org.bukkit.entity.Horse;
import org.bukkit.entity.IronGolem;
import org.bukkit.entity.ItemFrame;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Llama;
import org.bukkit.entity.Ocelot;
import org.bukkit.entity.Painting;
import org.bukkit.entity.Parrot;
import org.bukkit.entity.Pig;
import org.bukkit.entity.PigZombie;
import org.bukkit.entity.Rabbit;
import org.bukkit.entity.Sheep;
import org.bukkit.entity.Slime;
import org.bukkit.entity.Snowman;
import org.bukkit.entity.Vehicle;
import org.bukkit.entity.Villager;
import org.bukkit.entity.Zombie;
import org.bukkit.entity.minecart.HopperMinecart;
import org.bukkit.entity.minecart.StorageMinecart;
import org.bukkit.inventory.EntityEquipment;
@ -20,10 +46,8 @@ import org.bukkit.material.Colorable;
import org.bukkit.material.MaterialData;
import org.bukkit.util.EulerAngle;
import me.goodandevil.skyblock.utils.item.ItemStackUtil;
import me.goodandevil.skyblock.utils.item.MaterialUtil;
import me.goodandevil.skyblock.utils.version.NMSUtil;
import me.goodandevil.skyblock.utils.world.block.BlockDegreesType;
import java.util.ArrayList;
import java.util.List;
@SuppressWarnings("deprecation")
public final class EntityUtil {
@ -191,7 +215,6 @@ public final class EntityUtil {
} else if (entity instanceof Villager) {
Villager villager = ((Villager) entity);
entityData.setProfession(villager.getProfession().toString());
entityData.setRiches(villager.getRiches());
List<String> items = new ArrayList<>();
@ -443,7 +466,6 @@ public final class EntityUtil {
}
villager.getInventory().setContents(items.toArray(new ItemStack[0]));
villager.setRiches(entityData.getRiches());
}
if (NMSVersion > 10) {

View File

@ -1234,6 +1234,11 @@ Placeholder:
Message: "&c0"
Non-empty:
Message: "&f%placeholder"
fabledskyblock_island_bank_balance_formatted:
Empty:
Message: "&c0"
Non-empty:
Message: "&f%placeholder"
fabledskyblock_island_leaderboard_level_rank:
Empty:
Message: "&c0"
@ -1285,6 +1290,8 @@ Hologram:
Claimed: "&8* &f&o[%position] &a%player &7- &6%votes"
Unclaimed: "&8* &f&o[%position] &7&oUnclaimed Position"
Footer: "&ewww.example.net"
Stackable:
Message: "%blocks: %amount"
Scoreboard:
Tutorial:
Displayname: "&b&lSkyBlock"

View File

@ -25,6 +25,7 @@ Materials:
ACACIA_STAIRS:
Points: 2
ACACIA_TRAPDOOR:
Points: 3
ACACIA_WOOD:
Points: 1
ACTIVATOR_RAIL:
@ -33,6 +34,12 @@ Materials:
Points: 1
ANDESITE:
Points: 1
ANDESITE_SLAB:
Points: 1
ANDESITE_STAIRS:
Points: 1
ANDESITE_WALL:
Points: 1
ANVIL:
Points: 10
ATTACHED_MELON_STEM:
@ -43,12 +50,20 @@ Materials:
Points: 1
BARRIER:
Points: 0
BAMBOO:
Points: 1
BAMBOO_SAPLING:
Points: 1
BARREL:
Points: 1
BEACON:
Points: 500
BEDROCK:
Points: 0
BEETROOTS:
Points: 1
BELL:
Points: 7
BIRCH_BUTTON:
Points: 1
BIRCH_DOOR:
@ -67,12 +82,16 @@ Materials:
Points: 2
BIRCH_SAPLING:
Points: 1
BIRCH_SIGN:
Points: 6
BIRCH_SLAB:
Points: 1
BIRCH_STAIRS:
Points: 2
BIRCH_TRAPDOOR:
Points: 3
BIRCH_WALL_SIGN:
Points: 6
BIRCH_WOOD:
Points: 1
BLACK_BANNER:
@ -99,6 +118,8 @@ Materials:
Points: 2
BLACK_WOOL:
Points: 2
BLAST_FURNACE:
Points: 6
BLUE_BANNER:
Points: 2
BLUE_BED:
@ -147,6 +168,8 @@ Materials:
Points: 3
BRICK_STAIRS:
Points: 5
BRICK_WALL:
Points: 3
BROWN_BANNER:
Points: 2
BROWN_BED:
@ -187,10 +210,14 @@ Materials:
Points: 1
CACTUS:
Points: 1
CAMPFIRE:
Points: 2
CAKE:
Points: 9
CARROTS:
Points: 1
CARTOGRAPHY_TABLE:
Points: 5
CARVED_PUMPKIN:
Points: 2
CAULDRON:
@ -239,8 +266,12 @@ Materials:
Points: 0
COMPARATOR:
Points: 10
COMPOSTER:
Points: 4
CONDUIT:
Points: 1
CORNFLOWER:
Points: 1
CRACKED_STONE_BRICKS:
Points: 2
CRAFTING_TABLE:
@ -251,8 +282,12 @@ Materials:
Points: 1
CUT_RED_SANDSTONE:
Points: 1
CUT_RED_SANDSTONE_SLAB:
Points: 1
CUT_SANDSTONE:
Points: 1
CUT_SANDSTONE_SLAB:
Points: 1
CYAN_BANNER:
Points: 2
CYAN_BED:
@ -299,12 +334,16 @@ Materials:
Points: 2
DARK_OAK_SAPLING:
Points: 1
DARK_OAK_SIGN:
Points: 6
DARK_OAK_SLAB:
Points: 1
DARK_OAK_STAIRS:
Points: 2
DARK_OAK_TRAPDOOR:
Points: 3
DARK_OAK_WALL_SIGN:
Points: 6
DARK_OAK_WOOD:
Points: 1
DARK_PRISMARINE:
@ -355,6 +394,12 @@ Materials:
Points: 1
DIORITE:
Points: 1
DIORITE_SLAB:
Points: 1
DIORITE_STAIRS:
Points: 1
DIORITE_WALL:
Points: 1
DIRT:
Points: 3
DISPENSER:
@ -387,6 +432,12 @@ Materials:
Points: 1
END_STONE:
Points: 1
END_STONE_BRICK_SLAB:
Points: 1
END_STONE_BRICK_STAIRS:
Points: 1
END_STONE_BRICK_WALL:
Points: 1
END_STONE_BRICKS:
Points: 2
FARMLAND:
@ -403,6 +454,8 @@ Materials:
Points: 1
FIRE_CORAL_WALL_FAN:
Points: 1
FLETCHING_TABLE:
Points: 4
FLOWER_POT:
Points: 1
FROSTED_ICE:
@ -421,6 +474,12 @@ Materials:
Points: 1
GRANITE:
Points: 1
GRANITE_SLAB:
Points: 1
GRANITE_STAIRS:
Points: 1
GRANITE_WALL:
Points: 1
GRASS:
Points: 4
GRASS_BLOCK:
@ -477,6 +536,8 @@ Materials:
Points: 2
GREEN_WOOL:
Points: 2
GRINDSTONE:
Points: 4
HAY_BLOCK:
Points: 2
HEAVY_WEIGHTED_PRESSURE_PLATE:
@ -517,6 +578,8 @@ Materials:
Points: 4
JACK_O_LANTERN:
Points: 2
JIGSAW:
Points: 4
JUKEBOX:
Points: 10
JUNGLE_BUTTON:
@ -537,12 +600,16 @@ Materials:
Points: 2
JUNGLE_SAPLING:
Points: 1
JUNGLE_SIGN:
Points: 6
JUNGLE_SLAB:
Points: 1
JUNGLE_STAIRS:
Points: 2
JUNGLE_TRAPDOOR:
Points: 3
JUNGLE_WALL_SIGN:
Points: 6
JUNGLE_WOOD:
Points: 1
KELP:
@ -551,14 +618,16 @@ Materials:
Points: 1
LADDER:
Points: 2
LANTERN:
Points: 3
LAPIS_BLOCK:
Points: 10
LAPIS_ORE:
Points: 1
LARGE_FERN:
Points: 1
LAVA:
Points: 0
LECTERN:
Points: 4
LEVER:
Points: 1
LIGHT_BLUE_BANNER:
@ -613,6 +682,8 @@ Materials:
Points: 3
LILAC:
Points: 1
LILY_OF_THE_VALLEY:
Points: 1
LILY_PAD:
Points: 5
LIME_BANNER:
@ -639,6 +710,8 @@ Materials:
Points: 2
LIME_WOOL:
Points: 2
LOOM:
Points: 4
MAGENTA_BANNER:
Points: 2
MAGENTA_BED:
@ -671,10 +744,20 @@ Materials:
Points: 1
MOSSY_COBBLESTONE:
Points: 1
MOSSY_COBBLESTONE_SLAB:
Points: 1
MOSSY_COBBLESTONE_STAIRS:
Points: 1
MOSSY_COBBLESTONE_WALL:
Points: 1
MOSSY_STONE_BRICK_SLAB:
Points: 1
MOSSY_STONE_BRICK_STAIRS:
Points: 1
MOSSY_STONE_BRICK_WALL:
Points: 1
MOSSY_STONE_BRICKS:
Points: 2
Points: 1
MOVING_PISTON:
Points: 1
MUSHROOM_STEM:
@ -683,6 +766,8 @@ Materials:
Points: 5
NETHERRACK:
Points: 1
NETHER_BRICK_WALL:
Points: 1
NETHER_BRICKS:
Points: 2
NETHER_BRICK_FENCE:
@ -719,12 +804,16 @@ Materials:
Points: 2
OAK_SAPLING:
Points: 1
OAK_SIGN:
Points: 6
OAK_SLAB:
Points: 1
OAK_STAIRS:
Points: 2
OAK_TRAPDOOR:
Points: 3
OAK_WALL_SIGN:
Points: 6
OAK_WOOD:
Points: 1
OBSERVER:
@ -803,10 +892,22 @@ Materials:
Points: 2
POLISHED_ANDESITE:
Points: 1
POLISHED_ANDESITE_SLAB:
Points: 1
POLISHED_ANDESITE_STAIRS:
Points: 1
POLISHED_DIORITE:
Points: 1
POLISHED_DIORITE_SLAB:
Points: 1
POLISHED_DIORITE_STAIRS:
Points: 1
POLISHED_GRANITE:
Points: 1
POLISHED_GRANITE_SLAB:
Points: 1
POLISHED_GRANITE_STAIRS:
Points: 1
POPPY:
Points: 1
POTATOES:
@ -817,6 +918,8 @@ Materials:
Points: 1
POTTED_AZURE_BLUET:
Points: 1
POTTED_BAMBOO:
Points: 1
POTTED_BIRCH_SAPLING:
Points: 1
POTTED_BLUE_ORCHID:
@ -825,6 +928,8 @@ Materials:
Points: 1
POTTED_CACTUS:
Points: 1
POTTED_CORNFLOWER:
Points: 1
POTTED_DANDELION:
Points: 1
POTTED_DARK_OAK_SAPLING:
@ -835,6 +940,8 @@ Materials:
Points: 1
POTTED_JUNGLE_SAPLING:
Points: 1
POTTED_LILY_OF_THE_VALLEY:
Points: 1
POTTED_OAK_SAPLING:
Points: 1
POTTED_ORANGE_TULIP:
@ -853,6 +960,8 @@ Materials:
Points: 1
POTTED_WHITE_TULIP:
Points: 1
POTTED_WITHER_ROSE:
Points: 1
POWERED_RAIL:
Points: 2
PRISMARINE:
@ -867,6 +976,8 @@ Materials:
Points: 1
PRISMARINE_STAIRS:
Points: 2
PRISMARINE_WALL:
Points: 1
PUMPKIN:
Points: 1
PUMPKIN_STEM:
@ -938,7 +1049,13 @@ Materials:
RED_MUSHROOM:
Points: 1
RED_MUSHROOM_BLOCK:
Points:
Points: 1
RED_NETHER_BRICK_SLAB:
Points: 1
RED_NETHER_BRICK_STAIRS:
Points: 1
RED_NETHER_BRICK_WALL:
Points: 1
RED_NETHER_BRICKS:
Points: 2
RED_SAND:
@ -949,6 +1066,8 @@ Materials:
Points: 1
RED_SANDSTONE_STAIRS:
Points: 2
RED_SANDSTONE_WALL:
Points: 1
RED_SHULKER_BOX:
Points: 11
RED_STAINED_GLASS:
@ -977,6 +1096,10 @@ Materials:
Points: 1
SANDSTONE_STAIRS:
Points: 2
SANDSTONE_WALL:
Points: 1
SCAFFOLDING:
Points: 1
SEAGRASS:
Points: 1
SEA_LANTERN:
@ -985,22 +1108,34 @@ Materials:
Points: 1
SHULKER_BOX:
Points: 10
SIGN:
Points: 6
SKELETON_SKULL:
Points: 10
SKELETON_WALL_SKULL:
Points: 10
SLIME_BLOCK:
Points: 10
SMITHING_TABLE:
Points: 4
SMOKER:
Points: 4
SMOOTH_QUARTZ:
Points: 1
SMOOTH_QUARTZ_SLAB:
Points: 1
SMOOTH_QUARTZ_STAIRS:
Points: 1
SMOOTH_RED_SANDSTONE:
Points: 1
SMOOTH_SANDSTONE:
Points: 1
SMOOTH_SANDSTONE_SLAB:
Points: 1
SMOOTH_SANDSTONE_STAIRS:
Points: 1
SMOOTH_STONE:
Points: 1
SMOOTH_STONE_SLAB:
Points: 1
SNOW:
Points: 1
SNOW_BLOCK:
@ -1143,12 +1278,16 @@ Materials:
Points: 2
SPRUCE_SAPLING:
Points: 1
SPRUCE_SIGN:
Points: 6
SPRUCE_SLAB:
Points: 1
SPRUCE_STAIRS:
Points: 2
SPRUCE_TRAPDOOR:
Points: 3
SPRUCE_WALL_SIGN:
Points: 6
SPRUCE_WOOD:
Points: 1
STICKY_PISTON:
@ -1161,12 +1300,18 @@ Materials:
Points: 1
STONE_BRICK_STAIRS:
Points: 2
STONE_BRICK_WALL:
Points: 1
STONE_BUTTON:
Points: 1
STONECUTTER:
Points: 4
STONE_PRESSURE_PLATE:
Points: 2
STONE_SLAB:
Points: 1
STONE_STAIRS:
Points: 1
STRIPPED_ACACIA_LOG:
Points: 0
STRIPPED_ACACIA_WOOD:
@ -1195,6 +1340,8 @@ Materials:
Points: 1
SUNFLOWER:
Points: 1
SWEET_BERRY_BUSH:
Points: 1
TALL_GRASS:
Points: 1
TALL_SEAGRASS:
@ -1225,12 +1372,8 @@ Materials:
Points: 1
VOID_AIR:
Points: 0
WALL_SIGN:
Points: 6
WALL_TORCH:
Points: 1
WATER:
Points: 0
WET_SPONGE:
Points: 10
WHEAT:
@ -1261,6 +1404,8 @@ Materials:
Points: 2
WHITE_WOOL:
Points: 3
WITHER_ROSE:
Points: 1
WITHER_SKELETON_SKULL:
Points: 10
WITHER_SKELETON_WALL_SKULL: