Build 39
# Added tab completion to the commands '/island leaderboard', '/island setspawn', '/island sethologram', and '/island removehologram'. # Added the placeholder '%safety' to the Visit and Information menu to show if an island is safe for visitors. # Added the setting 'ExperienceOrbPickup' to the roles Visitor, Member, and Coop. # Added the option 'Island.Settings.KeepItemsOnDeath' to the configuration file. # Added the option 'Island.Settings.Damage' to the configuration file. # Added the option 'Island.Settings.PvP' to the configuration file. # Added the setting 'Damage' to the 'Island Settings' menu. # Added coop role to the 'Settings Editor' menu. # Fixed creation message being sent to the player on island creation when the error message is sent when the main spawn point hasn't been set. # Fixed new comments not being set in the configuration file (New comments however will appear at the end of a path). # Fixed the permission note 'skyblock.information' not working for the command '/island information'. # Fixed projectiles launched by players damaging entities when the setting 'MobHurting' is disabled. # Fixed players being able to tame entities at an island when the setting 'MobTaming' is disabled. # Fixed NPE generated by cobblestone generators when the index for the random material is zero. # Fixed some water problems with the ore generators caused by water physics. # Fixed '/island chat' enabling chat for other players on the island team. # Fixed messages not being translated when island chat is enabled. # Fixed custom entities not spawning in the island worlds. # Fixed projectiles being under the wrong setting. # Fixed a few mistakes in the 'language.yml' file. # Recoded the 'Settings Editor' menu.
This commit is contained in:
parent
59774f0e0e
commit
fc6dafbe8d
2
pom.xml
2
pom.xml
|
@ -2,7 +2,7 @@
|
|||
<groupId>com.songoda</groupId>
|
||||
<artifactId>SkyBlock</artifactId>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<version>38</version>
|
||||
<version>39</version>
|
||||
<build>
|
||||
<defaultGoal>clean package</defaultGoal>
|
||||
<plugins>
|
||||
|
|
|
@ -139,7 +139,6 @@ public class SkyBlock extends JavaPlugin {
|
|||
|
||||
pluginManager.registerEvents(new me.goodandevil.skyblock.menus.admin.Levelling(), this);
|
||||
pluginManager.registerEvents(new me.goodandevil.skyblock.menus.admin.Creator(), this);
|
||||
pluginManager.registerEvents(new me.goodandevil.skyblock.menus.admin.Settings(), this);
|
||||
pluginManager.registerEvents(new Generator(), this);
|
||||
}
|
||||
|
||||
|
|
|
@ -323,20 +323,19 @@ public class CommandManager implements CommandExecutor, TabCompleter {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<String> arguments = getArguments(Type.Default, args[0], args[1]);
|
||||
|
||||
if (arguments.size() != 0) {
|
||||
commandAliases.addAll(arguments);
|
||||
}
|
||||
} else if (args.length == 3) {
|
||||
if (sender.hasPermission("skyblock.admin") || sender.hasPermission("skyblock.admin.*") || sender.hasPermission("skyblock.*")) {
|
||||
if (args[0].equalsIgnoreCase("admin") && args[1].equalsIgnoreCase("structure")) {
|
||||
if (args[2] == null || args[2].isEmpty()) {
|
||||
commandAliases.add("tool");
|
||||
commandAliases.add("save");
|
||||
} else {
|
||||
if ("tool".contains(args[2].toLowerCase())) {
|
||||
commandAliases.add("tool");
|
||||
}
|
||||
|
||||
if ("save".contains(args[2].toLowerCase())) {
|
||||
commandAliases.add("save");
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("admin")) {
|
||||
List<String> arguments = getArguments(Type.Admin, args[1], args[2]);
|
||||
|
||||
if (arguments.size() != 0) {
|
||||
commandAliases.addAll(arguments);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -350,6 +349,30 @@ public class CommandManager implements CommandExecutor, TabCompleter {
|
|||
return null;
|
||||
}
|
||||
|
||||
public List<String> getArguments(Type type, String arg1, String arg2) {
|
||||
List<String> arguments = new ArrayList<>();
|
||||
|
||||
for (SubCommand subCommandList : subCommands.get(type)) {
|
||||
if (arg1.equalsIgnoreCase(subCommandList.getName())) {
|
||||
if (arg2 == null || arg2.isEmpty()) {
|
||||
arguments.addAll(Arrays.asList(subCommandList.getArguments()));
|
||||
} else {
|
||||
for (String argumentList : subCommandList.getArguments()) {
|
||||
if (argumentList.contains(arg2.toLowerCase())) {
|
||||
arguments.add(argumentList);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return arguments;
|
||||
}
|
||||
|
||||
public void sendPlayerHelpCommands(Player player, CommandManager.Type type, int page) {
|
||||
FileManager fileManager = skyblock.getFileManager();
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ public abstract class SubCommand {
|
|||
public abstract SubCommand setInfo(String info);
|
||||
|
||||
public abstract String[] getAliases();
|
||||
public abstract String[] getArguments();
|
||||
|
||||
public abstract CommandManager.Type getType();
|
||||
}
|
||||
|
|
|
@ -224,6 +224,11 @@ public class AcceptCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
|
|
|
@ -148,7 +148,12 @@ public class BanCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -84,7 +84,12 @@ public class BansCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "banned" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -78,7 +78,12 @@ public class BiomeCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -109,7 +109,12 @@ public class CancelCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
package me.goodandevil.skyblock.command.commands;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
|
@ -50,33 +48,23 @@ public class ChatCommand extends SubCommand {
|
|||
if ((island.getRole(Role.Member).size() + island.getRole(Role.Operator).size()) == 0) {
|
||||
messageManager.sendMessage(player, configLoad.getString("Command.Island.Chat.Team.Message"));
|
||||
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
|
||||
} else {
|
||||
Map<UUID, PlayerData> playerDataStorage = playerDataManager.getPlayerData();
|
||||
|
||||
for (UUID playerDataStorageList : playerDataStorage.keySet()) {
|
||||
if (!playerDataStorageList.equals(player.getUniqueId())) {
|
||||
PlayerData targetPlayerData = playerDataStorage.get(playerDataStorageList);
|
||||
|
||||
if (targetPlayerData.getOwner().equals(playerData.getOwner())) {
|
||||
if (playerData.isChat()) {
|
||||
Bukkit.getServer().getPluginManager().callEvent(new IslandChatSwitchEvent(player, island, false));
|
||||
messageManager.sendMessage(player, configLoad.getString("Command.Island.Chat.Untoggled.Message"));
|
||||
playerData.setChat(false);
|
||||
} else {
|
||||
Bukkit.getServer().getPluginManager().callEvent(new IslandChatSwitchEvent(player, island, true));
|
||||
messageManager.sendMessage(player, configLoad.getString("Command.Island.Chat.Toggled.Message"));
|
||||
playerData.setChat(true);
|
||||
}
|
||||
|
||||
soundManager.playSound(player, Sounds.IRONGOLEM_HIT.bukkitSound(), 1.0F, 1.0F);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else if ((islandManager.getMembersOnline(island).size() - 1) <= 0) {
|
||||
messageManager.sendMessage(player, configLoad.getString("Command.Island.Chat.Offline.Message"));
|
||||
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
|
||||
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
|
||||
} else {
|
||||
if (playerData.isChat()) {
|
||||
Bukkit.getServer().getPluginManager().callEvent(new IslandChatSwitchEvent(player, island, false));
|
||||
playerData.setChat(false);
|
||||
|
||||
messageManager.sendMessage(player, configLoad.getString("Command.Island.Chat.Untoggled.Message"));
|
||||
soundManager.playSound(player, Sounds.IRONGOLEM_HIT.bukkitSound(), 1.0F, 1.0F);
|
||||
} else {
|
||||
Bukkit.getServer().getPluginManager().callEvent(new IslandChatSwitchEvent(player, island, true));
|
||||
playerData.setChat(true);
|
||||
|
||||
messageManager.sendMessage(player, configLoad.getString("Command.Island.Chat.Toggled.Message"));
|
||||
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
messageManager.sendMessage(player, configLoad.getString("Command.Island.Chat.Owner.Message"));
|
||||
|
@ -110,7 +98,12 @@ public class ChatCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -85,7 +85,12 @@ public class CloseCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -188,7 +188,12 @@ public class ConfirmCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "confirmation" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -66,7 +66,12 @@ public class ControlPanelCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "cp" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -151,7 +151,12 @@ public class CoopCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -80,10 +80,10 @@ public class CreateCommand extends SubCommand {
|
|||
return;
|
||||
}
|
||||
|
||||
islandManager.createIsland(player, structures.get(0));
|
||||
|
||||
messageManager.sendMessage(player, configLoad.getString("Island.Creator.Selector.Created.Message"));
|
||||
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
|
||||
if (islandManager.createIsland(player, structures.get(0))) {
|
||||
messageManager.sendMessage(player, configLoad.getString("Island.Creator.Selector.Created.Message"));
|
||||
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -114,7 +114,12 @@ public class CreateCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "new" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -133,7 +133,12 @@ public class CurrentCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "cur" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -97,7 +97,12 @@ public class DeleteCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "remove", "disband" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -129,7 +129,12 @@ public class DemoteCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -93,7 +93,12 @@ public class DenyCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -45,7 +45,7 @@ public class InformationCommand extends SubCommand {
|
|||
UUID islandOwnerUUID = null;
|
||||
|
||||
if (args.length == 1) {
|
||||
if (player.hasPermission("skyblock.teleport") || player.hasPermission("skyblock.*")) {
|
||||
if (player.hasPermission("skyblock.information") || player.hasPermission("skyblock.*")) {
|
||||
Player targetPlayer = Bukkit.getServer().getPlayer(args[0]);
|
||||
|
||||
if (targetPlayer == null) {
|
||||
|
@ -119,7 +119,12 @@ public class InformationCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "info" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -145,7 +145,12 @@ public class InviteCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -114,7 +114,12 @@ public class KickAllCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -253,7 +253,12 @@ public class KickCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -100,7 +100,12 @@ public class LeaderboardCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "lb", "top" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[] { "level", "votes" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -171,7 +171,12 @@ public class LeaveCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -160,7 +160,12 @@ public class LevelCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "levelling" , "points" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -66,7 +66,12 @@ public class MembersCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -85,7 +85,12 @@ public class OpenCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -160,7 +160,12 @@ public class OwnerCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "ownership", "transfer", "makeleader", "makeowner" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -155,7 +155,12 @@ public class PromoteCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -87,7 +87,12 @@ public class PublicCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "pub", "private", "pri" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -78,7 +78,12 @@ public class RollbackCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -168,7 +168,12 @@ public class SetSpawnCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[] { "main", "visitor" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -78,12 +78,17 @@ public class SettingsCommand extends SubCommand {
|
|||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getAliases() {
|
||||
return new String[] { "permissions", "perms", "p" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -154,7 +154,12 @@ public class TeleportCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[] { "tp", "spawn", "home", "go" };
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -131,7 +131,12 @@ public class UnbanCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -75,7 +75,12 @@ public class UpgradeCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -76,7 +76,12 @@ public class VisitCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -82,7 +82,12 @@ public class VisitorsCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -148,7 +148,12 @@ public class VoteCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -77,7 +77,12 @@ public class WeatherCommand extends SubCommand {
|
|||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Default;
|
||||
|
|
|
@ -75,6 +75,11 @@ public class CreateCommand extends SubCommand {
|
|||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -156,6 +156,11 @@ public class DeleteCommand extends SubCommand {
|
|||
return new String[] { "remove", "disband" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -80,6 +80,11 @@ public class GeneratorCommand extends SubCommand {
|
|||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -69,6 +69,11 @@ public class LevelCommand extends SubCommand {
|
|||
return new String[] { "levelling" , "points" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -122,6 +122,11 @@ public class OwnerCommand extends SubCommand {
|
|||
return new String[] { "ownership", "leader" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -118,6 +118,11 @@ public class ReloadCommand extends SubCommand {
|
|||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -133,6 +133,11 @@ public class RemoveHologramCommand extends SubCommand {
|
|||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[] { "level", "votes" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -111,6 +111,11 @@ public class SetHologramCommand extends SubCommand {
|
|||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[] { "level", "votes" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -154,6 +154,11 @@ public class SetSizeCommand extends SubCommand {
|
|||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -84,6 +84,11 @@ public class SetSpawnCommand extends SubCommand {
|
|||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -69,6 +69,11 @@ public class SettingsCommand extends SubCommand {
|
|||
return new String[] { "permissions", "perms", "p" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -177,12 +177,17 @@ public class StructureCommand extends SubCommand {
|
|||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getAliases() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[] { "tool", "save" };
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -79,6 +79,11 @@ public class UpgradeCommand extends SubCommand {
|
|||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getArguments() {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return CommandManager.Type.Admin;
|
||||
|
|
|
@ -14,20 +14,23 @@ import me.goodandevil.skyblock.SkyBlock;
|
|||
|
||||
public class FileChecker {
|
||||
|
||||
private final SkyBlock skyblock;
|
||||
private final FileManager fileManager;
|
||||
|
||||
private Map<File.Type, File> loadedFiles;
|
||||
|
||||
public FileChecker(SkyBlock skyblock, FileManager fileManager, String configurationFileName) {
|
||||
this.skyblock = skyblock;
|
||||
public FileChecker(SkyBlock skyblock, FileManager fileManager, String configurationFileName, boolean applyComments) {
|
||||
this.fileManager = fileManager;
|
||||
|
||||
loadedFiles = new EnumMap<>(File.Type.class);
|
||||
|
||||
java.io.File configFile = new java.io.File(skyblock.getDataFolder(), configurationFileName);
|
||||
loadedFiles.put(File.Type.CREATED, new File(fileManager, configFile, YamlConfiguration.loadConfiguration(configFile)));
|
||||
loadedFiles.put(File.Type.RESOURCE, new File(null, null, YamlConfiguration.loadConfiguration(new InputStreamReader(skyblock.getResource(configurationFileName)))));
|
||||
|
||||
if (applyComments) {
|
||||
loadedFiles.put(File.Type.RESOURCE, new File(null, null, YamlConfiguration.loadConfiguration(new InputStreamReader(fileManager.getConfigContent(new InputStreamReader(skyblock.getResource(configurationFileName)))))));
|
||||
} else {
|
||||
loadedFiles.put(File.Type.RESOURCE, new File(null, null, YamlConfiguration.loadConfiguration(new InputStreamReader(skyblock.getResource(configurationFileName)))));
|
||||
}
|
||||
}
|
||||
|
||||
public void loadSections() {
|
||||
|
@ -52,10 +55,8 @@ public class FileChecker {
|
|||
File resourceFile = loadedFiles.get(File.Type.RESOURCE);
|
||||
|
||||
for (String configKeyList : file.getKeys().keySet()) {
|
||||
if (!configKeyList.contains(skyblock.getDescription().getName() + "_COMMENT")) {
|
||||
if (!resourceFile.getKeys().containsKey(configKeyList)) {
|
||||
configLoad.set(configKeyList, null);
|
||||
}
|
||||
if (!resourceFile.getKeys().containsKey(configKeyList)) {
|
||||
configLoad.set(configKeyList, null);
|
||||
}
|
||||
}
|
||||
} else if (fileType == File.Type.RESOURCE) {
|
||||
|
@ -63,10 +64,8 @@ public class FileChecker {
|
|||
FileConfiguration createdConfigLoad = createdFile.getFileConfiguration();
|
||||
|
||||
for (String configKeyList : file.getKeys().keySet()) {
|
||||
if (!configKeyList.contains(skyblock.getDescription().getName() + "_COMMENT")) {
|
||||
if (createdConfigLoad.getString(configKeyList) == null) {
|
||||
createdConfigLoad.set(configKeyList, file.getKeys().get(configKeyList));
|
||||
}
|
||||
if (createdConfigLoad.getString(configKeyList) == null) {
|
||||
createdConfigLoad.set(configKeyList, file.getKeys().get(configKeyList));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.io.BufferedReader;
|
|||
import java.io.BufferedWriter;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
|
@ -11,6 +12,7 @@ import java.io.IOException;
|
|||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStream;
|
||||
import java.io.Reader;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
@ -60,7 +62,14 @@ public class FileManager {
|
|||
|
||||
if (configFile.exists()) {
|
||||
if (configFileList.equals("config.yml") || configFileList.equals("language.yml") || configFileList.equals("settings.yml")) {
|
||||
FileChecker fileChecker = new FileChecker(skyblock, this, configFileList);
|
||||
FileChecker fileChecker;
|
||||
|
||||
if (configFileList.equals("config.yml")) {
|
||||
fileChecker = new FileChecker(skyblock, this, configFileList, true);
|
||||
} else {
|
||||
fileChecker = new FileChecker(skyblock, this, configFileList, false);
|
||||
}
|
||||
|
||||
fileChecker.loadSections();
|
||||
fileChecker.compareFiles();
|
||||
fileChecker.saveChanges();
|
||||
|
@ -162,19 +171,15 @@ public class FileManager {
|
|||
return loadedConfigs.containsKey(configPath.getPath());
|
||||
}
|
||||
|
||||
public InputStream getConfigContent(File configFile) {
|
||||
if(!configFile.exists()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputStream getConfigContent(Reader reader) {
|
||||
try {
|
||||
String addLine, currentLine, pluginName = skyblock.getDescription().getName();
|
||||
int commentNum = 0;
|
||||
|
||||
StringBuilder whole = new StringBuilder("");
|
||||
BufferedReader reader = new BufferedReader(new FileReader(configFile));
|
||||
BufferedReader bufferedReader = new BufferedReader(reader);
|
||||
|
||||
while((currentLine = reader.readLine()) != null) {
|
||||
while((currentLine = bufferedReader.readLine()) != null) {
|
||||
if(currentLine.contains("#")) {
|
||||
addLine = currentLine.replace("[!]", "IMPORTANT").replace(":", "-").replaceFirst("#", pluginName + "_COMMENT_" + commentNum + ":");
|
||||
whole.append(addLine + "\n");
|
||||
|
@ -186,7 +191,7 @@ public class FileManager {
|
|||
|
||||
String config = whole.toString();
|
||||
InputStream configStream = new ByteArrayInputStream(config.getBytes(Charset.forName("UTF-8")));
|
||||
reader.close();
|
||||
bufferedReader.close();
|
||||
|
||||
return configStream;
|
||||
} catch (IOException e) {
|
||||
|
@ -196,6 +201,20 @@ public class FileManager {
|
|||
}
|
||||
}
|
||||
|
||||
public InputStream getConfigContent(File configFile) {
|
||||
if(!configFile.exists()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
return getConfigContent(new FileReader(configFile));
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private String prepareConfigString(String configString) {
|
||||
String[] lines = configString.split("\n");
|
||||
StringBuilder config = new StringBuilder("");
|
||||
|
|
|
@ -56,33 +56,83 @@ public class GeneratorManager {
|
|||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean isGenerator(Block block) {
|
||||
if (block.getRelative(BlockFace.UP).getType() != Materials.LEGACY_STATIONARY_WATER.getPostMaterial() && block.getRelative(BlockFace.UP).getType() != Materials.WATER.parseMaterial()) {
|
||||
Block flowBlock = null;
|
||||
|
||||
if ((block.getRelative(BlockFace.NORTH).getType() != Materials.LEGACY_STATIONARY_WATER.getPostMaterial() && block.getRelative(BlockFace.NORTH).getType() != Materials.WATER.parseMaterial()) && (block.getRelative(BlockFace.EAST).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getRelative(BlockFace.EAST).getType() == Materials.WATER.parseMaterial()) && (block.getRelative(BlockFace.SOUTH).getType() != Materials.LEGACY_STATIONARY_WATER.getPostMaterial() && block.getRelative(BlockFace.SOUTH).getType() != Materials.WATER.parseMaterial()) && (block.getRelative(BlockFace.WEST).getType() == Materials.LEGACY_STATIONARY_LAVA.getPostMaterial() || block.getRelative(BlockFace.WEST).getType() == Materials.LAVA.parseMaterial()) && (block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.EAST).getType() == Material.AIR || block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.EAST).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial())) {
|
||||
if ((block.getRelative(BlockFace.EAST).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getRelative(BlockFace.EAST).getType() == Materials.WATER.parseMaterial()) && (block.getRelative(BlockFace.WEST).getType() == Materials.LEGACY_STATIONARY_LAVA.getPostMaterial() || block.getRelative(BlockFace.WEST).getType() == Materials.LAVA.parseMaterial()) && (block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.EAST).getType() == Material.AIR || block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.EAST).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial())) {
|
||||
if (!isFlowingTowardsBlock(block, BlockFace.NORTH, BlockFace.SOUTH)) {
|
||||
return false;
|
||||
} else if (!isFlowingTowardsBlock(block, BlockFace.SOUTH, BlockFace.NORTH)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
flowBlock = block.getRelative(BlockFace.EAST);
|
||||
} else if ((block.getRelative(BlockFace.NORTH).getType() != Materials.LEGACY_STATIONARY_WATER.getPostMaterial() && block.getRelative(BlockFace.NORTH).getType() != Materials.WATER.parseMaterial()) && (block.getRelative(BlockFace.EAST).getType() == Materials.LEGACY_STATIONARY_LAVA.getPostMaterial() || block.getRelative(BlockFace.EAST).getType() == Materials.LAVA.parseMaterial()) && (block.getRelative(BlockFace.SOUTH).getType() != Materials.LEGACY_STATIONARY_WATER.getPostMaterial() && block.getRelative(BlockFace.SOUTH).getType() != Materials.WATER.parseMaterial()) && (block.getRelative(BlockFace.WEST).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getRelative(BlockFace.WEST).getType() == Materials.WATER.parseMaterial()) && (block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.WEST).getType() == Material.AIR || block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.WEST).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial())) {
|
||||
} else if ((block.getRelative(BlockFace.EAST).getType() == Materials.LEGACY_STATIONARY_LAVA.getPostMaterial() || block.getRelative(BlockFace.EAST).getType() == Materials.LAVA.parseMaterial()) && (block.getRelative(BlockFace.WEST).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getRelative(BlockFace.WEST).getType() == Materials.WATER.parseMaterial()) && (block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.WEST).getType() == Material.AIR || block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.WEST).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial())) {
|
||||
if (!isFlowingTowardsBlock(block, BlockFace.NORTH, BlockFace.SOUTH)) {
|
||||
return false;
|
||||
} else if (!isFlowingTowardsBlock(block, BlockFace.SOUTH, BlockFace.NORTH)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
flowBlock = block.getRelative(BlockFace.WEST);
|
||||
} else if (((block.getRelative(BlockFace.NORTH).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getRelative(BlockFace.NORTH).getType() == Materials.WATER.parseMaterial()) && block.getRelative(BlockFace.EAST).getType() != Materials.LEGACY_STATIONARY_WATER.getPostMaterial() && block.getRelative(BlockFace.EAST).getType() != Materials.WATER.parseMaterial()) && (block.getRelative(BlockFace.SOUTH).getType() == Materials.LEGACY_STATIONARY_LAVA.getPostMaterial() || block.getRelative(BlockFace.SOUTH).getType() == Materials.LAVA.parseMaterial()) && (block.getRelative(BlockFace.WEST).getType() != Materials.LEGACY_STATIONARY_WATER.getPostMaterial() && block.getRelative(BlockFace.WEST).getType() != Materials.WATER.parseMaterial()) && (block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.NORTH).getType() == Material.AIR || block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.NORTH).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial())) {
|
||||
} else if (((block.getRelative(BlockFace.NORTH).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getRelative(BlockFace.NORTH).getType() == Materials.WATER.parseMaterial())) && (block.getRelative(BlockFace.SOUTH).getType() == Materials.LEGACY_STATIONARY_LAVA.getPostMaterial() || block.getRelative(BlockFace.SOUTH).getType() == Materials.LAVA.parseMaterial()) && (block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.NORTH).getType() == Material.AIR || block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.NORTH).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial())) {
|
||||
if (!isFlowingTowardsBlock(block, BlockFace.WEST, BlockFace.EAST)) {
|
||||
return false;
|
||||
} else if (!isFlowingTowardsBlock(block, BlockFace.EAST, BlockFace.WEST)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
flowBlock = block.getRelative(BlockFace.NORTH);
|
||||
} else if (((block.getRelative(BlockFace.NORTH).getType() == Materials.LEGACY_STATIONARY_LAVA.getPostMaterial() || block.getRelative(BlockFace.NORTH).getType() == Materials.LAVA.parseMaterial()) && block.getRelative(BlockFace.EAST).getType() != Materials.LEGACY_STATIONARY_WATER.getPostMaterial() && block.getRelative(BlockFace.EAST).getType() != Materials.WATER.parseMaterial()) && (block.getRelative(BlockFace.SOUTH).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getRelative(BlockFace.SOUTH).getType() == Materials.WATER.parseMaterial()) && (block.getRelative(BlockFace.WEST).getType() != Materials.LEGACY_STATIONARY_WATER.getPostMaterial() && block.getRelative(BlockFace.WEST).getType() != Materials.WATER.parseMaterial()) && (block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.SOUTH).getType() == Material.AIR || block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.SOUTH).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial())) {
|
||||
} else if (((block.getRelative(BlockFace.NORTH).getType() == Materials.LEGACY_STATIONARY_LAVA.getPostMaterial() || block.getRelative(BlockFace.NORTH).getType() == Materials.LAVA.parseMaterial())) && (block.getRelative(BlockFace.SOUTH).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getRelative(BlockFace.SOUTH).getType() == Materials.WATER.parseMaterial()) && (block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.SOUTH).getType() == Material.AIR || block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(BlockFace.SOUTH).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial())) {
|
||||
if (!isFlowingTowardsBlock(block, BlockFace.WEST, BlockFace.EAST)) {
|
||||
return false;
|
||||
} else if (!isFlowingTowardsBlock(block, BlockFace.EAST, BlockFace.WEST)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
flowBlock = block.getRelative(BlockFace.SOUTH);
|
||||
}
|
||||
|
||||
if (flowBlock != null) {
|
||||
if (NMSUtil.getVersionNumber() > 12) {
|
||||
if (flowBlock.getState().getBlockData() instanceof Levelled) {
|
||||
if (((Levelled) flowBlock.getState().getBlockData()).getLevel() != 0) {
|
||||
return true;
|
||||
}
|
||||
return isFlowingBlock(flowBlock);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isFlowingTowardsBlock(Block block, BlockFace blockFace1, BlockFace blockFace2) {
|
||||
if (block.getRelative(blockFace1).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getRelative(blockFace1).getType() == Materials.WATER.parseMaterial()) {
|
||||
if (isFlowingBlock(block.getRelative(blockFace1)) && (block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(blockFace1).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(blockFace1).getType() == Materials.WATER.parseMaterial())) {
|
||||
if (block.getRelative(blockFace2).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getRelative(blockFace2).getType() == Materials.WATER.parseMaterial()) {
|
||||
if (isFlowingBlock(block.getRelative(blockFace2)) && (block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(blockFace2).getType() == Materials.LEGACY_STATIONARY_WATER.getPostMaterial() || block.getLocation().clone().subtract(0.0D, 1.0D, 0.0D).getBlock().getRelative(blockFace2).getType() == Materials.WATER.parseMaterial())) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (flowBlock.getData() != 0) {
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private boolean isFlowingBlock(Block block) {
|
||||
if (NMSUtil.getVersionNumber() > 12) {
|
||||
if (block.getState().getBlockData() instanceof Levelled) {
|
||||
if (((Levelled) block.getState().getBlockData()).getLevel() != 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (block.getData() != 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -148,7 +198,11 @@ public class GeneratorManager {
|
|||
}
|
||||
|
||||
if (chances.size() != 0) {
|
||||
return generator.getGeneratorMaterials().get(chances.get(new Random().nextInt(chances.size()))).getMaterials();
|
||||
int rndNum = new Random().nextInt(chances.size());
|
||||
|
||||
if (rndNum != 0) {
|
||||
return generator.getGeneratorMaterials().get(chances.get(rndNum)).getMaterials();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -190,7 +190,7 @@ public class Island {
|
|||
VisitManager visitManager = skyblock.getVisitManager();
|
||||
|
||||
if (!visitManager.hasIsland(getOwnerUUID())) {
|
||||
visitManager.createIsland(getOwnerUUID(), new org.bukkit.Location[] { getLocation(Location.World.Normal, Location.Environment.Island), getLocation(Location.World.Nether, Location.Environment.Island) }, size, getRole(Role.Member).size() + getRole(Role.Operator).size() + 1, level, getMessage(Message.Signature), isOpen());
|
||||
visitManager.createIsland(getOwnerUUID(), new org.bukkit.Location[] { getLocation(Location.World.Normal, Location.Environment.Island), getLocation(Location.World.Nether, Location.Environment.Island) }, size, getRole(Role.Member).size() + getRole(Role.Operator).size() + 1, visitManager.getIslandSafeLevel(ownerUUID), level, getMessage(Message.Signature), isOpen());
|
||||
}
|
||||
|
||||
BanManager banManager = skyblock.getBanManager();
|
||||
|
|
|
@ -134,7 +134,7 @@ public class IslandManager {
|
|||
return null;
|
||||
}
|
||||
|
||||
public void createIsland(Player player, Structure structure) {
|
||||
public boolean createIsland(Player player, Structure structure) {
|
||||
ScoreboardManager scoreboardManager = skyblock.getScoreboardManager();
|
||||
FileManager fileManager = skyblock.getFileManager();
|
||||
|
||||
|
@ -142,7 +142,7 @@ public class IslandManager {
|
|||
skyblock.getMessageManager().sendMessage(player, fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml")).getFileConfiguration().getString("Island.Creator.Error.Message"));
|
||||
skyblock.getSoundManager().playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
|
||||
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
Island island = new Island(player.getUniqueId(), prepareNextAvailableLocation(Location.World.Normal), prepareNextAvailableLocation(Location.World.Nether));
|
||||
|
@ -256,6 +256,8 @@ public class IslandManager {
|
|||
}
|
||||
}, 20L);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void giveIslandOwnership(UUID uuid) {
|
||||
|
@ -708,6 +710,24 @@ public class IslandManager {
|
|||
return true;
|
||||
}
|
||||
|
||||
public boolean hasSetting(org.bukkit.Location location, Setting.Role role, String setting) {
|
||||
for (UUID islandList : getIslands().keySet()) {
|
||||
Island island = getIslands().get(islandList);
|
||||
|
||||
for (Location.World worldList : Location.World.values()) {
|
||||
if (LocationUtil.isLocationAtLocationRadius(location, island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (island.getSetting(role, setting).getStatus()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setSpawnProtection(org.bukkit.Location location) {
|
||||
location.getBlock().setType(Materials.LEGACY_PISTON_MOVING_PIECE.getPostMaterial());
|
||||
location.clone().add(0.0D, 1.0D, 0.0D).getBlock().setType(Materials.LEGACY_PISTON_MOVING_PIECE.getPostMaterial());
|
||||
|
@ -910,4 +930,24 @@ public class IslandManager {
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
public int getIslandSafeLevel(Island island) {
|
||||
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "config.yml"));
|
||||
FileConfiguration configLoad = config.getFileConfiguration();
|
||||
|
||||
int safeLevel = 0;
|
||||
|
||||
Map<String, Boolean> settings = new HashMap<>();
|
||||
settings.put("KeepItemsOnDeath", false);
|
||||
settings.put("PvP", true);
|
||||
settings.put("Damage", true);
|
||||
|
||||
for (String settingList : settings.keySet()) {
|
||||
if (configLoad.getBoolean("Island.Settings." + settingList + ".Enable") && island.getSetting(Setting.Role.Owner, settingList).getStatus() == settings.get(settingList)) {
|
||||
safeLevel++;
|
||||
}
|
||||
}
|
||||
|
||||
return safeLevel;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -278,23 +278,9 @@ public class Block implements Listener {
|
|||
org.bukkit.block.Block block = event.getBlock();
|
||||
|
||||
if (block.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || block.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
IslandManager islandManager = skyblock.getIslandManager();
|
||||
|
||||
for (UUID islandList : islandManager.getIslands().keySet()) {
|
||||
Island island = islandManager.getIslands().get(islandList);
|
||||
|
||||
for (Location.World worldList : Location.World.values()) {
|
||||
if (LocationUtil.isLocationAtLocationRadius(block.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (!island.getSetting(Setting.Role.Owner, "FireSpread").getStatus()) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!skyblock.getIslandManager().hasSetting(block.getLocation(), Setting.Role.Owner, "FireSpread")) {
|
||||
event.setCancelled(false);
|
||||
}
|
||||
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -303,23 +289,9 @@ public class Block implements Listener {
|
|||
org.bukkit.block.Block block = event.getBlock();
|
||||
|
||||
if (block.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || block.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
IslandManager islandManager = skyblock.getIslandManager();
|
||||
|
||||
for (UUID islandList : islandManager.getIslands().keySet()) {
|
||||
Island island = islandManager.getIslands().get(islandList);
|
||||
|
||||
for (Location.World worldList : Location.World.values()) {
|
||||
if (LocationUtil.isLocationAtLocationRadius(block.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (!island.getSetting(Setting.Role.Owner, "FireSpread").getStatus()) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!skyblock.getIslandManager().hasSetting(block.getLocation(), Setting.Role.Owner, "FireSpread")) {
|
||||
event.setCancelled(false);
|
||||
}
|
||||
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -377,23 +349,9 @@ public class Block implements Listener {
|
|||
org.bukkit.block.Block block = event.getBlock();
|
||||
|
||||
if (block.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || block.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
IslandManager islandManager = skyblock.getIslandManager();
|
||||
|
||||
for (UUID islandList : islandManager.getIslands().keySet()) {
|
||||
Island island = islandManager.getIslands().get(islandList);
|
||||
|
||||
for (Location.World worldList : Location.World.values()) {
|
||||
if (LocationUtil.isLocationAtLocationRadius(block.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (!island.getSetting(Setting.Role.Owner, "LeafDecay").getStatus()) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!skyblock.getIslandManager().hasSetting(block.getLocation(), Setting.Role.Owner, "LeafDecay")) {
|
||||
event.setCancelled(false);
|
||||
}
|
||||
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.io.File;
|
|||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
|
@ -81,7 +82,7 @@ public class Chat implements Listener {
|
|||
if (!islandChatEvent.isCancelled()) {
|
||||
for (UUID islandMembersOnlineList : islandManager.getMembersOnline(island)) {
|
||||
Player targetPlayer = Bukkit.getServer().getPlayer(islandMembersOnlineList);
|
||||
targetPlayer.sendMessage(messageManager.replaceMessage(targetPlayer, islandChatEvent.getFormat().replace("%role", islandRole).replace("%player", player.getName())).replace("%message", islandChatEvent.getMessage()));
|
||||
targetPlayer.sendMessage(ChatColor.translateAlternateColorCodes('&', messageManager.replaceMessage(targetPlayer, islandChatEvent.getFormat().replace("%role", islandRole).replace("%player", player.getName()))).replace("%message", islandChatEvent.getMessage()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package me.goodandevil.skyblock.listeners;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
|
@ -12,11 +11,8 @@ import org.bukkit.event.entity.PlayerDeathEvent;
|
|||
|
||||
import me.goodandevil.skyblock.SkyBlock;
|
||||
import me.goodandevil.skyblock.config.FileManager.Config;
|
||||
import me.goodandevil.skyblock.island.Island;
|
||||
import me.goodandevil.skyblock.island.Location;
|
||||
import me.goodandevil.skyblock.island.IslandManager;
|
||||
import me.goodandevil.skyblock.island.Setting;
|
||||
import me.goodandevil.skyblock.utils.world.LocationUtil;
|
||||
|
||||
public class Death implements Listener {
|
||||
|
||||
|
@ -35,20 +31,14 @@ public class Death implements Listener {
|
|||
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "config.yml"));
|
||||
FileConfiguration configLoad = config.getFileConfiguration();
|
||||
|
||||
IslandManager islandManager = skyblock.getIslandManager();
|
||||
|
||||
boolean keepInventory = false;
|
||||
|
||||
for (UUID islandList : islandManager.getIslands().keySet()) {
|
||||
Island island = islandManager.getIslands().get(islandList);
|
||||
|
||||
if (LocationUtil.isLocationAtLocationRadius(player.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (island.getSetting(Setting.Role.Owner, "KeepItemsOnDeath").getStatus()) {
|
||||
keepInventory = true;
|
||||
}
|
||||
|
||||
break;
|
||||
if (configLoad.getBoolean("Island.Settings.KeepItemsOnDeath.Enable")) {
|
||||
if (skyblock.getIslandManager().hasSetting(player.getLocation(), Setting.Role.Owner, "KeepItemsOnDeath")) {
|
||||
keepInventory = true;
|
||||
}
|
||||
} else {
|
||||
keepInventory = true;
|
||||
}
|
||||
|
||||
if (keepInventory) {
|
||||
|
|
|
@ -4,8 +4,8 @@ import java.io.File;
|
|||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.ArmorStand;
|
||||
import org.bukkit.entity.ExperienceOrb;
|
||||
import org.bukkit.entity.FallingBlock;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -14,15 +14,19 @@ import org.bukkit.event.EventHandler;
|
|||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.EntityTameEvent;
|
||||
import org.bukkit.event.entity.EntityTargetLivingEntityEvent;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||
import org.bukkit.event.player.PlayerShearEntityEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import me.goodandevil.skyblock.SkyBlock;
|
||||
import me.goodandevil.skyblock.config.FileManager;
|
||||
import me.goodandevil.skyblock.island.Island;
|
||||
import me.goodandevil.skyblock.island.Location;
|
||||
import me.goodandevil.skyblock.island.IslandManager;
|
||||
|
@ -30,6 +34,7 @@ import me.goodandevil.skyblock.island.Setting;
|
|||
import me.goodandevil.skyblock.message.MessageManager;
|
||||
import me.goodandevil.skyblock.sound.SoundManager;
|
||||
import me.goodandevil.skyblock.upgrade.Upgrade;
|
||||
import me.goodandevil.skyblock.utils.version.NMSUtil;
|
||||
import me.goodandevil.skyblock.utils.version.Sounds;
|
||||
import me.goodandevil.skyblock.utils.world.LocationUtil;
|
||||
|
||||
|
@ -40,30 +45,77 @@ public class Entity implements Listener {
|
|||
public Entity(SkyBlock skyblock) {
|
||||
this.skyblock = skyblock;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onEntityDamage(EntityDamageEvent event) {
|
||||
if (!(event.getEntity() instanceof Player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Player player = (Player) event.getEntity();
|
||||
|
||||
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
if (event.getCause() != null) {
|
||||
if (event.getCause() == DamageCause.VOID) {
|
||||
return;
|
||||
} else if (event.getCause() == DamageCause.ENTITY_ATTACK) {
|
||||
EntityDamageByEntityEvent entityDamageByEntityEvent = (EntityDamageByEntityEvent) event;
|
||||
|
||||
if (entityDamageByEntityEvent.getDamager() != null && entityDamageByEntityEvent.getDamager() instanceof Player) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (NMSUtil.getVersionNumber() > 11) {
|
||||
if (event.getCause() == DamageCause.valueOf("ENTITY_SWEEP_ATTACK")) {
|
||||
EntityDamageByEntityEvent entityDamageByEntityEvent = (EntityDamageByEntityEvent) event;
|
||||
|
||||
if (entityDamageByEntityEvent.getDamager() != null && entityDamageByEntityEvent.getDamager() instanceof Player) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Settings.PvP.Enable")) {
|
||||
if (!skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Settings.PvP.Enable") || !skyblock.getIslandManager().hasSetting(event.getEntity().getLocation(), Setting.Role.Owner, "Damage")) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
} else {
|
||||
event.setCancelled(true);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
|
||||
MessageManager messageManager = skyblock.getMessageManager();
|
||||
SoundManager soundManager = skyblock.getSoundManager();
|
||||
FileManager fileManager = skyblock.getFileManager();
|
||||
|
||||
if (event.getDamager() instanceof Player) {
|
||||
Player player = (Player) event.getDamager();
|
||||
|
||||
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
if (event.getEntity() instanceof Player) {
|
||||
IslandManager islandManager = skyblock.getIslandManager();
|
||||
|
||||
for (UUID islandList : islandManager.getIslands().keySet()) {
|
||||
Island island = islandManager.getIslands().get(islandList);
|
||||
if (fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Settings.PvP.Enable")) {
|
||||
if (!skyblock.getIslandManager().hasSetting(player.getLocation(), Setting.Role.Owner, "PvP")) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
} else {
|
||||
event.setCancelled(true);
|
||||
|
||||
for (Location.World worldList : Location.World.values()) {
|
||||
if (LocationUtil.isLocationAtLocationRadius(event.getEntity().getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (!island.getSetting(Setting.Role.Owner, "PvP").getStatus()) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
} else if (event.getEntity() instanceof ArmorStand) {
|
||||
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
if (!skyblock.getIslandManager().hasPermission(player, "Destroy")) {
|
||||
event.setCancelled(true);
|
||||
|
||||
messageManager.sendMessage(player, skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml")).getFileConfiguration().getString("Island.Settings.Permission.Message"));
|
||||
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -77,34 +129,43 @@ public class Entity implements Listener {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getEntity() instanceof ArmorStand) {
|
||||
if (event.getDamager() instanceof Player) {
|
||||
Player player = (Player) event.getDamager();
|
||||
|
||||
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
if (!skyblock.getIslandManager().hasPermission(player, "Destroy")) {
|
||||
if (event.getDamager() instanceof Projectile && ((Projectile) event.getDamager()).getShooter() instanceof Player) {
|
||||
Player player = (Player) ((Projectile) event.getDamager()).getShooter();
|
||||
|
||||
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
if (event.getEntity() instanceof Player) {
|
||||
if (fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Settings.PvP.Enable")) {
|
||||
if (!skyblock.getIslandManager().hasSetting(player.getLocation(), Setting.Role.Owner, "PvP")) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
} else {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
} else {
|
||||
if (!skyblock.getIslandManager().hasPermission(player, "MobHurting")) {
|
||||
event.setCancelled(true);
|
||||
|
||||
messageManager.sendMessage(player, skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml")).getFileConfiguration().getString("Island.Settings.Permission.Message"));
|
||||
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
|
||||
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else if (event.getDamager() instanceof Projectile) {
|
||||
Projectile projectile = (Projectile) event.getDamager();
|
||||
}
|
||||
} else {
|
||||
if (event.getEntity() instanceof Player) {
|
||||
Player player = (Player) event.getEntity();
|
||||
|
||||
if (projectile.getShooter() instanceof Player) {
|
||||
Player player = (Player) projectile.getShooter();
|
||||
|
||||
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
if (!skyblock.getIslandManager().hasPermission(player, "Destroy")) {
|
||||
event.setCancelled(true);
|
||||
|
||||
messageManager.sendMessage(player, skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml")).getFileConfiguration().getString("Island.Settings.Permission.Message"));
|
||||
soundManager.playSound(player, Sounds.VILLAGER_NO.bukkitSound(), 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
if (fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Settings.Damage.Enable")) {
|
||||
if (!skyblock.getIslandManager().hasSetting(player.getLocation(), Setting.Role.Owner, "Damage")) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
} else {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -126,16 +187,18 @@ public class Entity implements Listener {
|
|||
|
||||
@EventHandler
|
||||
public void onEntityTaming(EntityTameEvent event) {
|
||||
if (Bukkit.getServer().getPlayer(event.getOwner().getUniqueId()) != null) {
|
||||
Player player = Bukkit.getServer().getPlayer(event.getOwner().getUniqueId());
|
||||
|
||||
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
if (!skyblock.getIslandManager().hasPermission(player, "MobTaming")) {
|
||||
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 (!(event.getOwner() instanceof Player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Player player = (Player) event.getOwner();
|
||||
|
||||
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
if (!skyblock.getIslandManager().hasPermission(player, "MobTaming")) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -150,24 +213,10 @@ public class Entity implements Listener {
|
|||
|
||||
if (!(entity instanceof Player)) {
|
||||
if (entity.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || entity.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
IslandManager islandManager = skyblock.getIslandManager();
|
||||
|
||||
for (UUID islandList : islandManager.getIslands().keySet()) {
|
||||
Island island = islandManager.getIslands().get(islandList);
|
||||
|
||||
for (Location.World worldList : Location.World.values()) {
|
||||
if (LocationUtil.isLocationAtLocationRadius(entity.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (!island.getSetting(Setting.Role.Owner, "MobGriefing").getStatus()) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
event.setCancelled(true);
|
||||
}
|
||||
if (!skyblock.getIslandManager().hasSetting(entity.getLocation(), Setting.Role.Owner, "MobGriefing")) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -176,23 +225,9 @@ public class Entity implements Listener {
|
|||
org.bukkit.entity.Entity entity = event.getEntity();
|
||||
|
||||
if (entity.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || entity.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
IslandManager islandManager = skyblock.getIslandManager();
|
||||
|
||||
for (UUID islandList : islandManager.getIslands().keySet()) {
|
||||
Island island = islandManager.getIslands().get(islandList);
|
||||
|
||||
for (Location.World worldList : Location.World.values()) {
|
||||
if (LocationUtil.isLocationAtLocationRadius(entity.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (!island.getSetting(Setting.Role.Owner, "Explosions").getStatus()) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
event.setCancelled(true);
|
||||
if (!skyblock.getIslandManager().hasSetting(event.getEntity().getLocation(), Setting.Role.Owner, "Explosions")) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -232,9 +267,29 @@ public class Entity implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onEntityTargetLivingEntity(EntityTargetLivingEntityEvent event) {
|
||||
if (!(event.getTarget() instanceof Player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(event.getEntity() instanceof ExperienceOrb)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Player player = (Player) event.getTarget();
|
||||
|
||||
if (player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || player.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
if (!skyblock.getIslandManager().hasPermission(player, "ExperienceOrbPickup")) {
|
||||
event.setTarget(null);
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onCreatureSpawn(CreatureSpawnEvent event) {
|
||||
if (event.getSpawnReason() == SpawnReason.CUSTOM || event.getSpawnReason() == SpawnReason.NATURAL) {
|
||||
if (event.getSpawnReason() == SpawnReason.NATURAL) {
|
||||
LivingEntity livingEntity = event.getEntity();
|
||||
|
||||
if (event.getEntity() instanceof ArmorStand || event.getEntity() instanceof FallingBlock) {
|
||||
|
@ -243,23 +298,9 @@ public class Entity implements Listener {
|
|||
|
||||
if (livingEntity.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Normal).getName()) || livingEntity.getWorld().getName().equals(skyblock.getWorldManager().getWorld(Location.World.Nether).getName())) {
|
||||
if (!livingEntity.hasMetadata("SkyBlock")) {
|
||||
IslandManager islandManager = skyblock.getIslandManager();
|
||||
|
||||
for (UUID islandList : islandManager.getIslands().keySet()) {
|
||||
Island island = islandManager.getIslands().get(islandList);
|
||||
|
||||
for (Location.World worldList : Location.World.values()) {
|
||||
if (LocationUtil.isLocationAtLocationRadius(livingEntity.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (!island.getSetting(Setting.Role.Owner, "NaturalMobSpawning").getStatus()) {
|
||||
livingEntity.remove();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
livingEntity.remove();
|
||||
if (!skyblock.getIslandManager().hasSetting(event.getEntity().getLocation(), Setting.Role.Owner, "NaturalMobSpawning")) {
|
||||
livingEntity.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,9 +101,21 @@ public class Move implements Listener {
|
|||
Config config = fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"));
|
||||
FileConfiguration configLoad = config.getFileConfiguration();
|
||||
|
||||
boolean keepItemsOnDeath;
|
||||
|
||||
if (configLoad.getBoolean("Island.Settings.KeepItemsOnDeath.Enable")) {
|
||||
if (island.getSetting(Setting.Role.Owner, "KeepItemsOnDeath").getStatus()) {
|
||||
keepItemsOnDeath = true;
|
||||
} else {
|
||||
keepItemsOnDeath = false;
|
||||
}
|
||||
} else {
|
||||
keepItemsOnDeath = true;
|
||||
}
|
||||
|
||||
if (configLoad.getBoolean("Island.World." + world.name() + ".Liquid.Enable")) {
|
||||
if (to.getY() <= configLoad.getInt("Island.World." + world.name() + ".Liquid.Height")) {
|
||||
if (island.getSetting(Setting.Role.Owner, "KeepItemsOnDeath").getStatus()) {
|
||||
if (keepItemsOnDeath) {
|
||||
player.setFallDistance(0.0F);
|
||||
|
||||
player.teleport(island.getLocation(world, me.goodandevil.skyblock.island.Location.Environment.Main));
|
||||
|
@ -116,7 +128,7 @@ public class Move implements Listener {
|
|||
|
||||
if (configLoad.getBoolean("Island.Void.Teleport.Enable")) {
|
||||
if (to.getY() <= configLoad.getInt("Island.Void.Teleport.Offset")) {
|
||||
if (!island.getSetting(Setting.Role.Owner, "KeepItemsOnDeath").getStatus()) {
|
||||
if (!keepItemsOnDeath) {
|
||||
player.getInventory().clear();
|
||||
player.setLevel(0);
|
||||
player.setExp(0.0F);
|
||||
|
|
|
@ -77,7 +77,7 @@ public class Teleport implements Listener {
|
|||
for (Location.World worldList : Location.World.values()) {
|
||||
if (LocationUtil.isLocationAtLocationRadius(event.getTo(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
|
||||
if (!island.getOwnerUUID().equals(playerData.getOwner())) {
|
||||
if (!(player.hasPermission("skyblock.bypass") && player.hasPermission("skyblock.bypass.*") && player.hasPermission("skyblock.*"))) {
|
||||
if (!player.hasPermission("skyblock.bypass") && !player.hasPermission("skyblock.bypass.*") && !player.hasPermission("skyblock.*")) {
|
||||
if (!island.isOpen() && !island.isCoopPlayer(player.getUniqueId())) {
|
||||
event.setCancelled(true);
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
package me.goodandevil.skyblock.menus;
|
||||
|
||||
public class Border {
|
||||
|
||||
}
|
|
@ -145,10 +145,10 @@ public class Creator {
|
|||
return;
|
||||
}
|
||||
|
||||
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);
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -10,8 +10,6 @@ import org.bukkit.ChatColor;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
@ -154,6 +152,14 @@ public class Information {
|
|||
Config mainConfig = fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"));
|
||||
List<String> itemLore = new ArrayList<>();
|
||||
|
||||
String safety = "";
|
||||
|
||||
if (visit.getSafeLevel() > 0) {
|
||||
safety = configLoad.getString("Menu.Information.Categories.Item.Information.Vote.Word.Unsafe");
|
||||
} else {
|
||||
safety = configLoad.getString("Menu.Information.Categories.Item.Information.Vote.Word.Safe");
|
||||
}
|
||||
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Visitor.Vote")) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Visitor.Signature.Enable")) {
|
||||
for (String itemLoreList : configLoad.getStringList("Menu.Information.Categories.Item.Information.Vote.Enabled.Signature.Enabled.Lore")) {
|
||||
|
@ -175,7 +181,7 @@ public class Information {
|
|||
itemLore.addAll(configLoad.getStringList("Menu.Information.Categories.Item.Information.Vote.Enabled.Signature.Disabled.Lore"));
|
||||
}
|
||||
|
||||
nInv.addItem(nInv.createItem(Materials.LEGACY_EMPTY_MAP.getPostItem(), configLoad.getString("Menu.Information.Categories.Item.Information.Displayname"), itemLore, nInv.createItemLoreVariable(new String[] { "%level#" + visit.getLevel().getLevel(), "%members#" + visit.getMembers(), "%votes#" + visit.getVoters().size(), "%visits#" + visit.getVisitors().size(), "%players#" + islandManager.getPlayersAtIsland(island).size(), "%player_capacity#" + mainConfig.getFileConfiguration().getInt("Island.Visitor.Capacity"), "%owner#" + islandOwnerName }), null, null), 2);
|
||||
nInv.addItem(nInv.createItem(Materials.LEGACY_EMPTY_MAP.getPostItem(), configLoad.getString("Menu.Information.Categories.Item.Information.Displayname"), itemLore, nInv.createItemLoreVariable(new String[] { "%level#" + visit.getLevel().getLevel(), "%members#" + visit.getMembers(), "%votes#" + visit.getVoters().size(), "%visits#" + visit.getVisitors().size(), "%players#" + islandManager.getPlayersAtIsland(island).size(), "%player_capacity#" + mainConfig.getFileConfiguration().getInt("Island.Visitor.Capacity"), "%owner#" + islandOwnerName, "%safety#" + safety }), null, null), 2);
|
||||
} else {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Visitor.Signature.Enable")) {
|
||||
for (String itemLoreList : configLoad.getStringList("Menu.Information.Categories.Item.Information.Vote.Disabled.Signature.Enabled.Lore")) {
|
||||
|
@ -197,7 +203,7 @@ public class Information {
|
|||
itemLore.addAll(configLoad.getStringList("Menu.Information.Categories.Item.Information.Vote.Disabled.Signature.Disabled.Lore"));
|
||||
}
|
||||
|
||||
nInv.addItem(nInv.createItem(Materials.LEGACY_EMPTY_MAP.getPostItem(), configLoad.getString("Menu.Information.Categories.Item.Information.Displayname"), itemLore, nInv.createItemLoreVariable(new String[] { "%level#" + visit.getLevel().getLevel(), "%members#" + visit.getMembers(), "%visits#" + visit.getVisitors().size(), "%players#" + islandManager.getPlayersAtIsland(island).size(), "%player_capacity#" + mainConfig.getFileConfiguration().getInt("Island.Visitor.Capacity"), "%owner#" + islandOwnerName }), null, null), 2);
|
||||
nInv.addItem(nInv.createItem(Materials.LEGACY_EMPTY_MAP.getPostItem(), configLoad.getString("Menu.Information.Categories.Item.Information.Displayname"), itemLore, nInv.createItemLoreVariable(new String[] { "%level#" + visit.getLevel().getLevel(), "%members#" + visit.getMembers(), "%visits#" + visit.getVisitors().size(), "%players#" + islandManager.getPlayersAtIsland(island).size(), "%player_capacity#" + mainConfig.getFileConfiguration().getInt("Island.Visitor.Capacity"), "%owner#" + islandOwnerName, "%safety#" + safety }), null, null), 2);
|
||||
}
|
||||
|
||||
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Information.Categories.Title")));
|
||||
|
@ -454,57 +460,6 @@ public class Information {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClick(InventoryClickEvent event) {
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
ItemStack is = event.getCurrentItem();
|
||||
|
||||
if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR) {
|
||||
SkyBlock skyblock = SkyBlock.getInstance();
|
||||
|
||||
PlayerDataManager playerDataManager = skyblock.getPlayerDataManager();
|
||||
SoundManager soundManager = skyblock.getSoundManager();
|
||||
|
||||
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.Information.Categories.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Information.Members.Title")))) {
|
||||
event.setCancelled(true);
|
||||
|
||||
PlayerData playerData;
|
||||
|
||||
if (playerDataManager.hasPlayerData(player)) {
|
||||
playerData = playerDataManager.getPlayerData(player);
|
||||
|
||||
if (playerData.getViewer() == null) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Information.Categories.Title")))) {
|
||||
if ((event.getCurrentItem().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);
|
||||
player.closeInventory();
|
||||
} else if ((event.getCurrentItem().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));
|
||||
open(player);
|
||||
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
|
||||
} else if ((event.getCurrentItem().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);
|
||||
} else if ((event.getCurrentItem().getType() == Materials.ITEM_FRAME.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));
|
||||
open(player);
|
||||
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
|
||||
}
|
||||
} else if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Information.Members.Title")))) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class Viewer {
|
||||
|
||||
|
|
|
@ -313,6 +313,10 @@ public class Settings {
|
|||
} else {
|
||||
settingList.setStatus(true);
|
||||
}
|
||||
|
||||
if (settingList.getName().equals("KeepItemsOnDeath") || settingList.getName().equals("PvP") || settingList.getName().equals("Damage")) {
|
||||
island.getVisit().setSafeLevel(islandManager.getIslandSafeLevel(island));
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -399,9 +403,10 @@ public class Settings {
|
|||
nInv.addItemStack(createItem(island, role, "Cake", new ItemStack(Material.CAKE)), 46);
|
||||
nInv.addItemStack(createItem(island, role, "DragonEggUse", new ItemStack(Material.DRAGON_EGG)), 47);
|
||||
nInv.addItemStack(createItem(island, role, "MinecartBoat", new ItemStack(Material.MINECART)), 48);
|
||||
nInv.addItemStack(createItem(island, role, "Portal", new ItemStack(Material.ENDER_PEARL)), 50);
|
||||
nInv.addItemStack(createItem(island, role, "Hopper", new ItemStack(Material.HOPPER)), 51);
|
||||
nInv.addItemStack(createItem(island, role, "ArmorStandPlacement", new ItemStack(Material.ARMOR_STAND)), 52);
|
||||
nInv.addItemStack(createItem(island, role, "Portal", new ItemStack(Material.ENDER_PEARL)), 49);
|
||||
nInv.addItemStack(createItem(island, role, "Hopper", new ItemStack(Material.HOPPER)), 50);
|
||||
nInv.addItemStack(createItem(island, role, "ArmorStandPlacement", new ItemStack(Material.ARMOR_STAND)), 51);
|
||||
nInv.addItemStack(createItem(island, role, "ExperienceOrbPickup", Materials.EXPERIENCE_BOTTLE.parseItem()), 52);
|
||||
|
||||
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings." + role.name() + ".Title")));
|
||||
nInv.setRows(6);
|
||||
|
@ -468,13 +473,79 @@ public class Settings {
|
|||
|
||||
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings." + role.name() + ".Title")));
|
||||
} else if (role == me.goodandevil.skyblock.island.Setting.Role.Owner) {
|
||||
nInv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(island, role, "PvP", new ItemStack(Material.DIAMOND_SWORD)), 12);
|
||||
nInv.addItemStack(createItem(island, role, "Explosions", Materials.GUNPOWDER.parseItem()), 13);
|
||||
nInv.addItemStack(createItem(island, role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 14);
|
||||
nInv.addItemStack(createItem(island, role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
|
||||
nInv.addItemStack(createItem(island, role, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 16);
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.PvP.Enable")) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.KeepItemsOnDeath.Enable")) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Damage.Enable")) {
|
||||
nInv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 9);
|
||||
nInv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(island, role, "PvP", new ItemStack(Material.DIAMOND_SWORD)), 11);
|
||||
nInv.addItemStack(createItem(island, role, "Explosions", Materials.GUNPOWDER.parseItem()), 12);
|
||||
nInv.addItemStack(createItem(island, role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 14);
|
||||
nInv.addItemStack(createItem(island, role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
|
||||
nInv.addItemStack(createItem(island, role, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 16);
|
||||
nInv.addItemStack(createItem(island, role, "Damage", Materials.ROSE_RED.parseItem()), 17);
|
||||
} else {
|
||||
nInv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(island, role, "PvP", new ItemStack(Material.DIAMOND_SWORD)), 12);
|
||||
nInv.addItemStack(createItem(island, role, "Explosions", Materials.GUNPOWDER.parseItem()), 13);
|
||||
nInv.addItemStack(createItem(island, role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 14);
|
||||
nInv.addItemStack(createItem(island, role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
|
||||
nInv.addItemStack(createItem(island, role, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 16);
|
||||
}
|
||||
} else {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Damage.Enable")) {
|
||||
nInv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(island, role, "PvP", new ItemStack(Material.DIAMOND_SWORD)), 12);
|
||||
nInv.addItemStack(createItem(island, role, "Explosions", Materials.GUNPOWDER.parseItem()), 13);
|
||||
nInv.addItemStack(createItem(island, role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 14);
|
||||
nInv.addItemStack(createItem(island, role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
|
||||
nInv.addItemStack(createItem(island, role, "Damage", Materials.ROSE_RED.parseItem()), 16);
|
||||
} else {
|
||||
nInv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(island, role, "PvP", new ItemStack(Material.DIAMOND_SWORD)), 12);
|
||||
nInv.addItemStack(createItem(island, role, "Explosions", Materials.GUNPOWDER.parseItem()), 14);
|
||||
nInv.addItemStack(createItem(island, role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 15);
|
||||
nInv.addItemStack(createItem(island, role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 16);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.KeepItemsOnDeath.Enable")) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Damage.Enable")) {
|
||||
nInv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(island, role, "Explosions", Materials.GUNPOWDER.parseItem()), 12);
|
||||
nInv.addItemStack(createItem(island, role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 13);
|
||||
nInv.addItemStack(createItem(island, role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 14);
|
||||
nInv.addItemStack(createItem(island, role, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 15);
|
||||
nInv.addItemStack(createItem(island, role, "Damage", Materials.ROSE_RED.parseItem()), 16);
|
||||
} else {
|
||||
nInv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(island, role, "Explosions", Materials.GUNPOWDER.parseItem()), 12);
|
||||
nInv.addItemStack(createItem(island, role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 14);
|
||||
nInv.addItemStack(createItem(island, role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
|
||||
nInv.addItemStack(createItem(island, role, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 16);
|
||||
}
|
||||
} else {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Damage.Enable")) {
|
||||
nInv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(island, role, "Explosions", Materials.GUNPOWDER.parseItem()), 12);
|
||||
nInv.addItemStack(createItem(island, role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 14);
|
||||
nInv.addItemStack(createItem(island, role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
|
||||
nInv.addItemStack(createItem(island, role, "Damage", Materials.ROSE_RED.parseItem()), 16);
|
||||
} else {
|
||||
nInv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 12);
|
||||
nInv.addItemStack(createItem(island, role, "Explosions", Materials.GUNPOWDER.parseItem()), 13);
|
||||
nInv.addItemStack(createItem(island, role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 14);
|
||||
nInv.addItemStack(createItem(island, role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Settings." + role.name() + ".Title")));
|
||||
nInv.setRows(2);
|
||||
|
|
|
@ -370,6 +370,14 @@ public class Visit {
|
|||
|
||||
List<String> itemLore = new ArrayList<>();
|
||||
|
||||
String safety = "";
|
||||
|
||||
if (visit.getSafeLevel() > 0) {
|
||||
safety = configLoad.getString("Menu.Visit.Item.Island.Vote.Word.Unsafe");
|
||||
} else {
|
||||
safety = configLoad.getString("Menu.Visit.Item.Island.Vote.Word.Safe");
|
||||
}
|
||||
|
||||
if (voteEnabled) {
|
||||
String voteAction = "";
|
||||
|
||||
|
@ -411,7 +419,7 @@ public class Visit {
|
|||
}
|
||||
}
|
||||
|
||||
nInv.addItem(nInv.createItem(SkullUtil.create(targetPlayerTexture[0], targetPlayerTexture[1]), configLoad.getString("Menu.Visit.Item.Island.Displayname").replace("%player", targetPlayerName), itemLore, nInv.createItemLoreVariable(new String[] { "%level#" + visit.getLevel().getLevel(), "%members#" + visit.getMembers(), "%votes#" + visit.getVoters().size(), "%visits#" + visit.getVisitors().size(), "%players#" + islandManager.getPlayersAtIsland(island).size(), "%player_capacity#" + playerCapacity, "%action#" + voteAction }), null, null), inventorySlot);
|
||||
nInv.addItem(nInv.createItem(SkullUtil.create(targetPlayerTexture[0], targetPlayerTexture[1]), configLoad.getString("Menu.Visit.Item.Island.Displayname").replace("%player", targetPlayerName), itemLore, nInv.createItemLoreVariable(new String[] { "%level#" + visit.getLevel().getLevel(), "%members#" + visit.getMembers(), "%votes#" + visit.getVoters().size(), "%visits#" + visit.getVisitors().size(), "%players#" + islandManager.getPlayersAtIsland(island).size(), "%player_capacity#" + playerCapacity, "%action#" + voteAction, "%safety#" + safety }), null, null), inventorySlot);
|
||||
} else {
|
||||
if (signatureEnabled) {
|
||||
for (String itemLoreList : configLoad.getStringList("Menu.Visit.Item.Island.Vote.Disabled.Signature.Enabled.Lore")) {
|
||||
|
@ -433,7 +441,7 @@ public class Visit {
|
|||
itemLore.addAll(configLoad.getStringList("Menu.Visit.Item.Island.Vote.Disabled.Signature.Disabled.Lore"));
|
||||
}
|
||||
|
||||
nInv.addItem(nInv.createItem(SkullUtil.create(targetPlayerTexture[0], targetPlayerTexture[1]), configLoad.getString("Menu.Visit.Item.Island.Displayname").replace("%player", targetPlayerName), itemLore, nInv.createItemLoreVariable(new String[] { "%level#" + visit.getLevel().getLevel(), "%members#" + visit.getMembers(), "%visits#" + visit.getVisitors().size(), "%players#" + islandManager.getPlayersAtIsland(island).size(), "%player_capacity#" + playerCapacity }), null, null), inventorySlot);
|
||||
nInv.addItem(nInv.createItem(SkullUtil.create(targetPlayerTexture[0], targetPlayerTexture[1]), configLoad.getString("Menu.Visit.Item.Island.Displayname").replace("%player", targetPlayerName), itemLore, nInv.createItemLoreVariable(new String[] { "%level#" + visit.getLevel().getLevel(), "%members#" + visit.getMembers(), "%visits#" + visit.getVisitors().size(), "%players#" + islandManager.getPlayersAtIsland(island).size(), "%player_capacity#" + playerCapacity, "%safety#" + safety }), null, null), inventorySlot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,9 +10,6 @@ import org.bukkit.ChatColor;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
@ -20,13 +17,15 @@ import org.bukkit.inventory.meta.ItemMeta;
|
|||
import me.goodandevil.skyblock.SkyBlock;
|
||||
import me.goodandevil.skyblock.config.FileManager;
|
||||
import me.goodandevil.skyblock.config.FileManager.Config;
|
||||
import me.goodandevil.skyblock.island.Island;
|
||||
import me.goodandevil.skyblock.message.MessageManager;
|
||||
import me.goodandevil.skyblock.sound.SoundManager;
|
||||
import me.goodandevil.skyblock.utils.item.InventoryUtil;
|
||||
import me.goodandevil.skyblock.utils.item.nInventoryUtil;
|
||||
import me.goodandevil.skyblock.utils.item.nInventoryUtil.ClickEvent;
|
||||
import me.goodandevil.skyblock.utils.item.nInventoryUtil.ClickEventHandler;
|
||||
import me.goodandevil.skyblock.utils.version.Materials;
|
||||
import me.goodandevil.skyblock.utils.version.Sounds;
|
||||
|
||||
public class Settings implements Listener {
|
||||
public class Settings {
|
||||
|
||||
private static Settings instance;
|
||||
|
||||
|
@ -41,220 +40,133 @@ public class Settings implements Listener {
|
|||
public void open(Player player, Settings.Type menuType, me.goodandevil.skyblock.island.Setting.Role role) {
|
||||
SkyBlock skyblock = SkyBlock.getInstance();
|
||||
|
||||
Island island = skyblock.getIslandManager().getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
|
||||
InventoryUtil inv = null;
|
||||
MessageManager messageManager = skyblock.getMessageManager();
|
||||
SoundManager soundManager = skyblock.getSoundManager();
|
||||
FileManager fileManager = skyblock.getFileManager();
|
||||
|
||||
Config mainConfig = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "config.yml"));
|
||||
Config languageConfig = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml"));
|
||||
Config mainConfig = fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"));
|
||||
Config languageConfig = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"));
|
||||
FileConfiguration configLoad = languageConfig.getFileConfiguration();
|
||||
|
||||
if (menuType == Settings.Type.Categories) {
|
||||
inv = new InventoryUtil(configLoad.getString("Menu.Admin.Settings.Categories.Title"), null, 1);
|
||||
inv.addItem(inv.createItem(Materials.OAK_FENCE_GATE.parseItem(), configLoad.getString("Menu.Admin.Settings.Categories.Item.Exit.Displayname"), null, null, null, null), 0, 8);
|
||||
inv.addItem(inv.createItem(new ItemStack(Material.SIGN), configLoad.getString("Menu.Admin.Settings.Categories.Item.Visitor.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Visitor.Lore"), null, null, null), 2);
|
||||
inv.addItem(inv.createItem(new ItemStack(Material.PAINTING), configLoad.getString("Menu.Admin.Settings.Categories.Item.Member.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Member.Lore"), null, null, null), 3);
|
||||
inv.addItem(inv.createItem(new ItemStack(Material.ITEM_FRAME), configLoad.getString("Menu.Admin.Settings.Categories.Item.Operator.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Operator.Lore"), null, null, null), 4);
|
||||
inv.addItem(inv.createItem(Materials.OAK_SAPLING.parseItem(), configLoad.getString("Menu.Admin.Settings.Categories.Item.Owner.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Owner.Lore"), null, null, null), 6);
|
||||
} else if (menuType == Settings.Type.Role) {
|
||||
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor || role == me.goodandevil.skyblock.island.Setting.Role.Member) {
|
||||
inv = new InventoryUtil(configLoad.getString("Menu.Admin.Settings." + role.name() + ".Title"), null, 6);
|
||||
inv.addItemStack(createItem(island, role, "Destroy", Material.DIAMOND_PICKAXE), 9);
|
||||
inv.addItemStack(createItem(island, role, "Place", Material.GRASS), 10);
|
||||
inv.addItemStack(createItem(island, role, "Anvil", Material.ANVIL), 11);
|
||||
inv.addItemStack(createItem(island, role, "ArmorStand", Material.ARMOR_STAND), 12);
|
||||
inv.addItemStack(createItem(island, role, "Beacon", Material.BEACON), 13);
|
||||
inv.addItemStack(createItem(island, role, "Bed", Materials.WHITE_BED.parseMaterial()), 14);
|
||||
inv.addItemStack(createItem(island, role, "AnimalBreeding", Material.WHEAT), 15);
|
||||
inv.addItemStack(createItem(island, role, "Brewing", Materials.LEGACY_BREWING_STAND.getPostMaterial()), 16);
|
||||
inv.addItemStack(createItem(island, role, "Bucket", Material.BUCKET), 17);
|
||||
inv.addItemStack(createItem(island, role, "WaterCollection", Material.POTION), 18);
|
||||
inv.addItemStack(createItem(island, role, "Storage", Material.CHEST), 19);
|
||||
inv.addItemStack(createItem(island, role, "Workbench", Materials.CRAFTING_TABLE.parseMaterial()), 20);
|
||||
inv.addItemStack(createItem(island, role, "Crop", Materials.WHEAT_SEEDS.parseMaterial()), 21);
|
||||
inv.addItemStack(createItem(island, role, "Door", Materials.OAK_DOOR.parseMaterial()), 22);
|
||||
inv.addItemStack(createItem(island, role, "Gate", Materials.OAK_FENCE_GATE.parseMaterial()), 23);
|
||||
inv.addItemStack(createItem(island, role, "Projectile", Material.ARROW), 24);
|
||||
inv.addItemStack(createItem(island, role, "Enchant", Materials.ENCHANTING_TABLE.parseMaterial()), 25);
|
||||
inv.addItemStack(createItem(island, role, "Fire", Material.FLINT_AND_STEEL), 26);
|
||||
inv.addItemStack(createItem(island, role, "Furnace", Material.FURNACE), 27);
|
||||
inv.addItemStack(createItem(island, role, "HorseInventory", Materials.CHEST_MINECART.parseMaterial()), 28);
|
||||
inv.addItemStack(createItem(island, role, "MobRiding", Material.SADDLE), 29);
|
||||
inv.addItemStack(createItem(island, role, "MobHurting", Materials.WOODEN_SWORD.parseMaterial()), 30);
|
||||
inv.addItemStack(createItem(island, role, "MobTaming", Materials.POPPY.parseMaterial()), 31);
|
||||
inv.addItemStack(createItem(island, role, "Leash", Materials.LEAD.parseMaterial()), 32);
|
||||
inv.addItemStack(createItem(island, role, "LeverButton", Material.LEVER), 33);
|
||||
inv.addItemStack(createItem(island, role, "Milking", Material.MILK_BUCKET), 34);
|
||||
inv.addItemStack(createItem(island, role, "Jukebox", Material.JUKEBOX), 35);
|
||||
inv.addItemStack(createItem(island, role, "PressurePlate", Materials.OAK_PRESSURE_PLATE.parseMaterial()), 37);
|
||||
inv.addItemStack(createItem(island, role, "Redstone", Material.REDSTONE), 38);
|
||||
inv.addItemStack(createItem(island, role, "Shearing", Material.SHEARS), 39);
|
||||
inv.addItemStack(createItem(island, role, "Trading", Material.EMERALD), 40);
|
||||
inv.addItemStack(createItem(island, role, "ItemDrop", Material.PUMPKIN_SEEDS), 41);
|
||||
inv.addItemStack(createItem(island, role, "ItemPickup", Material.MELON_SEEDS), 42);
|
||||
inv.addItemStack(createItem(island, role, "Fishing", Material.FISHING_ROD), 43);
|
||||
inv.addItemStack(createItem(island, role, "DropperDispenser", Material.DISPENSER), 46);
|
||||
inv.addItemStack(createItem(island, role, "SpawnEgg", Material.EGG), 47);
|
||||
inv.addItemStack(createItem(island, role, "Cake", Material.CAKE), 48);
|
||||
inv.addItemStack(createItem(island, role, "DragonEggUse", Material.DRAGON_EGG), 49);
|
||||
inv.addItemStack(createItem(island, role, "MinecartBoat", Material.MINECART), 50);
|
||||
inv.addItemStack(createItem(island, role, "Portal", Material.ENDER_PEARL), 51);
|
||||
inv.addItemStack(createItem(island, role, "Hopper", Material.HOPPER), 52);
|
||||
} else if (role == me.goodandevil.skyblock.island.Setting.Role.Operator) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Visitor.Banning")) {
|
||||
inv = new InventoryUtil(configLoad.getString("Menu.Admin.Settings." + role.name() + ".Title"), null, 3);
|
||||
inv.addItemStack(createItem(island, role, "Invite", Materials.WRITABLE_BOOK.parseMaterial()), 10);
|
||||
inv.addItemStack(createItem(island, role, "Kick", Material.IRON_DOOR), 11);
|
||||
inv.addItemStack(createItem(island, role, "Ban", Material.IRON_AXE), 12);
|
||||
inv.addItemStack(createItem(island, role, "Unban", Material.NAME_TAG), 13);
|
||||
inv.addItemStack(createItem(island, role, "Visitor", Material.SIGN), 14);
|
||||
inv.addItemStack(createItem(island, role, "Member", Material.PAINTING), 15);
|
||||
inv.addItemStack(createItem(island, role, "Island", Materials.OAK_SAPLING.parseMaterial()), 16);
|
||||
inv.addItemStack(createItem(island, role, "MainSpawn", Material.EMERALD), 20);
|
||||
inv.addItemStack(createItem(island, role, "VisitorSpawn", Material.NETHER_STAR), 21);
|
||||
inv.addItemStack(createItem(island, role, "Biome", Material.MAP), 23);
|
||||
inv.addItemStack(createItem(island, role, "Weather", Materials.CLOCK.parseMaterial()), 24);
|
||||
} else {
|
||||
inv = new InventoryUtil(configLoad.getString("Menu.Admin.Settings." + role.name() + ".Title"), null, 2);
|
||||
inv.addItemStack(createItem(island, role, "Invite", Materials.WRITABLE_BOOK.parseMaterial()), 9);
|
||||
inv.addItemStack(createItem(island, role, "Kick", Material.IRON_DOOR), 10);
|
||||
inv.addItemStack(createItem(island, role, "Visitor", Material.SIGN), 11);
|
||||
inv.addItemStack(createItem(island, role, "Member", Material.PAINTING), 12);
|
||||
inv.addItemStack(createItem(island, role, "Island", Materials.OAK_SAPLING.parseMaterial()), 13);
|
||||
inv.addItemStack(createItem(island, role, "MainSpawn", Material.EMERALD), 14);
|
||||
inv.addItemStack(createItem(island, role, "VisitorSpawn", Material.NETHER_STAR), 15);
|
||||
inv.addItemStack(createItem(island, role, "Biome", Material.MAP), 16);
|
||||
inv.addItemStack(createItem(island, role, "Weather", Materials.CLOCK.parseMaterial()), 17);
|
||||
}
|
||||
} else if (role == me.goodandevil.skyblock.island.Setting.Role.Owner) {
|
||||
inv = new InventoryUtil(configLoad.getString("Menu.Admin.Settings." + role.name() + ".Title"), null, 2);
|
||||
inv.addItemStack(createItem(island, role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseMaterial()), 10);
|
||||
inv.addItemStack(createItem(island, role, "MobGriefing", Materials.IRON_SHOVEL.parseMaterial()), 11);
|
||||
inv.addItemStack(createItem(island, role, "PvP", Material.DIAMOND_SWORD), 12);
|
||||
inv.addItemStack(createItem(island, role, "Explosions", Materials.GUNPOWDER.parseMaterial()), 13);
|
||||
inv.addItemStack(createItem(island, role, "FireSpread", Material.FLINT_AND_STEEL), 14);
|
||||
inv.addItemStack(createItem(island, role, "LeafDecay", Materials.OAK_LEAVES.parseMaterial()), 15);
|
||||
inv.addItemStack(createItem(island, role, "KeepItemsOnDeath", Material.ITEM_FRAME), 16);
|
||||
}
|
||||
|
||||
inv.addItem(inv.createItem(Materials.OAK_FENCE_GATE.parseItem(), configLoad.getString("Menu.Admin.Settings." + role.name() + ".Item.Return.Displayname"), null, null, null, null), 0, 8);
|
||||
}
|
||||
|
||||
player.openInventory(inv.getInventory());
|
||||
}
|
||||
|
||||
private ItemStack createItem(Island island, me.goodandevil.skyblock.island.Setting.Role role, String setting, Material material) {
|
||||
SkyBlock skyblock = SkyBlock.getInstance();
|
||||
|
||||
FileManager fileManager = skyblock.getFileManager();
|
||||
|
||||
Config config = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"));
|
||||
FileConfiguration configLoad = config.getFileConfiguration();
|
||||
|
||||
List<String> itemLore = new ArrayList<>();
|
||||
|
||||
ItemStack is = new ItemStack(material);
|
||||
ItemMeta im = is.getItemMeta();
|
||||
|
||||
String roleName = role.name();
|
||||
|
||||
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor || role == me.goodandevil.skyblock.island.Setting.Role.Member) {
|
||||
roleName = "Default";
|
||||
}
|
||||
|
||||
im.setDisplayName(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings." + roleName + ".Item.Setting." + setting + ".Displayname")));
|
||||
|
||||
if (fileManager.getConfig(new File(skyblock.getDataFolder(), "settings.yml")).getFileConfiguration().getBoolean(role.name() + "." + setting)) {
|
||||
for (String itemLoreList : configLoad.getStringList("Menu.Admin.Settings." + roleName + ".Item.Setting.Status.Enabled.Lore")) {
|
||||
itemLore.add(ChatColor.translateAlternateColorCodes('&', itemLoreList));
|
||||
}
|
||||
} else {
|
||||
for (String itemLoreList : configLoad.getStringList("Menu.Admin.Settings." + roleName + ".Item.Setting.Status.Disabled.Lore")) {
|
||||
itemLore.add(ChatColor.translateAlternateColorCodes('&', itemLoreList));
|
||||
}
|
||||
}
|
||||
|
||||
im.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
|
||||
im.setLore(itemLore);
|
||||
is.setItemMeta(im);
|
||||
|
||||
return is;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClick(InventoryClickEvent event) {
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
ItemStack is = event.getCurrentItem();
|
||||
|
||||
if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR) {
|
||||
SkyBlock skyblock = SkyBlock.getInstance();
|
||||
|
||||
SoundManager soundManager = skyblock.getSoundManager();
|
||||
FileManager fileManager = skyblock.getFileManager();
|
||||
|
||||
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.Settings.Categories.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Visitor.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Member.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Operator.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Owner.Title")))) {
|
||||
event.setCancelled(true);
|
||||
|
||||
if (!(player.hasPermission("skyblock.admin.settings") || player.hasPermission("skyblock.admin.*") || player.hasPermission("skyblock.*"))) {
|
||||
skyblock.getMessageManager().sendMessage(player, configLoad.getString("Island.Admin.Settings.Permission.Message"));
|
||||
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Title")))) {
|
||||
if ((event.getCurrentItem().getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Item.Exit.Displayname"))))) {
|
||||
soundManager.playSound(player, Sounds.CHEST_CLOSE.bukkitSound(), 1.0F, 1.0F);
|
||||
player.closeInventory();
|
||||
} else if ((is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Item.Visitor.Displayname"))))) {
|
||||
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Visitor);
|
||||
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
|
||||
} else if ((event.getCurrentItem().getType() == Material.PAINTING) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Item.Member.Displayname"))))) {
|
||||
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Member);
|
||||
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
|
||||
} else if ((event.getCurrentItem().getType() == Material.ITEM_FRAME) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Item.Operator.Displayname"))))) {
|
||||
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Operator);
|
||||
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
|
||||
} else if ((event.getCurrentItem().getType() == Materials.OAK_SAPLING.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Item.Owner.Displayname"))))) {
|
||||
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.Owner);
|
||||
soundManager.playSound(player, Sounds.NOTE_PLING.bukkitSound(), 1.0F, 1.0F);
|
||||
}
|
||||
} else if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Visitor.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Member.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Operator.Title"))) || event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Owner.Title")))) {
|
||||
if ((event.getCurrentItem().getType() == Materials.OAK_FENCE_GATE.parseMaterial()) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Visitor.Item.Return.Displayname"))) || is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Member.Item.Return.Displayname"))) || is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Operator.Item.Return.Displayname"))) || is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Owner.Item.Return.Displayname"))))) {
|
||||
open(player, Settings.Type.Categories, null);
|
||||
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
|
||||
} else if (is.hasItemMeta()) {
|
||||
me.goodandevil.skyblock.island.Setting.Role role = null;
|
||||
String roleName = null, rolePermissionName = null;
|
||||
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
if (!(player.hasPermission("skyblock.admin.settings") || player.hasPermission("skyblock.admin.*") || player.hasPermission("skyblock.*"))) {
|
||||
messageManager.sendMessage(player, configLoad.getString("Island.Admin.Settings.Permission.Message"));
|
||||
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
|
||||
|
||||
if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Visitor.Title")))) {
|
||||
role = me.goodandevil.skyblock.island.Setting.Role.Visitor;
|
||||
roleName = "Visitor";
|
||||
rolePermissionName = "Default";
|
||||
} else if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Member.Title")))) {
|
||||
role = me.goodandevil.skyblock.island.Setting.Role.Member;
|
||||
roleName = "Member";
|
||||
rolePermissionName = "Default";
|
||||
} else if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Operator.Title")))) {
|
||||
role = me.goodandevil.skyblock.island.Setting.Role.Operator;
|
||||
roleName = role.name();
|
||||
rolePermissionName = role.name();
|
||||
} else if (event.getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Owner.Title")))) {
|
||||
role = me.goodandevil.skyblock.island.Setting.Role.Owner;
|
||||
roleName = role.name();
|
||||
rolePermissionName = role.name();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
open(player, Settings.Type.Role, me.goodandevil.skyblock.island.Setting.Role.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.Setting.Role.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.Setting.Role.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.Setting.Role.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.Setting.Role.Owner);
|
||||
}
|
||||
}, 1L);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
nInv.addItem(nInv.createItem(new ItemStack(Material.SIGN), configLoad.getString("Menu.Admin.Settings.Categories.Item.Visitor.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Visitor.Lore"), null, null, null), 2);
|
||||
nInv.addItem(nInv.createItem(new ItemStack(Material.PAINTING), configLoad.getString("Menu.Admin.Settings.Categories.Item.Member.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Member.Lore"), null, null, null), 3);
|
||||
nInv.addItem(nInv.createItem(new ItemStack(Material.ITEM_FRAME), configLoad.getString("Menu.Admin.Settings.Categories.Item.Operator.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Operator.Lore"), null, null, null), 4);
|
||||
|
||||
if (fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Coop.Enable")) {
|
||||
nInv.addItem(nInv.createItem(Materials.OAK_FENCE_GATE.parseItem(), configLoad.getString("Menu.Admin.Settings.Categories.Item.Exit.Displayname"), null, null, null, null), 0);
|
||||
nInv.addItem(nInv.createItem(new ItemStack(Material.NAME_TAG), configLoad.getString("Menu.Admin.Settings.Categories.Item.Coop.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Coop.Lore"), null, null, null), 6);
|
||||
nInv.addItem(nInv.createItem(Materials.OAK_SAPLING.parseItem(), configLoad.getString("Menu.Admin.Settings.Categories.Item.Owner.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Owner.Lore"), null, null, null), 7);
|
||||
} else {
|
||||
nInv.addItem(nInv.createItem(Materials.OAK_FENCE_GATE.parseItem(), configLoad.getString("Menu.Admin.Settings.Categories.Item.Exit.Displayname"), null, null, null, null), 0, 8);
|
||||
nInv.addItem(nInv.createItem(Materials.OAK_SAPLING.parseItem(), configLoad.getString("Menu.Admin.Settings.Categories.Item.Owner.Displayname"), configLoad.getStringList("Menu.Admin.Settings.Categories.Item.Owner.Lore"), null, null, null), 6);
|
||||
}
|
||||
|
||||
nInv.setTitle(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings.Categories.Title")));
|
||||
nInv.setRows(1);
|
||||
|
||||
Bukkit.getServer().getScheduler().runTask(skyblock, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
nInv.open();
|
||||
}
|
||||
});
|
||||
} else if (menuType == Settings.Type.Role) {
|
||||
nInventoryUtil nInv = new nInventoryUtil(player, new ClickEventHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
if (!(player.hasPermission("skyblock.admin.settings") || player.hasPermission("skyblock.admin.*") || player.hasPermission("skyblock.*"))) {
|
||||
messageManager.sendMessage(player, configLoad.getString("Island.Admin.Settings.Permission.Message"));
|
||||
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
open(player, Settings.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(roleName).getKeys(false)) {
|
||||
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings." + rolePermissionName + ".Item.Setting." + settingList + ".Displayname")))) {
|
||||
if (settingsConfigLoad.getBoolean(roleName + "." + settingList)) {
|
||||
settingsConfigLoad.set(roleName + "." + settingList, false);
|
||||
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(roleName + "." + settingList, true);
|
||||
settingsConfigLoad.set("Settings." + role.name() + "." + settingList, true);
|
||||
}
|
||||
|
||||
Bukkit.getServer().getScheduler().runTaskAsynchronously(skyblock, new Runnable() {
|
||||
|
@ -274,11 +186,256 @@ public class Settings implements Listener {
|
|||
}
|
||||
|
||||
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
|
||||
open(player, Settings.Type.Role, role);
|
||||
|
||||
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
open(player, Settings.Type.Role, role);
|
||||
}
|
||||
}, 1L);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor || role == me.goodandevil.skyblock.island.Setting.Role.Member || role == me.goodandevil.skyblock.island.Setting.Role.Coop) {
|
||||
nInv.addItemStack(createItem(role, "Destroy", new ItemStack(Material.DIAMOND_PICKAXE)), 9);
|
||||
nInv.addItemStack(createItem(role, "Place", new ItemStack(Material.GRASS)), 10);
|
||||
nInv.addItemStack(createItem(role, "Anvil", new ItemStack(Material.ANVIL)), 11);
|
||||
nInv.addItemStack(createItem(role, "ArmorStandUse", new ItemStack(Material.ARMOR_STAND)), 12);
|
||||
nInv.addItemStack(createItem(role, "Beacon", new ItemStack(Material.BEACON)), 13);
|
||||
nInv.addItemStack(createItem(role, "Bed", Materials.WHITE_BED.parseItem()), 14);
|
||||
nInv.addItemStack(createItem(role, "AnimalBreeding", new ItemStack(Material.WHEAT)), 15);
|
||||
nInv.addItemStack(createItem(role, "Brewing", new ItemStack(Materials.LEGACY_BREWING_STAND.getPostMaterial())), 16);
|
||||
nInv.addItemStack(createItem(role, "Bucket", new ItemStack(Material.BUCKET)), 17);
|
||||
nInv.addItemStack(createItem(role, "WaterCollection", new ItemStack(Material.POTION)), 18);
|
||||
nInv.addItemStack(createItem(role, "Storage", new ItemStack(Material.CHEST)), 19);
|
||||
nInv.addItemStack(createItem(role, "Workbench", Materials.CRAFTING_TABLE.parseItem()), 20);
|
||||
nInv.addItemStack(createItem(role, "Crop", Materials.WHEAT_SEEDS.parseItem()), 21);
|
||||
nInv.addItemStack(createItem(role, "Door", Materials.OAK_DOOR.parseItem()), 22);
|
||||
nInv.addItemStack(createItem(role, "Gate", Materials.OAK_FENCE_GATE.parseItem()), 23);
|
||||
nInv.addItemStack(createItem(role, "Projectile", new ItemStack(Material.ARROW)), 24);
|
||||
nInv.addItemStack(createItem(role, "Enchant", Materials.ENCHANTING_TABLE.parseItem()), 25);
|
||||
nInv.addItemStack(createItem(role, "Fire", new ItemStack(Material.FLINT_AND_STEEL)), 26);
|
||||
nInv.addItemStack(createItem(role, "Furnace", new ItemStack(Material.FURNACE)), 27);
|
||||
nInv.addItemStack(createItem(role, "HorseInventory", Materials.CHEST_MINECART.parseItem()), 28);
|
||||
nInv.addItemStack(createItem(role, "MobRiding", new ItemStack(Material.SADDLE)), 29);
|
||||
nInv.addItemStack(createItem(role, "MobHurting", Materials.WOODEN_SWORD.parseItem()), 30);
|
||||
nInv.addItemStack(createItem(role, "MobTaming", Materials.POPPY.parseItem()), 31);
|
||||
nInv.addItemStack(createItem(role, "Leash", Materials.LEAD.parseItem()), 32);
|
||||
nInv.addItemStack(createItem(role, "LeverButton", new ItemStack(Material.LEVER)), 33);
|
||||
nInv.addItemStack(createItem(role, "Milking", new ItemStack(Material.MILK_BUCKET)), 34);
|
||||
nInv.addItemStack(createItem(role, "Jukebox", new ItemStack(Material.JUKEBOX)), 35);
|
||||
nInv.addItemStack(createItem(role, "PressurePlate", Materials.OAK_PRESSURE_PLATE.parseItem()), 36);
|
||||
nInv.addItemStack(createItem(role, "Redstone", new ItemStack(Material.REDSTONE)), 37);
|
||||
nInv.addItemStack(createItem(role, "Shearing", new ItemStack(Material.SHEARS)), 38);
|
||||
nInv.addItemStack(createItem(role, "Trading", new ItemStack(Material.EMERALD)), 39);
|
||||
nInv.addItemStack(createItem(role, "ItemDrop", new ItemStack(Material.PUMPKIN_SEEDS)), 40);
|
||||
nInv.addItemStack(createItem(role, "ItemPickup", new ItemStack(Material.MELON_SEEDS)), 41);
|
||||
nInv.addItemStack(createItem(role, "Fishing", new ItemStack(Material.FISHING_ROD)), 42);
|
||||
nInv.addItemStack(createItem(role, "DropperDispenser", new ItemStack(Material.DISPENSER)), 43);
|
||||
nInv.addItemStack(createItem(role, "SpawnEgg", new ItemStack(Material.EGG)), 44);
|
||||
nInv.addItemStack(createItem(role, "Cake", new ItemStack(Material.CAKE)), 46);
|
||||
nInv.addItemStack(createItem(role, "DragonEggUse", new ItemStack(Material.DRAGON_EGG)), 47);
|
||||
nInv.addItemStack(createItem(role, "MinecartBoat", new ItemStack(Material.MINECART)), 48);
|
||||
nInv.addItemStack(createItem(role, "Portal", new ItemStack(Material.ENDER_PEARL)), 49);
|
||||
nInv.addItemStack(createItem(role, "Hopper", new ItemStack(Material.HOPPER)), 50);
|
||||
nInv.addItemStack(createItem(role, "ArmorStandPlacement", new ItemStack(Material.ARMOR_STAND)), 51);
|
||||
nInv.addItemStack(createItem(role, "ExperienceOrbPickup", Materials.EXPERIENCE_BOTTLE.parseItem()), 52);
|
||||
|
||||
nInv.setRows(6);
|
||||
} else if (role == me.goodandevil.skyblock.island.Setting.Role.Operator) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Visitor.Banning")) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Coop.Enable")) {
|
||||
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, "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);
|
||||
nInv.addItemStack(createItem(role, "CoopPlayers", new ItemStack(Material.BOOK)), 17);
|
||||
nInv.addItemStack(createItem(role, "MainSpawn", new ItemStack(Material.EMERALD)), 20);
|
||||
nInv.addItemStack(createItem(role, "VisitorSpawn", new ItemStack(Material.NETHER_STAR)), 21);
|
||||
nInv.addItemStack(createItem(role, "Biome", new ItemStack(Material.MAP)), 23);
|
||||
nInv.addItemStack(createItem(role, "Weather", Materials.CLOCK.parseItem()), 24);
|
||||
} 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, "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, "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);
|
||||
nInv.addItemStack(createItem(role, "VisitorSpawn", new ItemStack(Material.NETHER_STAR)), 21);
|
||||
nInv.addItemStack(createItem(role, "Biome", new ItemStack(Material.MAP)), 23);
|
||||
nInv.addItemStack(createItem(role, "Weather", Materials.CLOCK.parseItem()), 24);
|
||||
}
|
||||
|
||||
nInv.setRows(3);
|
||||
} else {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Coop.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, "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);
|
||||
nInv.addItemStack(createItem(role, "CoopPlayers", new ItemStack(Material.BOOK)), 16);
|
||||
nInv.addItemStack(createItem(role, "MainSpawn", new ItemStack(Material.EMERALD)), 20);
|
||||
nInv.addItemStack(createItem(role, "VisitorSpawn", new ItemStack(Material.NETHER_STAR)), 21);
|
||||
nInv.addItemStack(createItem(role, "Biome", new ItemStack(Material.MAP)), 23);
|
||||
nInv.addItemStack(createItem(role, "Weather", Materials.CLOCK.parseItem()), 24);
|
||||
|
||||
nInv.setRows(3);
|
||||
} 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, "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);
|
||||
nInv.addItemStack(createItem(role, "VisitorSpawn", new ItemStack(Material.NETHER_STAR)), 15);
|
||||
nInv.addItemStack(createItem(role, "Biome", new ItemStack(Material.MAP)), 16);
|
||||
nInv.addItemStack(createItem(role, "Weather", Materials.CLOCK.parseItem()), 17);
|
||||
|
||||
nInv.setRows(2);
|
||||
}
|
||||
}
|
||||
} else if (role == me.goodandevil.skyblock.island.Setting.Role.Owner) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.PvP.Enable")) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.KeepItemsOnDeath.Enable")) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Damage.Enable")) {
|
||||
nInv.addItemStack(createItem(role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 9);
|
||||
nInv.addItemStack(createItem(role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(role, "PvP", new ItemStack(Material.DIAMOND_SWORD)), 11);
|
||||
nInv.addItemStack(createItem(role, "Explosions", Materials.GUNPOWDER.parseItem()), 12);
|
||||
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, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 16);
|
||||
nInv.addItemStack(createItem(role, "Damage", Materials.ROSE_RED.parseItem()), 17);
|
||||
} else {
|
||||
nInv.addItemStack(createItem(role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(role, "PvP", new ItemStack(Material.DIAMOND_SWORD)), 12);
|
||||
nInv.addItemStack(createItem(role, "Explosions", Materials.GUNPOWDER.parseItem()), 13);
|
||||
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, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 16);
|
||||
}
|
||||
} else {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Damage.Enable")) {
|
||||
nInv.addItemStack(createItem(role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(role, "PvP", new ItemStack(Material.DIAMOND_SWORD)), 12);
|
||||
nInv.addItemStack(createItem(role, "Explosions", Materials.GUNPOWDER.parseItem()), 13);
|
||||
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);
|
||||
} else {
|
||||
nInv.addItemStack(createItem(role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(role, "PvP", new ItemStack(Material.DIAMOND_SWORD)), 12);
|
||||
nInv.addItemStack(createItem(role, "Explosions", Materials.GUNPOWDER.parseItem()), 14);
|
||||
nInv.addItemStack(createItem(role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 15);
|
||||
nInv.addItemStack(createItem(role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 16);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.KeepItemsOnDeath.Enable")) {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Damage.Enable")) {
|
||||
nInv.addItemStack(createItem(role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(role, "Explosions", Materials.GUNPOWDER.parseItem()), 12);
|
||||
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, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 15);
|
||||
nInv.addItemStack(createItem(role, "Damage", Materials.ROSE_RED.parseItem()), 16);
|
||||
} else {
|
||||
nInv.addItemStack(createItem(role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(role, "Explosions", Materials.GUNPOWDER.parseItem()), 12);
|
||||
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, "KeepItemsOnDeath", new ItemStack(Material.ITEM_FRAME)), 16);
|
||||
}
|
||||
} else {
|
||||
if (mainConfig.getFileConfiguration().getBoolean("Island.Settings.Damage.Enable")) {
|
||||
nInv.addItemStack(createItem(role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 10);
|
||||
nInv.addItemStack(createItem(role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(role, "Explosions", Materials.GUNPOWDER.parseItem()), 12);
|
||||
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);
|
||||
} else {
|
||||
nInv.addItemStack(createItem(role, "NaturalMobSpawning", Materials.PIG_SPAWN_EGG.parseItem()), 11);
|
||||
nInv.addItemStack(createItem(role, "MobGriefing", Materials.IRON_SHOVEL.parseItem()), 12);
|
||||
nInv.addItemStack(createItem(role, "Explosions", Materials.GUNPOWDER.parseItem()), 13);
|
||||
nInv.addItemStack(createItem(role, "FireSpread", new ItemStack(Material.FLINT_AND_STEEL)), 14);
|
||||
nInv.addItemStack(createItem(role, "LeafDecay", Materials.OAK_LEAVES.parseItem()), 15);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nInv.setRows(2);
|
||||
}
|
||||
|
||||
nInv.addItem(nInv.createItem(Materials.OAK_FENCE_GATE.parseItem(), configLoad.getString("Menu.Admin.Settings." + role.name() + ".Item.Return.Displayname"), null, null, null, null), 0, 8);
|
||||
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();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private ItemStack createItem(me.goodandevil.skyblock.island.Setting.Role role, String setting, ItemStack is) {
|
||||
SkyBlock skyblock = SkyBlock.getInstance();
|
||||
|
||||
FileManager fileManager = skyblock.getFileManager();
|
||||
|
||||
Config config = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml"));
|
||||
FileConfiguration configLoad = config.getFileConfiguration();
|
||||
|
||||
List<String> itemLore = new ArrayList<>();
|
||||
|
||||
ItemMeta im = is.getItemMeta();
|
||||
|
||||
String roleName = role.name();
|
||||
|
||||
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor || role == me.goodandevil.skyblock.island.Setting.Role.Member || role == me.goodandevil.skyblock.island.Setting.Role.Coop) {
|
||||
roleName = "Default";
|
||||
}
|
||||
|
||||
im.setDisplayName(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Settings." + roleName + ".Item.Setting." + setting + ".Displayname")));
|
||||
|
||||
if (fileManager.getConfig(new File(skyblock.getDataFolder(), "settings.yml")).getFileConfiguration().getBoolean("Settings." + role.name() + "." + setting)) {
|
||||
for (String itemLoreList : configLoad.getStringList("Menu.Admin.Settings." + roleName + ".Item.Setting.Status.Enabled.Lore")) {
|
||||
itemLore.add(ChatColor.translateAlternateColorCodes('&', itemLoreList));
|
||||
}
|
||||
} else {
|
||||
for (String itemLoreList : configLoad.getStringList("Menu.Admin.Settings." + roleName + ".Item.Setting.Status.Disabled.Lore")) {
|
||||
itemLore.add(ChatColor.translateAlternateColorCodes('&', itemLoreList));
|
||||
}
|
||||
}
|
||||
|
||||
im.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
|
||||
im.setLore(itemLore);
|
||||
is.setItemMeta(im);
|
||||
|
||||
return is;
|
||||
}
|
||||
|
||||
private String getRoleName(me.goodandevil.skyblock.island.Setting.Role role) {
|
||||
if (role == me.goodandevil.skyblock.island.Setting.Role.Visitor || role == me.goodandevil.skyblock.island.Setting.Role.Member || role == me.goodandevil.skyblock.island.Setting.Role.Coop) {
|
||||
return "Default";
|
||||
}
|
||||
|
||||
return role.name();
|
||||
}
|
||||
|
||||
public enum Type {
|
||||
|
|
|
@ -26,6 +26,7 @@ public class Visit {
|
|||
|
||||
private int islandSize;
|
||||
private int islandMembers;
|
||||
private int safeLevel;
|
||||
|
||||
private final Level islandLevel;
|
||||
|
||||
|
@ -33,13 +34,14 @@ public class Visit {
|
|||
|
||||
private boolean open;
|
||||
|
||||
protected Visit(SkyBlock skyblock, UUID islandOwnerUUID, Location[] islandLocations, int islandSize, int islandMembers, Level islandLevel, List<String> islandSignature, boolean open) {
|
||||
protected Visit(SkyBlock skyblock, UUID islandOwnerUUID, Location[] islandLocations, int islandSize, int islandMembers, int safeLevel, Level islandLevel, List<String> islandSignature, boolean open) {
|
||||
this.skyblock = skyblock;
|
||||
this.islandOwnerUUID = islandOwnerUUID;
|
||||
//this.islandOwnerName = new OfflinePlayer(islandOwnerUUID).getNames()[0].getName();
|
||||
this.islandLocations = islandLocations;
|
||||
this.islandSize = islandSize;
|
||||
this.islandMembers = islandMembers;
|
||||
this.safeLevel = safeLevel;
|
||||
this.islandLevel = islandLevel;
|
||||
this.islandSignature = islandSignature;
|
||||
this.open = open;
|
||||
|
@ -79,6 +81,14 @@ public class Visit {
|
|||
this.islandMembers = islandMembers;
|
||||
}
|
||||
|
||||
public int getSafeLevel() {
|
||||
return safeLevel;
|
||||
}
|
||||
|
||||
public void setSafeLevel(int safeLevel) {
|
||||
this.safeLevel = safeLevel;
|
||||
}
|
||||
|
||||
public int getRadius() {
|
||||
return islandSize;
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ public class VisitManager {
|
|||
size = configLoad.getInt("Size");
|
||||
}
|
||||
|
||||
createIsland(islandOwnerUUID, new Location[] { fileManager.getLocation(config, "Location.Normal.Island", true), fileManager.getLocation(config, "Location.Nether.Island", true) }, size, configLoad.getStringList("Members").size() + configLoad.getStringList("Operators").size() + 1, new Level(islandOwnerUUID, skyblock), islandSignature, configLoad.getBoolean("Visitor.Open"));
|
||||
createIsland(islandOwnerUUID, new Location[] { fileManager.getLocation(config, "Location.Normal.Island", true), fileManager.getLocation(config, "Location.Nether.Island", true) }, size, configLoad.getStringList("Members").size() + configLoad.getStringList("Operators").size() + 1, getIslandSafeLevel(islandOwnerUUID), new Level(islandOwnerUUID, skyblock), islandSignature, configLoad.getBoolean("Visitor.Open"));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -131,6 +131,31 @@ public class VisitManager {
|
|||
}
|
||||
}
|
||||
|
||||
public int getIslandSafeLevel(UUID islandOwnerUUID) {
|
||||
FileManager fileManager = skyblock.getFileManager();
|
||||
|
||||
Config settingDataConfig = new FileManager.Config(fileManager, new File(skyblock.getDataFolder().toString() + "/setting-data", islandOwnerUUID.toString() + ".yml"));
|
||||
FileConfiguration settingDataConfigLoad = settingDataConfig.getFileConfiguration();
|
||||
|
||||
Config mainConfig = fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"));
|
||||
FileConfiguration mainConfigLoad = mainConfig.getFileConfiguration();
|
||||
|
||||
int safeLevel = 0;
|
||||
|
||||
Map<String, Boolean> settings = new HashMap<>();
|
||||
settings.put("KeepItemsOnDeath", false);
|
||||
settings.put("PvP", true);
|
||||
settings.put("Damage", true);
|
||||
|
||||
for (String settingList : settings.keySet()) {
|
||||
if (mainConfigLoad.getBoolean("Island.Settings." + settingList + ".Enable") && settingDataConfigLoad.getString("Settings.Owner." + settingList) != null && settingDataConfigLoad.getBoolean("Settings.Owner." + settingList) == settings.get(settingList)) {
|
||||
safeLevel++;
|
||||
}
|
||||
}
|
||||
|
||||
return safeLevel;
|
||||
}
|
||||
|
||||
public boolean hasIsland(UUID islandOwnerUUID) {
|
||||
return visitStorage.containsKey(islandOwnerUUID);
|
||||
}
|
||||
|
@ -165,8 +190,8 @@ public class VisitManager {
|
|||
return visitIslands;
|
||||
}
|
||||
|
||||
public void createIsland(UUID islandOwnerUUID, Location[] islandLocations, int islandSize, int islandMembers, Level islandLevel, List<String> islandSignature, boolean open) {
|
||||
visitStorage.put(islandOwnerUUID, new Visit(skyblock, islandOwnerUUID, islandLocations, islandSize, islandMembers, islandLevel, islandSignature, open));
|
||||
public void createIsland(UUID islandOwnerUUID, Location[] islandLocations, int islandSize, int islandMembers, int safeLevel, Level islandLevel, List<String> islandSignature, boolean open) {
|
||||
visitStorage.put(islandOwnerUUID, new Visit(skyblock, islandOwnerUUID, islandLocations, islandSize, islandMembers, safeLevel, islandLevel, islandSignature, open));
|
||||
}
|
||||
|
||||
public void addIsland(UUID islandOwnerUUID, Visit visit) {
|
||||
|
|
|
@ -189,6 +189,20 @@ Island:
|
|||
# [!] If Enabled Players will respawn at the Island they died at. If Disabled
|
||||
# Players will respawn at the Spawn location.
|
||||
Island: true
|
||||
Settings:
|
||||
# When disabled, players will not lose their items when they die at an island and
|
||||
# the setting will be removed from the Island Settings menu.
|
||||
KeepItemsOnDeath:
|
||||
Enable: true
|
||||
# When disabled, players will not take any damage from entities when at an island
|
||||
# and the setting will be removed from the Island Settings menu.
|
||||
PvP:
|
||||
Enable: true
|
||||
# When disabled, players will not take any damage when at an island and the setting
|
||||
# will be removed from the Island Settings menu. This setting discludes entity and
|
||||
# void damage.
|
||||
Damage:
|
||||
Enable: true
|
||||
Admin:
|
||||
Structure:
|
||||
# Item Material used to select positions for a structure.
|
||||
|
|
|
@ -2,7 +2,7 @@ Command:
|
|||
Island:
|
||||
Argument:
|
||||
Unrecognised:
|
||||
Message: "&bSkyBlock &8| &cError&8: &eThat arugment was not recognised."
|
||||
Message: "&bSkyBlock &8| &cError&8: &eThat argument was not recognised."
|
||||
Help:
|
||||
Lines:
|
||||
- "&bSkyBlock &7- &e%type Commands&8:"
|
||||
|
@ -137,9 +137,9 @@ Command:
|
|||
Sent:
|
||||
Message: "&bSkyBlock &8| &aInfo&8: &eYou have invited the player &d%player &eto join your Island. They have &c%time &eto respond."
|
||||
Expired:
|
||||
Message: "&bSkyBlock &8| &aInfo&8: &eThe player &c%player's &edidn't respond to your invite in time."
|
||||
Message: "&bSkyBlock &8| &aInfo&8: &eThe player &c%player &edidn't respond to your invite in time."
|
||||
Disconnected:
|
||||
Message: "&bSkyBlock &8| &aInfo&8: &eThe player &c%player's &edisconnected and didn't respond to your invite."
|
||||
Message: "&bSkyBlock &8| &aInfo&8: &eThe player &c%player &edisconnected and didn't respond to your invite."
|
||||
Target:
|
||||
Received:
|
||||
Message: "&bSkyBlock &8| &aInfo&8: &eYou have been invited to join &d%player's &eIsland. You have &c%time &eto respond."
|
||||
|
@ -422,7 +422,7 @@ Command:
|
|||
Invalid:
|
||||
Message: "&bSkyBlock &8| &cError&8: &eInvalid: /island information [<player>]"
|
||||
Permission:
|
||||
Message: "&bSkyBlock &8| &cError&8: &eYou don't have permission to teleport to other players Islands."
|
||||
Message: "&bSkyBlock &8| &cError&8: &eYou don't have permission to view information on other players islands."
|
||||
Owner:
|
||||
Message: "&bSkyBlock &8| &cError&8: &eYou are not an Island owner."
|
||||
Island:
|
||||
|
@ -1890,6 +1890,8 @@ Menu:
|
|||
Displayname: "&aLeaf Decay"
|
||||
KeepItemsOnDeath:
|
||||
Displayname: "&aKeep Items on Death"
|
||||
Damage:
|
||||
Displayname: "&aDamage"
|
||||
Default:
|
||||
Item:
|
||||
Setting:
|
||||
|
@ -1984,6 +1986,8 @@ Menu:
|
|||
Displayname: "&aHopper Use"
|
||||
ArmorStandPlacement:
|
||||
Displayname: "&aArmorStand Placement"
|
||||
ExperienceOrbPickup:
|
||||
Displayname: "&aExperience Orb Pickup"
|
||||
Information:
|
||||
Categories:
|
||||
Title: "&8Island Information"
|
||||
|
@ -2011,6 +2015,8 @@ Menu:
|
|||
Vote:
|
||||
Word:
|
||||
Empty: "&f&oEmpty"
|
||||
Safe: "&a[Safe]"
|
||||
Unsafe: "&c[Unsafe]"
|
||||
Enabled:
|
||||
Signature:
|
||||
Word:
|
||||
|
@ -2029,6 +2035,8 @@ Menu:
|
|||
- "&7Members&8: &e%members"
|
||||
- "&7Visits&8: &e%visits"
|
||||
- "&7Votes&8: &6%votes"
|
||||
- ""
|
||||
- "&7Safety&8: %safety"
|
||||
Disabled:
|
||||
Lore:
|
||||
- "&7Owner&8: &f%owner"
|
||||
|
@ -2039,6 +2047,8 @@ Menu:
|
|||
- "&7Members&8: &e%members"
|
||||
- "&7Visits&8: &e%visits"
|
||||
- "&7Votes&8: &6%votes"
|
||||
- ""
|
||||
- "&7Safety&8: %safety"
|
||||
Disabled:
|
||||
Signature:
|
||||
Enabled:
|
||||
|
@ -2053,6 +2063,8 @@ Menu:
|
|||
- "&7Level&8: &b%level"
|
||||
- "&7Members&8: &e%members"
|
||||
- "&7Visits&8: &e%visits"
|
||||
- ""
|
||||
- "&7Safety&8: %safety"
|
||||
Disabled:
|
||||
Lore:
|
||||
- "&7Owner&8: &f%owner"
|
||||
|
@ -2062,6 +2074,8 @@ Menu:
|
|||
- "&7Level&8: &b%level"
|
||||
- "&7Members&8: &e%members"
|
||||
- "&7Visits&8: &e%visits"
|
||||
- ""
|
||||
- "&7Safety&8: %safety"
|
||||
Members:
|
||||
Title: "&8Island Information - Members"
|
||||
Item:
|
||||
|
@ -2344,6 +2358,8 @@ Menu:
|
|||
Vote:
|
||||
Word:
|
||||
Empty: "&f&oEmpty"
|
||||
Safe: "&a[Safe]"
|
||||
Unsafe: "&c[Unsafe]"
|
||||
Enabled:
|
||||
Signature:
|
||||
Word:
|
||||
|
@ -2362,6 +2378,8 @@ Menu:
|
|||
- "&7Visits&8: &e%visits"
|
||||
- "&7Votes&8: &6%votes"
|
||||
- ""
|
||||
- "&7Safety&8: %safety"
|
||||
- ""
|
||||
- "&eClick to visit Island!"
|
||||
Visitor:
|
||||
Lore:
|
||||
|
@ -2375,6 +2393,8 @@ Menu:
|
|||
- "&7Visits&8: &e%visits"
|
||||
- "&7Votes&8: &6%votes"
|
||||
- ""
|
||||
- "&7Safety&8: %safety"
|
||||
- ""
|
||||
- "&eLeft-Click to visit Island!"
|
||||
- "&eRight-Click to %action vote!"
|
||||
Disabled:
|
||||
|
@ -2387,6 +2407,8 @@ Menu:
|
|||
- "&7Visits&8: &e%visits"
|
||||
- "&7Votes&8: &6%votes"
|
||||
- ""
|
||||
- "&7Safety&8: %safety"
|
||||
- ""
|
||||
- "&eClick to visit Island!"
|
||||
Visitor:
|
||||
Lore:
|
||||
|
@ -2397,6 +2419,8 @@ Menu:
|
|||
- "&7Visits&8: &e%visits"
|
||||
- "&7Votes&8: &6%votes"
|
||||
- ""
|
||||
- "&7Safety&8: %safety"
|
||||
- ""
|
||||
- "&eLeft-Click to visit Island!"
|
||||
- "&eRight-Click to %action vote!"
|
||||
Disabled:
|
||||
|
@ -2412,6 +2436,8 @@ Menu:
|
|||
- "&7Members&8: &e%members"
|
||||
- "&7Visits&8: &e%visits"
|
||||
- ""
|
||||
- "&7Safety&8: %safety"
|
||||
- ""
|
||||
- "&eClick to visit Island!"
|
||||
Disabled:
|
||||
Lore:
|
||||
|
@ -2421,6 +2447,8 @@ Menu:
|
|||
- "&7Members&8: &e%members"
|
||||
- "&7Visits&8: &e%visits"
|
||||
- ""
|
||||
- "&7Safety&8: %safety"
|
||||
- ""
|
||||
- "&eClick to visit Island!"
|
||||
Visitors:
|
||||
Title: "&8Island Visitors"
|
||||
|
@ -2829,6 +2857,14 @@ Menu:
|
|||
- "&7to be when an Island is created."
|
||||
- ""
|
||||
- "&eClick to Edit Settings!"
|
||||
Coop:
|
||||
Displayname: "&aCoop Settings"
|
||||
Lore:
|
||||
- "&7Edit and decide what you want"
|
||||
- "&7the default Coop permissions"
|
||||
- "&7to be when an Island is created."
|
||||
- ""
|
||||
- "&eClick to Edit Settings!"
|
||||
Owner:
|
||||
Displayname: "&aIsland Settings"
|
||||
Lore:
|
||||
|
@ -2847,6 +2883,11 @@ Menu:
|
|||
Item:
|
||||
Return:
|
||||
Displayname: "&cClick to Return"
|
||||
Coop:
|
||||
Title: "&8Settings Editor - Coop"
|
||||
Item:
|
||||
Return:
|
||||
Displayname: "&cClick to Return"
|
||||
Operator:
|
||||
Title: "&8Settings Editor - Operator"
|
||||
Item:
|
||||
|
@ -2872,6 +2913,10 @@ Menu:
|
|||
Displayname: "&aEdit Visitor Settings"
|
||||
Member:
|
||||
Displayname: "&aEdit Member Settings"
|
||||
Coop:
|
||||
Displayname: "&aEdit Coop Settings"
|
||||
CoopPlayers:
|
||||
Displayname: "&aCoop Players"
|
||||
Island:
|
||||
Displayname: "&aEdit Island Settings"
|
||||
MainSpawn:
|
||||
|
@ -2911,6 +2956,8 @@ Menu:
|
|||
Displayname: "&aLeaf Decay"
|
||||
KeepItemsOnDeath:
|
||||
Displayname: "&aKeep Items on Death"
|
||||
Damage:
|
||||
Displayname: "&aDamage"
|
||||
Default:
|
||||
Item:
|
||||
Setting:
|
||||
|
@ -2927,7 +2974,7 @@ Menu:
|
|||
Displayname: "&aPlace Blocks"
|
||||
Anvil:
|
||||
Displayname: "&aAnvil Use"
|
||||
ArmorStand:
|
||||
ArmorStandUse:
|
||||
Displayname: "&aArmorStand Use"
|
||||
Beacon:
|
||||
Displayname: "&aBeacon Use"
|
||||
|
@ -3002,4 +3049,8 @@ Menu:
|
|||
Portal:
|
||||
Displayname: "&aPortal Use"
|
||||
Hopper:
|
||||
Displayname: "&aHopper Use"
|
||||
Displayname: "&aHopper Use"
|
||||
ArmorStandPlacement:
|
||||
Displayname: "&aArmorStand Placement"
|
||||
ExperienceOrbPickup:
|
||||
Displayname: "&aExperience Orb Pickup"
|
|
@ -1,6 +1,6 @@
|
|||
name: SkyBlock
|
||||
main: me.goodandevil.skyblock.SkyBlock
|
||||
version: 38
|
||||
version: 39
|
||||
api-version: 1.13
|
||||
description: A unique SkyBlock plugin
|
||||
author: GoodAndEvil
|
||||
|
|
|
@ -42,6 +42,7 @@ Settings:
|
|||
Portal: false
|
||||
Hopper: false
|
||||
ArmorStandPlacement: false
|
||||
ExperienceOrbPickup: false
|
||||
Member:
|
||||
Destroy: true
|
||||
Place: true
|
||||
|
@ -85,6 +86,7 @@ Settings:
|
|||
Portal: true
|
||||
Hopper: true
|
||||
ArmorStandPlacement: true
|
||||
ExperienceOrbPickup: true
|
||||
Operator:
|
||||
Invite: true
|
||||
Kick: true
|
||||
|
@ -142,6 +144,7 @@ Settings:
|
|||
Portal: true
|
||||
Hopper: true
|
||||
ArmorStandPlacement: true
|
||||
ExperienceOrbPickup: true
|
||||
Owner:
|
||||
NaturalMobSpawning: true
|
||||
MobGriefing: false
|
||||
|
@ -149,4 +152,5 @@ Settings:
|
|||
Explosions: false
|
||||
FireSpread: true
|
||||
LeafDecay: true
|
||||
KeepItemsOnDeath: true
|
||||
KeepItemsOnDeath: true
|
||||
Damage: true
|
Loading…
Reference in New Issue