Skip to content

Commit

Permalink
Feature/1.17 support (#146)
Browse files Browse the repository at this point in the history
* Bump Spigot dependency to 1.17

* Updated IridiumCore

* Bumped NBTAPI

* Avoid returning null on errors

* Fixed Async entity errors

* Fix shop issues

* Fix async entity errors

* Avoid returning null on errors

* Update nbt-api to 2.8.0

* Update XSeries to 8.0.0

* Bumped IridiumCore

* Added ShopManager.reloadCategories back

* Disabled ability to trample crops on others islands

* Added Enums to get Default Permission keys

Co-authored-by: dlsf <munita.gavai@gmail.com>
  • Loading branch information
PeachesMLG and dlsf committed Jun 11, 2021
1 parent b6d501f commit 8da6294
Show file tree
Hide file tree
Showing 24 changed files with 143 additions and 52 deletions.
44 changes: 22 additions & 22 deletions src/main/java/com/iridium/iridiumskyblock/IridiumSkyblock.java
Original file line number Diff line number Diff line change
Expand Up @@ -356,27 +356,27 @@ public void loadConfigs() {
}

this.permissionList = new HashMap<>();
this.permissionList.put("redstone", permissions.redstone);
this.permissionList.put("blockPlace", permissions.blockPlace);
this.permissionList.put("blockBreak", permissions.blockBreak);
this.permissionList.put("bucket", permissions.bucket);
this.permissionList.put("doors", permissions.doors);
this.permissionList.put("killMobs", permissions.killMobs);
this.permissionList.put("openContainers", permissions.openContainers);
this.permissionList.put("spawners", permissions.spawners);
this.permissionList.put("changePermissions", permissions.changePermissions);
this.permissionList.put("kick", permissions.kick);
this.permissionList.put("invite", permissions.invite);
this.permissionList.put("regen", permissions.regen);
this.permissionList.put("promote", permissions.promote);
this.permissionList.put("demote", permissions.demote);
this.permissionList.put("pickupItems", permissions.pickupItems);
this.permissionList.put("dropItems", permissions.dropItems);
this.permissionList.put("interactEntities", permissions.interactEntities);
this.permissionList.put("manageWarps", permissions.manageWarps);
this.permissionList.put("withdrawBank", permissions.withdrawBank);
this.permissionList.put("trust", permissions.trust);
this.permissionList.put("border", permissions.border);
this.permissionList.put(PermissionType.REDSTONE.getPermissionKey(), permissions.redstone);
this.permissionList.put(PermissionType.BLOCK_PLACE.getPermissionKey(), permissions.blockPlace);
this.permissionList.put(PermissionType.BLOCK_BREAK.getPermissionKey(), permissions.blockBreak);
this.permissionList.put(PermissionType.BUCKET.getPermissionKey(), permissions.bucket);
this.permissionList.put(PermissionType.DOORS.getPermissionKey(), permissions.doors);
this.permissionList.put(PermissionType.KILL_MOBS.getPermissionKey(), permissions.killMobs);
this.permissionList.put(PermissionType.OPEN_CONTAINERS.getPermissionKey(), permissions.openContainers);
this.permissionList.put(PermissionType.SPAWNERS.getPermissionKey(), permissions.spawners);
this.permissionList.put(PermissionType.CHANGE_PERMISSIONS.getPermissionKey(), permissions.changePermissions);
this.permissionList.put(PermissionType.KICK.getPermissionKey(), permissions.kick);
this.permissionList.put(PermissionType.INVITE.getPermissionKey(), permissions.invite);
this.permissionList.put(PermissionType.REGEN.getPermissionKey(), permissions.regen);
this.permissionList.put(PermissionType.PROMOTE.getPermissionKey(), permissions.promote);
this.permissionList.put(PermissionType.DEMOTE.getPermissionKey(), permissions.demote);
this.permissionList.put(PermissionType.PICKUP_ITEMS.getPermissionKey(), permissions.pickupItems);
this.permissionList.put(PermissionType.DROP_ITEMS.getPermissionKey(), permissions.dropItems);
this.permissionList.put(PermissionType.INTERACT_ENTITIES.getPermissionKey(), permissions.interactEntities);
this.permissionList.put(PermissionType.MANAGE_WARPS.getPermissionKey(), permissions.manageWarps);
this.permissionList.put(PermissionType.WITHDRAW_BANK.getPermissionKey(), permissions.withdrawBank);
this.permissionList.put(PermissionType.TRUST.getPermissionKey(), permissions.trust);
this.permissionList.put(PermissionType.BORDER.getPermissionKey(), permissions.border);

this.bankItemList = new ArrayList<>();
this.bankItemList.add(bankItems.crystalsBankItem);
Expand Down Expand Up @@ -411,7 +411,7 @@ public void loadConfigs() {
saveFile(schematicFolder, "mushroom_end.iridiumschem");
saveFile(schematicFolder, "jungle_end.iridiumschem");

if(shopManager != null)shopManager.reloadCategories();
if (shopManager != null) shopManager.reloadCategories();
}

private void saveFile(File parent, String name) {
Expand Down
32 changes: 32 additions & 0 deletions src/main/java/com/iridium/iridiumskyblock/PermissionType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.iridium.iridiumskyblock;

import lombok.AllArgsConstructor;
import lombok.Getter;

@AllArgsConstructor
@Getter
public enum PermissionType {
REDSTONE("redstone"),
BLOCK_PLACE("blockPlace"),
BLOCK_BREAK("blockBreak"),
BUCKET("bucket"),
DOORS("doors"),
KILL_MOBS("killMobs"),
OPEN_CONTAINERS("openContainers"),
SPAWNERS("spawners"),
CHANGE_PERMISSIONS("changePermissions"),
KICK("kick"),
INVITE("invite"),
REGEN("regen"),
PROMOTE("promote"),
DEMOTE("demote"),
PICKUP_ITEMS("pickupItems"),
DROP_ITEMS("dropItems"),
INTERACT_ENTITIES("interactEntities"),
MANAGE_WARPS("manageWarps"),
WITHDRAW_BANK("withdrawBank"),
TRUST("trust"),
BORDER("border");

private final String permissionKey;
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package com.iridium.iridiumskyblock.api;

import com.iridium.iridiumskyblock.Booster;
import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.Permission;
import com.iridium.iridiumskyblock.Upgrade;
import com.iridium.iridiumskyblock.*;
import com.iridium.iridiumskyblock.bank.BankItem;
import com.iridium.iridiumskyblock.commands.Command;
import com.iridium.iridiumskyblock.database.Island;
Expand Down Expand Up @@ -159,6 +156,16 @@ public Optional<Permission> getPermissions(@NotNull String permissionKey) {
return Optional.ofNullable(iridiumSkyblock.getPermissionList().get(permissionKey));
}

/**
* Gets a permission object from name
*
* @param permissionKey The permission key
* @return The the permission object
*/
public Optional<Permission> getPermissions(@NotNull PermissionType permissionKey) {
return getPermissions(permissionKey.getPermissionKey());
}

/**
* Gets whether a permission is allowed or denied.
*
Expand All @@ -172,6 +179,18 @@ public boolean getIslandPermission(@NotNull Island island, @NotNull User user, @
return iridiumSkyblock.getIslandManager().getIslandPermission(island, user, permission, key);
}

/**
* Gets whether a permission is allowed or denied.
*
* @param island The specified Island
* @param user The Specified User
* @param permission The Specified permission type
* @return The the permission is allowed
*/
public boolean getIslandPermission(@NotNull Island island, @NotNull User user, @NotNull PermissionType permission) {
return iridiumSkyblock.getIslandManager().getIslandPermission(island, user, permission);
}

/**
* Gets an Island upgrade
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.iridium.iridiumcore.Color;
import com.iridium.iridiumcore.utils.StringUtils;
import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.PermissionType;
import com.iridium.iridiumskyblock.database.Island;
import com.iridium.iridiumskyblock.database.User;
import com.iridium.iridiumskyblock.gui.InventoryConfigGUI;
Expand Down Expand Up @@ -40,7 +41,7 @@ public void execute(CommandSender sender, String[] args) {
Optional<Island> island = user.getIsland();

if (island.isPresent()) {
if (!IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), IridiumSkyblock.getInstance().getPermissions().border, "border")) {
if (!IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), PermissionType.BORDER)) {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().cannotManageBorder.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.iridium.iridiumcore.dependencies.xseries.XMaterial;
import com.iridium.iridiumcore.utils.StringUtils;
import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.PermissionType;
import com.iridium.iridiumskyblock.database.Island;
import com.iridium.iridiumskyblock.database.IslandWarp;
import com.iridium.iridiumskyblock.database.User;
Expand Down Expand Up @@ -41,7 +42,7 @@ public void execute(CommandSender sender, String[] args) {
Optional<Island> island = user.getIsland();

if (island.isPresent()) {
if (!IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), IridiumSkyblock.getInstance().getPermissions().manageWarps, "manageWarps")) {
if (!IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), PermissionType.MANAGE_WARPS)) {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().cannotManageWarps.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.IslandRank;
import com.iridium.iridiumskyblock.LogAction;
import com.iridium.iridiumskyblock.PermissionType;
import com.iridium.iridiumskyblock.api.UserDemoteEvent;
import com.iridium.iridiumskyblock.database.Island;
import com.iridium.iridiumskyblock.database.IslandLog;
Expand Down Expand Up @@ -55,15 +56,15 @@ public void execute(CommandSender sender, String[] args) {

if (island.get().equals(offlinePlayerUser.getIsland().orElse(null))) {
IslandRank nextRank = IslandRank.getByLevel(offlinePlayerUser.getIslandRank().getLevel() - 1);
if (nextRank != null && offlinePlayerUser.getIslandRank().getLevel() < user.getIslandRank().getLevel() && IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), IridiumSkyblock.getInstance().getPermissions().demote, "demote")) {
if (nextRank != null && offlinePlayerUser.getIslandRank().getLevel() < user.getIslandRank().getLevel() && IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), PermissionType.DEMOTE)) {
if (nextRank.equals(IslandRank.VISITOR)) {
String command = IridiumSkyblock.getInstance().getCommands().kickCommand.aliases.get(0);
Bukkit.getServer().dispatchCommand(player, "is " + command + " " + args[1]);
} else {
UserDemoteEvent userDemoteEvent = new UserDemoteEvent(island.get(), user, nextRank);
Bukkit.getPluginManager().callEvent(userDemoteEvent);
if (userDemoteEvent.isCancelled()) return;

offlinePlayerUser.setIslandRank(nextRank);
for (User member : island.get().getMembers()) {
Player p = Bukkit.getPlayer(member.getUuid());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.iridium.iridiumcore.dependencies.xseries.XMaterial;
import com.iridium.iridiumcore.utils.StringUtils;
import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.PermissionType;
import com.iridium.iridiumskyblock.database.Island;
import com.iridium.iridiumskyblock.database.IslandWarp;
import com.iridium.iridiumskyblock.database.User;
Expand Down Expand Up @@ -45,7 +46,7 @@ public void execute(CommandSender sender, String[] args) {
Optional<Island> island = user.getIsland();

if (island.isPresent()) {
if (!IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), IridiumSkyblock.getInstance().getPermissions().manageWarps, "manageWarps")) {
if (!IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), PermissionType.MANAGE_WARPS)) {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().cannotManageWarps.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.iridium.iridiumcore.utils.StringUtils;
import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.LogAction;
import com.iridium.iridiumskyblock.PermissionType;
import com.iridium.iridiumskyblock.database.*;
import com.iridium.iridiumskyblock.gui.InvitesGUI;
import org.bukkit.Bukkit;
Expand Down Expand Up @@ -56,7 +57,7 @@ public void execute(CommandSender sender, String[] args) {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().alreadyInYourIsland.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
} else if (IridiumSkyblock.getInstance().getIslandManager().getIslandInvite(island.get(), offlinePlayerUser).isPresent()) {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().alreadyInvited.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
} else if (!IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), user, IridiumSkyblock.getInstance().getPermissions().invite, "invite")) {
} else if (!IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), user, PermissionType.INVITE)) {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().cannotInviteMember.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
} else if (islandMembers.size() >= memberLimit) {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().islandMemberLimitReached.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.iridium.iridiumcore.utils.StringUtils;
import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.LogAction;
import com.iridium.iridiumskyblock.PermissionType;
import com.iridium.iridiumskyblock.api.UserKickEvent;
import com.iridium.iridiumskyblock.database.Island;
import com.iridium.iridiumskyblock.database.IslandLog;
Expand Down Expand Up @@ -54,7 +55,7 @@ public void execute(CommandSender sender, String[] args) {
User targetUser = IridiumSkyblock.getInstance().getUserManager().getUser(targetPlayer);

if (island.get().equals(targetUser.getIsland().orElse(null))) {
if (targetUser.getIslandRank().getLevel() >= user.getIslandRank().getLevel() || !IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), user, IridiumSkyblock.getInstance().getPermissions().kick, "kick")) {
if (targetUser.getIslandRank().getLevel() >= user.getIslandRank().getLevel() || !IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), user, PermissionType.KICK)) {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().cannotKickUser.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
} else {
UserKickEvent userKickEvent = new UserKickEvent(island.get(), targetUser, user);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.IslandRank;
import com.iridium.iridiumskyblock.LogAction;
import com.iridium.iridiumskyblock.PermissionType;
import com.iridium.iridiumskyblock.api.UserPromoteEvent;
import com.iridium.iridiumskyblock.database.Island;
import com.iridium.iridiumskyblock.database.IslandLog;
Expand Down Expand Up @@ -55,7 +56,7 @@ public void execute(CommandSender sender, String[] args) {

if (island.get().equals(targetUser.getIsland().orElse(null))) {
IslandRank nextRank = IslandRank.getByLevel(targetUser.getIslandRank().getLevel() + 1);
if (nextRank != null && nextRank.getLevel() < user.getIslandRank().getLevel() && IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), IridiumSkyblock.getInstance().getPermissions().promote, "promote")) {
if (nextRank != null && nextRank.getLevel() < user.getIslandRank().getLevel() && IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), PermissionType.PROMOTE)) {
UserPromoteEvent userPromoteEvent = new UserPromoteEvent(island.get(), user, nextRank);
Bukkit.getPluginManager().callEvent(userPromoteEvent);
if (userPromoteEvent.isCancelled()) return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.iridium.iridiumcore.utils.StringUtils;
import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.PermissionType;
import com.iridium.iridiumskyblock.configs.Schematics;
import com.iridium.iridiumskyblock.database.Island;
import com.iridium.iridiumskyblock.database.User;
Expand Down Expand Up @@ -43,7 +44,7 @@ public void execute(CommandSender sender, String[] args) {

if (island.isPresent()) {
if (args.length == 1) {
if (IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), IridiumSkyblock.getInstance().getPermissions().regen, "regen")) {
if (IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), PermissionType.REGEN)) {
player.openInventory(new IslandRegenGUI(player).getInventory());
} else {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().cannotRegenIsland.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.iridium.iridiumcore.utils.StringUtils;
import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.PermissionType;
import com.iridium.iridiumskyblock.database.Island;
import com.iridium.iridiumskyblock.database.IslandUpgrade;
import com.iridium.iridiumskyblock.database.IslandWarp;
Expand Down Expand Up @@ -43,7 +44,7 @@ public void execute(CommandSender sender, String[] args) {
Optional<Island> island = user.getIsland();

if (island.isPresent()) {
if (!IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), IridiumSkyblock.getInstance().getPermissions().manageWarps, "manageWarps")) {
if (!IridiumSkyblock.getInstance().getIslandManager().getIslandPermission(island.get(), IridiumSkyblock.getInstance().getUserManager().getUser(player), PermissionType.MANAGE_WARPS)) {
player.sendMessage(StringUtils.color(IridiumSkyblock.getInstance().getMessages().cannotManageWarps.replace("%prefix%", IridiumSkyblock.getInstance().getConfiguration().prefix)));
return;
}
Expand Down
Loading

0 comments on commit 8da6294

Please sign in to comment.