# Added Placeholder support to Essentials Chat (Requires open curly bracket and close curly bracket).
# Fixed NPE when adding Placeholders to holograms because the hologram is an world entity.
# Fixed the 'Island Visit' menu not sorting the islands correctly when changing the sort.
# Fixed the 'Vote Leaderboard' not showing the positioning the islands correctly.
# Fixed 'Next' or 'Previous' page item not working in the 'Island Visit' menu.
# Fixed the command '/island level <player>' not showing the players level.
# Fixed IOOBE when there are no tiers in the 'Upgrade Editor - Size' menu.
This commit is contained in:
Unknown 2018-12-02 19:24:41 +00:00
parent 9034f7c8fe
commit dd50421e2b
12 changed files with 404 additions and 365 deletions

View File

@ -2,7 +2,7 @@
<groupId>com.songoda</groupId>
<artifactId>SkyBlock</artifactId>
<modelVersion>4.0.0</modelVersion>
<version>35</version>
<version>36</version>
<build>
<defaultGoal>clean package</defaultGoal>
<plugins>

View File

@ -67,7 +67,7 @@ public class LevelCommand extends SubCommand {
if (visitManager.hasIsland(islandOwnerUUID)) {
me.goodandevil.skyblock.visit.Visit visit = visitManager.getIsland(islandOwnerUUID);
messageManager.sendMessage(player, configLoad.getString("Command.Island.Level.Level.Message").replace("%player", targetPlayerName).replace("%level", "" + visit.getLevel()));
messageManager.sendMessage(player, configLoad.getString("Command.Island.Level.Level.Message").replace("%player", targetPlayerName).replace("%level", "" + NumberUtil.formatNumber(visit.getLevel().getLevel())));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
return;

View File

@ -7,6 +7,7 @@ import java.util.Iterator;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.configuration.file.FileConfiguration;
@ -74,20 +75,23 @@ public class HologramManager {
FileConfiguration languageConfigLoad = fileManager.getConfig(new File(skyblock.getDataFolder(), "language.yml")).getFileConfiguration();
if (locationsConfigLoad.getString("Location.Hologram.Leaderboard." + type) != null) {
List<Leaderboard> leaderboardPlayers = new ArrayList<>();
List<String> hologramLines = new ArrayList<>();
Leaderboard.Type leaderboardType = null;
if (type == HologramType.Level) {
leaderboardPlayers.addAll(leaderboardManager.getLeaderboard(Leaderboard.Type.Level));
leaderboardType = Leaderboard.Type.Level;
} else if (type == HologramType.Votes) {
leaderboardPlayers.addAll(leaderboardManager.getLeaderboard(Leaderboard.Type.Votes));
leaderboardType = Leaderboard.Type.Votes;
}
hologramLines.add(messageManager.replaceMessage(null, languageConfigLoad.getString("Hologram.Leaderboard." + type.name() + ".Header")));
for (int i = 0; i < 10; i++) {
if (i < leaderboardPlayers.size()) {
Leaderboard leaderboard = leaderboardPlayers.get(i);
Leaderboard leaderboard = leaderboardManager.getLeaderboardFromPosition(leaderboardType, i);
if (leaderboard == null) {
hologramLines.add(messageManager.replaceMessage(null, languageConfigLoad.getString("Hologram.Leaderboard." + type.name() + ".Unclaimed").replace("%position", "" + (i+1))));
} else {
Visit visit = leaderboard.getVisit();
Player targetPlayer = Bukkit.getServer().getPlayer(visit.getOwnerUUID());
@ -101,12 +105,10 @@ public class HologramManager {
if (type == HologramType.Level) {
Level level = visit.getLevel();
hologramLines.add(messageManager.replaceMessage(null, languageConfigLoad.getString("Hologram.Leaderboard." + type.name() + ".Claimed").replace("%position", "" + (i+1)).replace("%player", islandOwnerName).replace("%level", NumberUtil.formatNumber(level.getLevel())).replace("%points", NumberUtil.formatNumber(level.getPoints()))));
hologramLines.add(ChatColor.translateAlternateColorCodes('&', languageConfigLoad.getString("Hologram.Leaderboard." + type.name() + ".Claimed").replace("%position", "" + (i+1)).replace("%player", islandOwnerName).replace("%level", NumberUtil.formatNumber(level.getLevel())).replace("%points", NumberUtil.formatNumber(level.getPoints()))));
} else if (type == HologramType.Votes) {
hologramLines.add(messageManager.replaceMessage(null, languageConfigLoad.getString("Hologram.Leaderboard." + type.name() + ".Claimed").replace("%position", "" + (i+1)).replace("%player", islandOwnerName).replace("%votes", "" + NumberUtil.formatNumber(visit.getVoters().size()))));
hologramLines.add(ChatColor.translateAlternateColorCodes('&', languageConfigLoad.getString("Hologram.Leaderboard." + type.name() + ".Claimed").replace("%position", "" + (i+1)).replace("%player", islandOwnerName).replace("%votes", "" + NumberUtil.formatNumber(visit.getVoters().size()))));
}
} else {
hologramLines.add(messageManager.replaceMessage(null, languageConfigLoad.getString("Hologram.Leaderboard." + type.name() + ".Unclaimed").replace("%position", "" + (i+1))));
}
}
@ -220,19 +222,21 @@ public class HologramManager {
continue;
}
List<Leaderboard> leaderboardPlayers = new ArrayList<>();
Leaderboard.Type leaderboardType = null;
if (hologramTypeList == HologramType.Level) {
leaderboardPlayers.addAll(leaderboardManager.getLeaderboard(Leaderboard.Type.Level));
leaderboardType = Leaderboard.Type.Level;
} else if (hologramTypeList == HologramType.Votes) {
leaderboardPlayers.addAll(leaderboardManager.getLeaderboard(Leaderboard.Type.Votes));
leaderboardType = Leaderboard.Type.Votes;
}
for (int i = 0; i < 10; i++) {
Leaderboard leaderboard = leaderboardManager.getLeaderboardFromPosition(leaderboardType, i);
int hologramLine = 10 - i;
if (i < leaderboardPlayers.size()) {
Leaderboard leaderboard = leaderboardPlayers.get(i);
if (leaderboard == null) {
hologram.setLine(hologramLine, messageManager.replaceMessage(null, configLoad.getString("Hologram.Leaderboard." + hologramTypeList.name() + ".Unclaimed").replace("%position", "" + (i+1))));
} else {
Visit visit = leaderboard.getVisit();
Player targetPlayer = Bukkit.getServer().getPlayer(visit.getOwnerUUID());
@ -246,12 +250,10 @@ public class HologramManager {
if (hologramTypeList == HologramType.Level) {
Level level = visit.getLevel();
hologram.setLine(hologramLine, messageManager.replaceMessage(null, configLoad.getString("Hologram.Leaderboard." + hologramTypeList.name() + ".Claimed").replace("%position", "" + (i+1)).replace("%player", islandOwnerName).replace("%level", NumberUtil.formatNumber(level.getLevel())).replace("%points", NumberUtil.formatNumber(level.getPoints()))));
hologram.setLine(hologramLine, ChatColor.translateAlternateColorCodes('&', configLoad.getString("Hologram.Leaderboard." + hologramTypeList.name() + ".Claimed").replace("%position", "" + (i+1)).replace("%player", islandOwnerName).replace("%level", NumberUtil.formatNumber(level.getLevel())).replace("%points", NumberUtil.formatNumber(level.getPoints()))));
} else if (hologramTypeList == HologramType.Votes) {
hologram.setLine(hologramLine, messageManager.replaceMessage(null, configLoad.getString("Hologram.Leaderboard." + hologramTypeList.name() + ".Claimed").replace("%position", "" + (i+1)).replace("%player", islandOwnerName).replace("%votes", "" + NumberUtil.formatNumber(visit.getVoters().size()))));
hologram.setLine(hologramLine, ChatColor.translateAlternateColorCodes('&', configLoad.getString("Hologram.Leaderboard." + hologramTypeList.name() + ".Claimed").replace("%position", "" + (i+1)).replace("%player", islandOwnerName).replace("%votes", "" + NumberUtil.formatNumber(visit.getVoters().size()))));
}
} else {
hologram.setLine(hologramLine, messageManager.replaceMessage(null, configLoad.getString("Hologram.Leaderboard." + hologramTypeList.name() + ".Unclaimed").replace("%position", "" + (i+1))));
}
}
}

View File

@ -78,6 +78,18 @@ public class LeaderboardManager {
return leaderboardIslands;
}
public Leaderboard getLeaderboardFromPosition(Leaderboard.Type type, int position) {
for (Leaderboard leaderboardPlayerList : leaderboardStorage) {
if (leaderboardPlayerList.getType() == type) {
if (leaderboardPlayerList.getPosition() == position) {
return leaderboardPlayerList;
}
}
}
return null;
}
public List<Leaderboard> getLeaderboards() {
return leaderboardStorage;
}

View File

@ -7,6 +7,7 @@ import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
@ -17,6 +18,7 @@ import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.message.MessageManager;
import me.goodandevil.skyblock.placeholder.PlaceholderManager;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
@ -28,16 +30,34 @@ public class Chat implements Listener {
this.skyblock = skyblock;
}
@EventHandler
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onAsyncPlayerChat(AsyncPlayerChatEvent event) {
Player player = event.getPlayer();
PlaceholderManager placeholderManager = skyblock.getPlaceholderManager();
PlayerDataManager playerDataManager = skyblock.getPlayerDataManager();
MessageManager messageManager = skyblock.getMessageManager();
IslandManager islandManager = skyblock.getIslandManager();
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
Island island = null;
if (playerData.getOwner() != null) {
island = skyblock.getIslandManager().getIsland(playerData.getOwner());
}
String messageFormat = event.getFormat();
for (String placeholderList : placeholderManager.getPlaceholders()) {
String placeholder = "{" + placeholderList + "}";
if (messageFormat.contains(placeholder)) {
messageFormat = messageFormat.replace(placeholder, placeholderManager.getPlaceholder(player, placeholderList));
}
}
event.setFormat(messageFormat);
if (playerData.isChat()) {
event.setCancelled(true);
@ -45,7 +65,6 @@ public class Chat implements Listener {
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
Island island = skyblock.getIslandManager().getIsland(playerData.getOwner());
String islandRole = "";
if (island.isRole(Role.Member, player.getUniqueId())) {

View File

@ -2,11 +2,9 @@ package me.goodandevil.skyblock.menus;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.UUID;
import org.bukkit.Bukkit;
@ -122,175 +120,191 @@ public class Visit {
event.setWillClose(false);
event.setWillDestroy(false);
} else if ((is.getType() == SkullUtil.createItemStack().getType()) && (is.hasItemMeta())) {
VisitManager visitManager = skyblock.getVisitManager();
IslandManager islandManager = skyblock.getIslandManager();
String targetPlayerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
UUID targetPlayerUUID;
Player targetPlayer = Bukkit.getServer().getPlayer(targetPlayerName);
if (targetPlayer == null) {
targetPlayerUUID = new OfflinePlayer(targetPlayerName).getUniqueId();
} else {
targetPlayerUUID = targetPlayer.getUniqueId();
}
if (visitManager.hasIsland(targetPlayerUUID)) {
me.goodandevil.skyblock.visit.Visit visit = visitManager.getIsland(targetPlayerUUID);
if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Visit.Item.Previous.Displayname")))) {
playerData.setPage(playerData.getPage() - 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
if (visit.isOpen()) {
if (!islandManager.containsIsland(targetPlayerUUID)) {
islandManager.loadIsland(targetPlayerUUID);
}
Island island = islandManager.getIsland(targetPlayerUUID);
if ((!island.isRole(Role.Member, player.getUniqueId()) && !island.isRole(Role.Operator, player.getUniqueId()) && !island.isRole(Role.Owner, player.getUniqueId())) && fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Visitor.Vote")) {
if (event.getClick() == ClickType.RIGHT) {
if (playerData.getIsland() != null && playerData.getIsland().equals(island.getOwnerUUID())) {
List<UUID> islandVotes = visit.getVoters();
if (islandVotes.contains(player.getUniqueId())) {
visit.removeVoter(player.getUniqueId());
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
}
}, 1L);
} else if (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Visit.Item.Next.Displayname")))) {
playerData.setPage(playerData.getPage() + 1);
soundManager.playSound(player, Sounds.ARROW_HIT.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
}
}, 1L);
} else {
String targetPlayerName = ChatColor.stripColor(is.getItemMeta().getDisplayName());
UUID targetPlayerUUID;
Player targetPlayer = Bukkit.getServer().getPlayer(targetPlayerName);
if (targetPlayer == null) {
targetPlayerUUID = new OfflinePlayer(targetPlayerName).getUniqueId();
} else {
targetPlayerUUID = targetPlayer.getUniqueId();
}
if (visitManager.hasIsland(targetPlayerUUID)) {
me.goodandevil.skyblock.visit.Visit visit = visitManager.getIsland(targetPlayerUUID);
if (visit.isOpen()) {
if (!islandManager.containsIsland(targetPlayerUUID)) {
islandManager.loadIsland(targetPlayerUUID);
}
Island island = islandManager.getIsland(targetPlayerUUID);
if ((!island.isRole(Role.Member, player.getUniqueId()) && !island.isRole(Role.Operator, player.getUniqueId()) && !island.isRole(Role.Owner, player.getUniqueId())) && fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml")).getFileConfiguration().getBoolean("Island.Visitor.Vote")) {
if (event.getClick() == ClickType.RIGHT) {
if (playerData.getIsland() != null && playerData.getIsland().equals(island.getOwnerUUID())) {
List<UUID> islandVotes = visit.getVoters();
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Vote.Removed.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.EXPLODE.bukkitSound(), 1.0F, 1.0F);
} else {
visit.addVoter(player.getUniqueId());
if (islandVotes.contains(player.getUniqueId())) {
visit.removeVoter(player.getUniqueId());
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Vote.Removed.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.EXPLODE.bukkitSound(), 1.0F, 1.0F);
} else {
visit.addVoter(player.getUniqueId());
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Vote.Added.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
}
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Vote.Added.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.LEVEL_UP.bukkitSound(), 1.0F, 1.0F);
}
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
}
}, 1L);
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Vote.Island.Message"));
soundManager.playSound(player, Sounds.WOOD_CLICK.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
}
}, 1L);
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Vote.Island.Message"));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
}
islandManager.unloadIsland(targetPlayerUUID);
return;
} else if (event.getClick() != ClickType.LEFT) {
return;
}
}
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(player.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Already.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
islandManager.unloadIsland(targetPlayerUUID);
return;
} else if (event.getClick() != ClickType.LEFT) {
return;
}
}
for (Location.World worldList : Location.World.values()) {
if (LocationUtil.isLocationAtLocationRadius(player.getLocation(), island.getLocation(worldList, Location.Environment.Island), island.getRadius())) {
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Already.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
event.setWillClose(false);
event.setWillDestroy(false);
return;
}
}
islandManager.visitIsland(player, island);
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Teleported.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.ENDERMAN_TELEPORT.bukkitSound(), 1.0F, 1.0F);
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Closed.Menu.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
islandManager.visitIsland(player, island);
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Teleported.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.ENDERMAN_TELEPORT.bukkitSound(), 1.0F, 1.0F);
} else {
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Closed.Menu.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
}
}, 1L);
}
return;
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
}
}, 1L);
}
return;
}
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Exist.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
}
}, 1L);
}
messageManager.sendMessage(player, configLoad.getString("Island.Visit.Exist.Message").replace("%player", targetPlayerName));
soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(skyblock, new Runnable() {
@Override
public void run() {
open(player, (Visit.Type) playerData.getType(), (Visit.Sort) playerData.getSort());
}
}, 1L);
}
}
}
});
Map<UUID, me.goodandevil.skyblock.visit.Visit> displayedIslands = new HashMap<>();
Map<UUID, me.goodandevil.skyblock.visit.Visit> visitIslands = visitManager.getOpenIslands();
Map<UUID, me.goodandevil.skyblock.visit.Visit> openIslands = visitManager.getOpenIslands();
List<me.goodandevil.skyblock.visit.Visit> visitIslands = new ArrayList<>();
if (type == Visit.Type.Solo) {
for (UUID visitIslandList : visitIslands.keySet()) {
if (visitIslands.get(visitIslandList).getMembers() != 1) {
visitIslands.remove(visitIslandList);
}
}
} else if (type == Visit.Type.Team) {
for (UUID visitIslandList : visitIslands.keySet()) {
if (visitIslands.get(visitIslandList).getMembers() == 1) {
visitIslands.remove(visitIslandList);
for (int i = 0; i < openIslands.size(); i++) {
UUID islandOwnerUUID = (UUID) openIslands.keySet().toArray()[i];
me.goodandevil.skyblock.visit.Visit visit = openIslands.get(islandOwnerUUID);
if (type == Visit.Type.Solo) {
if (visit.getMembers() != 1) {
continue;
}
} else if (type == Visit.Type.Team) {
if (visit.getMembers() == 1) {
continue;
}
}
visitIslands.add(visit);
}
if (sort == Visit.Sort.Default) {
displayedIslands.putAll(visitIslands);
} else if (sort == Visit.Sort.Players || sort == Visit.Sort.Level || sort == Visit.Sort.Members || sort == Visit.Sort.Visits || sort == Visit.Sort.Votes) {
Map<Integer, List<UUID>> sortedIslands = new TreeMap<>(Collections.reverseOrder());
for (UUID visitIslandList : visitIslands.keySet()) {
int islandInteger = 0;
if (sort == Visit.Sort.Players) {
if (islandManager.containsIsland(visitIslandList)) {
islandInteger = islandManager.getPlayersAtIsland(islandManager.getIsland(visitIslandList)).size();
openIslands.clear();
if (sort == Visit.Sort.Players || sort == Visit.Sort.Level || sort == Visit.Sort.Members || sort == Visit.Sort.Visits || sort == Visit.Sort.Votes) {
visitIslands.sort(new Comparator<me.goodandevil.skyblock.visit.Visit>() {
@Override
public int compare(me.goodandevil.skyblock.visit.Visit visit1, me.goodandevil.skyblock.visit.Visit visit2) {
if (sort == Visit.Sort.Players) {
int playersAtIsland1 = 0;
if (islandManager.containsIsland(visit1.getOwnerUUID())) {
playersAtIsland1 = islandManager.getPlayersAtIsland(islandManager.getIsland(visit1.getOwnerUUID())).size();
}
int playersAtIsland2 = 0;
if (islandManager.containsIsland(visit2.getOwnerUUID())) {
playersAtIsland2 = islandManager.getPlayersAtIsland(islandManager.getIsland(visit2.getOwnerUUID())).size();
}
return Integer.valueOf(playersAtIsland2).compareTo(playersAtIsland1);
} else if (sort == Visit.Sort.Level) {
return Integer.valueOf(visit2.getLevel().getLevel()).compareTo(visit1.getLevel().getLevel());
} else if (sort == Visit.Sort.Members) {
return Integer.valueOf(visit2.getMembers()).compareTo(visit1.getMembers());
} else if (sort == Visit.Sort.Visits) {
return Integer.valueOf(visit2.getVisitors().size()).compareTo(visit1.getVisitors().size());
} else if (sort == Visit.Sort.Votes) {
return Integer.valueOf(visit2.getVoters().size()).compareTo(visit1.getVoters().size());
}
} else if (sort == Visit.Sort.Level) {
islandInteger = visitIslands.get(visitIslandList).getLevel().getLevel();
} else if (sort == Visit.Sort.Members) {
islandInteger = visitIslands.get(visitIslandList).getMembers();
} else if (sort == Visit.Sort.Visits) {
islandInteger = visitIslands.get(visitIslandList).getVisitors().size();
} else if (sort == Visit.Sort.Votes) {
islandInteger = visitIslands.get(visitIslandList).getVoters().size();
return 0;
}
List<UUID> identicalIslands = new ArrayList<>();
if (sortedIslands.containsKey(islandInteger)) {
identicalIslands.addAll(sortedIslands.get(islandInteger));
}
identicalIslands.add(visitIslandList);
sortedIslands.put(islandInteger, identicalIslands);
}
for (int sortedIslandList : sortedIslands.keySet()) {
List<UUID> identicalIslands = sortedIslands.get(sortedIslandList);
for (UUID identicalIslandList : identicalIslands) {
displayedIslands.put(identicalIslandList, visitIslands.get(identicalIslandList));
}
}
});
}
int playerMenuPage = playerDataManager.getPlayerData(player).getPage(), nextEndIndex = displayedIslands.size() - playerMenuPage * 36, totalIslands = visitManager.getIslands().size();
int playerMenuPage = playerDataManager.getPlayerData(player).getPage(), nextEndIndex = visitIslands.size() - playerMenuPage * 36, totalIslands = visitManager.getIslands().size();
nInv.addItem(nInv.createItem(Materials.OAK_FENCE_GATE.parseItem(), configLoad.getString("Menu.Visit.Item.Exit.Displayname"), null, null, null, null), 0, 8);
nInv.addItem(nInv.createItem(new ItemStack(Material.HOPPER), configLoad.getString("Menu.Visit.Item.Type.Displayname"), configLoad.getStringList("Menu.Visit.Item.Type.Lore"), nInv.createItemLoreVariable(new String[] { "%type#" + StringUtil.capatilizeUppercaseLetters(type.name()) }), null, null), 3);
@ -306,30 +320,28 @@ public class Visit {
nInv.addItem(nInv.createItem(SkullUtil.create("wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8=", "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ=="), configLoad.getString("Menu.Visit.Item.Next.Displayname"), null, null, null, null), 7);
}
if (displayedIslands.size() == 0) {
if (visitIslands.size() == 0) {
nInv.addItem(nInv.createItem(new ItemStack(Material.BARRIER), configLoad.getString("Menu.Visit.Item.Nothing.Displayname"), null, null, null, null), 31);
} else {
Config config = fileManager.getConfig(new File(skyblock.getDataFolder(), "config.yml"));
int index = playerMenuPage * 36 - 36, endIndex = index >= displayedIslands.size() ? displayedIslands.size() - 1 : index + 36, inventorySlot = 17, playerCapacity = config.getFileConfiguration().getInt("Island.Visitor.Capacity");
int index = playerMenuPage * 36 - 36, endIndex = index >= visitIslands.size() ? visitIslands.size() - 1 : index + 36, inventorySlot = 17, playerCapacity = config.getFileConfiguration().getInt("Island.Visitor.Capacity");
boolean voteEnabled = config.getFileConfiguration().getBoolean("Island.Visitor.Vote");
boolean signatureEnabled = config.getFileConfiguration().getBoolean("Island.Visitor.Signature.Enable");
for (; index < endIndex; index++) {
if (displayedIslands.size() > index) {
if (visitIslands.size() > index) {
inventorySlot++;
UUID targetPlayerUUID = (UUID) displayedIslands.keySet().toArray()[index];
me.goodandevil.skyblock.visit.Visit visit = displayedIslands.get(targetPlayerUUID);
Player targetPlayer = Bukkit.getServer().getPlayer(targetPlayerUUID);
me.goodandevil.skyblock.visit.Visit visit = visitIslands.get(index);
Player targetPlayer = Bukkit.getServer().getPlayer(visit.getOwnerUUID());
String targetPlayerName;
String[] targetPlayerTexture;
if (targetPlayer == null) {
OfflinePlayer offlinePlayer = new OfflinePlayer(targetPlayerUUID);
OfflinePlayer offlinePlayer = new OfflinePlayer(visit.getOwnerUUID());
targetPlayerName = offlinePlayer.getName();
targetPlayerTexture = offlinePlayer.getTexture();
} else {
@ -339,8 +351,8 @@ public class Visit {
Island island = null;
if (islandManager.containsIsland(targetPlayerUUID)) {
island = islandManager.getIsland(targetPlayerUUID);
if (islandManager.containsIsland(visit.getOwnerUUID())) {
island = islandManager.getIsland(visit.getOwnerUUID());
}
List<String> itemLore = new ArrayList<>();

View File

@ -96,7 +96,6 @@ public class Upgrade {
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops).get(0);
viewer.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Drops);
} else if ((is.getType() == Material.BEACON) && (is.hasItemMeta()) && (is.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Admin.Upgrade.Upgrades.Item.Size.Displayname"))))) {
upgrade = upgradeManager.getUpgrades(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size).get(0);
viewer.setType(Upgrade.Viewer.Type.Size);
viewer.setUpgrade(me.goodandevil.skyblock.upgrade.Upgrade.Type.Size);

View File

@ -2,7 +2,6 @@ package me.goodandevil.skyblock.placeholder;
import java.io.File;
import java.util.List;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@ -13,10 +12,7 @@ import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Level;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.leaderboard.Leaderboard;
import me.goodandevil.skyblock.leaderboard.LeaderboardManager;
import me.goodandevil.skyblock.utils.NumberUtil;
@ -48,8 +44,8 @@ public class EZPlaceholder extends PlaceholderExpansion {
}
public String onPlaceholderRequest(Player player, String identifier) {
PlaceholderManager placeholderManager = skyblock.getPlaceholderManager();
LeaderboardManager leaderboardManager = skyblock.getLeaderboardManager();
IslandManager islandManager = skyblock.getIslandManager();
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
@ -106,88 +102,7 @@ public class EZPlaceholder extends PlaceholderExpansion {
return "";
}
if (islandManager.hasIsland(player)) {
Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
if (identifier.equalsIgnoreCase("island_size")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_size.Non-empty.Message").replace("%placeholder", "" + island.getSize()));
} else if (identifier.equalsIgnoreCase("island_radius")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_radius.Non-empty.Message").replace("%placeholder", "" + island.getRadius()));
} else if (identifier.equalsIgnoreCase("island_level")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_level.Non-empty.Message").replace("%placeholder", "" + island.getLevel().getLevel()));
} else if (identifier.equalsIgnoreCase("island_points")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_points.Non-empty.Message").replace("%placeholder", "" + island.getLevel().getPoints()));
} else if (identifier.equalsIgnoreCase("island_role")) {
for (Role roleList : Role.values()) {
if (island.isRole(roleList, player.getUniqueId())) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_role.Non-empty.Message").replace("%placeholder", roleList.name()));
}
}
} else if (identifier.equalsIgnoreCase("island_owner")) {
UUID islandOwnerUUID = island.getOwnerUUID();
Player targetPlayer = Bukkit.getServer().getPlayer(islandOwnerUUID);
if (targetPlayer == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Non-empty.Other.Message").replace("%placeholder", Bukkit.getServer().getOfflinePlayer(islandOwnerUUID).getName()));
} else {
if (targetPlayer.getName().equals(player.getName())) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Non-empty.Yourself.Message").replace("%placeholder", targetPlayer.getName()));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Non-empty.Other.Message").replace("%placeholder", targetPlayer.getName()));
}
}
} else if (identifier.equalsIgnoreCase("island_biome")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_biome.Non-empty.Message").replace("%placeholder", island.getBiomeName()));
} else if (identifier.equalsIgnoreCase("island_time")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_time.Non-empty.Message").replace("%placeholder", "" + island.getTime()));
} else if (identifier.equalsIgnoreCase("island_weather")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_weather.Non-empty.Message").replace("%placeholder", "" + island.getWeatherName()));
} else if (identifier.equalsIgnoreCase("island_bans")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_bans.Non-empty.Message").replace("%placeholder", "" + island.getBan().getBans().size()));
} else if (identifier.equalsIgnoreCase("island_members_total")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members_total.Non-empty.Message").replace("%placeholder", "" + (island.getRole(Role.Member).size() + island.getRole(Role.Operator).size() + 1)));
} else if (identifier.equalsIgnoreCase("island_members")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members.Non-empty.Message").replace("%placeholder", "" + island.getRole(Role.Member).size()));
} else if (identifier.equalsIgnoreCase("island_operators")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_operators.Non-empty.Message").replace("%placeholder", "" + island.getRole(Role.Operator).size()));
} else if (identifier.equalsIgnoreCase("island_visitors")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_visitors.Non-empty.Message").replace("%placeholder", "" + island.getVisitors().size()));
}
return null;
}
if (identifier.equalsIgnoreCase("island_size")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_size.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_radius")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_radius.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_level")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_level.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_points")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_points.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_role")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_role.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_owner")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_biome")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_biome.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_time")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_time.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_weather")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_weather.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_bans")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_bans.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_members_total")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members_total.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_members")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_operators")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_operators.Empty.Message"));
} else if (identifier.equalsIgnoreCase("island_visitors")) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_visitors.Empty.Message"));
}
return null;
return placeholderManager.getPlaceholder(player, identifier);
}
}

View File

@ -2,7 +2,6 @@ package me.goodandevil.skyblock.placeholder;
import java.io.File;
import java.util.List;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@ -15,10 +14,7 @@ import be.maximvdw.placeholderapi.PlaceholderReplacer;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Level;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.leaderboard.Leaderboard;
import me.goodandevil.skyblock.leaderboard.LeaderboardManager;
import me.goodandevil.skyblock.utils.NumberUtil;
@ -34,8 +30,8 @@ public class MVdWPlaceholder {
}
public void register() {
PlaceholderManager placeholderManager = skyblock.getPlaceholderManager();
LeaderboardManager leaderboardManager = skyblock.getLeaderboardManager();
IslandManager islandManager = skyblock.getIslandManager();
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
@ -112,11 +108,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
return "" + islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getSize();
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_size.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -129,11 +121,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
return "" + islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getRadius();
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_radius.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -146,11 +134,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
return "" + islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getLevel().getLevel();
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_level.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -163,11 +147,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_points.Non-empty.Message").replace("%placeholder", "" + islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getLevel().getPoints()));
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_points.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -180,17 +160,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
for (Role roleList : Role.values()) {
if (island.isRole(roleList, player.getUniqueId())) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_role.Non-empty.Message").replace("%placeholder", roleList.name()));
}
}
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_role.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -203,22 +173,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
UUID islandOwnerUUID = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getOwnerUUID();
Player targetPlayer = Bukkit.getServer().getPlayer(islandOwnerUUID);
if (targetPlayer == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Non-empty.Other.Message").replace("%placeholder", Bukkit.getServer().getOfflinePlayer(islandOwnerUUID).getName()));
} else {
if (targetPlayer.getName().equals(player.getName())) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Non-empty.Yourself.Message").replace("%placeholder", targetPlayer.getName()));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Non-empty.Other.Message").replace("%placeholder", targetPlayer.getName()));
}
}
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -231,11 +186,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_biome.Non-empty.Message").replace("%placeholder", islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getBiomeName()));
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_biome.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -248,11 +199,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_time.Non-empty.Message").replace("%placeholder", "" + islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getTime()));
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_time.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -265,11 +212,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_weather.Non-empty.Message").replace("%placeholder", islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getWeatherName()));
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_weather.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -282,11 +225,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_bans.Non-empty.Message").replace("%placeholder", "" + islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getBan().getBans().size()));
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_bans.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -299,12 +238,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
Island island = islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner());
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members_total.Non-empty.Message").replace("%placeholder", "" + (island.getRole(Role.Member).size() + island.getRole(Role.Operator).size() + 1)));
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members_total.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -317,11 +251,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members.Non-empty.Message").replace("%placeholder", "" + islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getRole(Role.Member).size()));
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -334,11 +264,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_operators.Non-empty.Message").replace("%placeholder", "" + islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getRole(Role.Operator).size()));
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_operators.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
@ -351,11 +277,7 @@ public class MVdWPlaceholder {
return null;
}
if (islandManager.hasIsland(player)) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_visitors.Non-empty.Message").replace("%placeholder", "" + islandManager.getIsland(skyblock.getPlayerDataManager().getPlayerData(player).getOwner()).getVisitors().size()));
}
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_visitors.Empty.Message"));
return placeholderManager.getPlaceholder(player, event.getPlaceholder());
}
});
}

View File

@ -1,8 +1,23 @@
package me.goodandevil.skyblock.placeholder;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
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.plugin.PluginManager;
import me.goodandevil.skyblock.SkyBlock;
import me.goodandevil.skyblock.config.FileManager.Config;
import me.goodandevil.skyblock.island.Island;
import me.goodandevil.skyblock.island.IslandManager;
import me.goodandevil.skyblock.island.Role;
import me.goodandevil.skyblock.playerdata.PlayerData;
import me.goodandevil.skyblock.playerdata.PlayerDataManager;
public class PlaceholderManager {
@ -42,4 +57,145 @@ public class PlaceholderManager {
public boolean isMVdWPlaceholderAPIEnabled() {
return MVdWPlaceholderAPI;
}
public String getPlaceholder(Player player, String placeholder) {
PlayerDataManager playerDataManager = skyblock.getPlayerDataManager();
IslandManager islandManager = skyblock.getIslandManager();
Island island = null;
if (playerDataManager.hasPlayerData(player)) {
PlayerData playerData = playerDataManager.getPlayerData(player);
if (playerData.getOwner() != null && islandManager.containsIsland(playerData.getOwner())) {
island = islandManager.getIsland(playerDataManager.getPlayerData(player).getOwner());
}
}
Config config = skyblock.getFileManager().getConfig(new File(skyblock.getDataFolder(), "language.yml"));
FileConfiguration configLoad = config.getFileConfiguration();
if (placeholder.equalsIgnoreCase("skyblock_island_size")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_size.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_size.Non-empty.Message").replace("%placeholder", "" + island.getSize()));
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_radius")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_radius.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_radius.Non-empty.Message").replace("%placeholder", "" + island.getRadius()));
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_level")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_level.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_level.Non-empty.Message").replace("%placeholder", "" + island.getLevel().getLevel()));
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_points")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_points.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_points.Non-empty.Message").replace("%placeholder", "" + island.getLevel().getPoints()));
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_role")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_role.Empty.Message"));
} else {
for (Role roleList : Role.values()) {
if (island.isRole(roleList, player.getUniqueId())) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_role.Non-empty.Message").replace("%placeholder", roleList.name()));
}
}
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_owner")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Empty.Message"));
} else {
UUID islandOwnerUUID = island.getOwnerUUID();
Player targetPlayer = Bukkit.getServer().getPlayer(islandOwnerUUID);
if (targetPlayer == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Non-empty.Other.Message").replace("%placeholder", Bukkit.getServer().getOfflinePlayer(islandOwnerUUID).getName()));
} else {
if (targetPlayer.getName().equals(player.getName())) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Non-empty.Yourself.Message").replace("%placeholder", targetPlayer.getName()));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_owner.Non-empty.Other.Message").replace("%placeholder", targetPlayer.getName()));
}
}
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_biome")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_biome.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_biome.Non-empty.Message").replace("%placeholder", island.getBiomeName()));
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_time")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_time.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_time.Non-empty.Message").replace("%placeholder", "" + island.getTime()));
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_weather")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_weather.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_weather.Non-empty.Message").replace("%placeholder", "" + island.getWeatherName()));
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_bans")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_bans.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_bans.Non-empty.Message").replace("%placeholder", "" + island.getBan().getBans().size()));
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_members_total")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members_total.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members_total.Non-empty.Message").replace("%placeholder", "" + (island.getRole(Role.Member).size() + island.getRole(Role.Operator).size() + 1)));
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_members")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_members.Non-empty.Message").replace("%placeholder", "" + island.getRole(Role.Member).size()));
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_operators")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_operators.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_operators.Non-empty.Message").replace("%placeholder", "" + island.getRole(Role.Operator).size()));
}
} else if (placeholder.equalsIgnoreCase("skyblock_island_visitors")) {
if (island == null) {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_visitors.Empty.Message"));
} else {
return ChatColor.translateAlternateColorCodes('&', configLoad.getString("Placeholder.skyblock_island_visitors.Non-empty.Message").replace("%placeholder", "" + island.getVisitors().size()));
}
}
return "";
}
public List<String> getPlaceholders() {
List<String> placeholders = new ArrayList<>();
placeholders.add("skyblock_island_size");
placeholders.add("skyblock_island_radius");
placeholders.add("skyblock_island_level");
placeholders.add("skyblock_island_points");
placeholders.add("skyblock_island_role");
placeholders.add("skyblock_island_owner");
placeholders.add("skyblock_island_biome");
placeholders.add("skyblock_island_time");
placeholders.add("skyblock_island_weather");
placeholders.add("skyblock_island_bans");
placeholders.add("skyblock_island_members_total");
placeholders.add("skyblock_island_members");
placeholders.add("skyblock_island_operators");
placeholders.add("skyblock_island_visitors");
return placeholders;
}
}

View File

@ -127,10 +127,12 @@ public class UpgradeManager {
}
public boolean hasUpgrade(Upgrade.Type type, int value) {
for (Upgrade upgradeList : upgradeStorage.get(type)) {
if (upgradeList.getValue() == value) {
return true;
}
if (upgradeStorage.containsKey(type)) {
for (Upgrade upgradeList : upgradeStorage.get(type)) {
if (upgradeList.getValue() == value) {
return true;
}
}
}
return false;

View File

@ -1,6 +1,6 @@
name: SkyBlock
main: me.goodandevil.skyblock.SkyBlock
version: 35
version: 36
api-version: 1.13
description: A unique SkyBlock plugin
author: GoodAndEvil