Skip to content

Commit

Permalink
Fixed /is admin teleport checking for portals cooldown
Browse files Browse the repository at this point in the history
  • Loading branch information
OmerBenGera committed Sep 30, 2022
1 parent 392c711 commit 13172a8
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 7 deletions.
Expand Up @@ -84,7 +84,8 @@ public void execute(SuperiorSkyblockPlugin plugin, CommandSender sender, Superio
if (!island.wasSchematicGenerated(environment)) {
PlayerTeleportEvent.TeleportCause teleportCause = environment == World.Environment.NETHER ?
PlayerTeleportEvent.TeleportCause.NETHER_PORTAL : PlayerTeleportEvent.TeleportCause.END_PORTAL;
plugin.getListener(PortalsListener.class).get().onPlayerPortal((Player) sender, ((Player) sender).getLocation(), teleportCause);
plugin.getListener(PortalsListener.class).get()
.onPlayerPortal((Player) sender, ((Player) sender).getLocation(), teleportCause, true);
return;
}
}
Expand Down
Expand Up @@ -56,7 +56,7 @@ public void onPlayerPortal(PlayerPortalEvent e) {
if (superiorPlayer instanceof SuperiorNPCPlayer)
return;

if (preventPlayerPortal(e.getPlayer(), e.getFrom(), e.getCause())) {
if (preventPlayerPortal(e.getPlayer(), e.getFrom(), e.getCause(), false)) {
e.setCancelled(true);
return;
}
Expand Down Expand Up @@ -117,21 +117,25 @@ public void onEntityPortalEnter(EntityPortalEnterEvent e) {
return;
}

onPlayerPortal((Player) e.getEntity(), e.getLocation(), teleportCause);
onPlayerPortal((Player) e.getEntity(), e.getLocation(), teleportCause, false);
}

public void onPlayerPortal(Player player, Location portalLocation, PlayerTeleportEvent.TeleportCause teleportCause) {
public void onPlayerPortal(Player player, Location portalLocation,
PlayerTeleportEvent.TeleportCause teleportCause,
boolean isAdminCommand) {
/* Alias for preventPlayerPortal */
preventPlayerPortal(player, portalLocation, teleportCause);
preventPlayerPortal(player, portalLocation, teleportCause, isAdminCommand);
}

public boolean preventPlayerPortal(Player player, Location portalLocation, PlayerTeleportEvent.TeleportCause teleportCause) {
public boolean preventPlayerPortal(Player player, Location portalLocation,
PlayerTeleportEvent.TeleportCause teleportCause,
boolean isAdminCommand) {
SuperiorPlayer superiorPlayer = plugin.getPlayers().getSuperiorPlayer(player);

if (superiorPlayer instanceof SuperiorNPCPlayer)
return false;

if (superiorPlayer.isImmunedToPortals())
if (!isAdminCommand && superiorPlayer.isImmunedToPortals())
return true;

Island island = plugin.getGrid().getIslandAt(portalLocation);
Expand Down

0 comments on commit 13172a8

Please sign in to comment.