Skip to content

Commit

Permalink
Hey, my permissions are now actually registered and make sense. Boys …
Browse files Browse the repository at this point in the history
…and girls, just read the damn docs
  • Loading branch information
aleksilassila committed Oct 19, 2020
1 parent 43cd6ca commit b21cdc8
Show file tree
Hide file tree
Showing 14 changed files with 165 additions and 56 deletions.
2 changes: 0 additions & 2 deletions src/me/aleksilassila/islands/Islands.java
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,6 @@ public int getSmallestIslandSize() {

@NotNull
public String getCreatePermission(int islandSize) {
// FIXME: Explain in wiki

for (String definedSize : definedIslandSizes.keySet()) {
if (definedIslandSizes.get(definedSize) == islandSize) return Permissions.command.create + "." + definedSize;
}
Expand Down
14 changes: 7 additions & 7 deletions src/me/aleksilassila/islands/commands/IslandCommands.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St

plugin.confirmations.remove(player.getUniqueId().toString());

if (!Permissions.checkPermission(player, Permissions.command.visit)) {
if (!player.hasPermission(Permissions.command.visit)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return true;
}
Expand All @@ -52,7 +52,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
return true;
}

if (!canTeleport(player) && !Permissions.checkPermission(player, Permissions.bypass.home)) {
if (!canTeleport(player) && !player.hasPermission(Permissions.bypass.home)) {
player.sendMessage(Messages.error.COOLDOWN(teleportCooldown(player)));
return true;
}
Expand Down Expand Up @@ -87,7 +87,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
plugin.confirmations.remove(player.getUniqueId().toString());

if (args.length == 1 && args[0].equalsIgnoreCase("list") || label.equalsIgnoreCase("homes")) {
if (!Permissions.checkPermission(player, Permissions.command.listHomes)) {
if (!player.hasPermission(Permissions.command.listHomes)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return true;
}
Expand All @@ -103,12 +103,12 @@ public boolean onCommand(CommandSender sender, Command command, String label, St

return true;
} else {
if (!Permissions.checkPermission(player, Permissions.command.home)) {
if (!player.hasPermission(Permissions.command.home)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return true;
}

if (!canTeleport(player) && !Permissions.checkPermission(player, Permissions.bypass.home)) {
if (!canTeleport(player) && !player.hasPermission(Permissions.bypass.home)) {
player.sendMessage(Messages.error.COOLDOWN(teleportCooldown(player)));
return true;
}
Expand All @@ -123,12 +123,12 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
}
}

if (player.getWorld().getName().equals("world_nether") && !Permissions.checkPermission(player, Permissions.bypass.home)) {
if (player.getWorld().getName().equals("world_nether") && !player.hasPermission(Permissions.bypass.home)) {
player.sendMessage(Messages.info.IN_OVERWORLD);
return true;
}

if (player.getWorld().getName().equals("world") && !Permissions.checkPermission(player, Permissions.bypass.home)) {
if (player.getWorld().getName().equals("world") && !player.hasPermission(Permissions.bypass.home)) {
// Check if is on surface
Location playerLocation = player.getLocation();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St

Player player = (Player) sender;

if (!Permissions.checkPermission(player, Permissions.command.island)) {
if (!player.hasPermission(Permissions.command.island)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return true;
}
Expand Down
12 changes: 6 additions & 6 deletions src/me/aleksilassila/islands/commands/TrustCommands.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St

plugin.confirmations.remove(player.getUniqueId().toString());

if (!Permissions.checkPermission(player, Permissions.command.untrust)) {
if (!player.hasPermission(Permissions.command.untrust)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return true;
}
Expand All @@ -57,7 +57,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
return true;
}

if (!ownerUUID.equals(player.getUniqueId().toString()) && !Permissions.checkPermission(player, Permissions.bypass.untrust)) {
if (!ownerUUID.equals(player.getUniqueId().toString()) && !player.hasPermission(Permissions.bypass.untrust)) {
player.sendMessage(Messages.error.NOT_OWNED);
return true;
}
Expand Down Expand Up @@ -90,7 +90,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St

plugin.confirmations.remove(player.getUniqueId().toString());

if (!Permissions.checkPermission(player, Permissions.command.trust)) {
if (!player.hasPermission(Permissions.command.trust)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return true;
}
Expand All @@ -108,7 +108,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
return true;
}

if (!ownerUUID.equals(player.getUniqueId().toString()) && !Permissions.checkPermission(player, Permissions.bypass.trust)) {
if (!ownerUUID.equals(player.getUniqueId().toString()) && !player.hasPermission(Permissions.bypass.trust)) {
player.sendMessage(Messages.error.NOT_OWNED);
return true;
}
Expand Down Expand Up @@ -141,7 +141,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St

plugin.confirmations.remove(player.getUniqueId().toString());

if (!Permissions.checkPermission(player, Permissions.command.listTrusted)) {
if (!player.hasPermission(Permissions.command.listTrusted)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return true;
}
Expand All @@ -154,7 +154,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
return true;
}

if (!ownerUUID.equals(player.getUniqueId().toString()) && !Permissions.checkPermission(player, Permissions.bypass.listTrusted)) {
if (!ownerUUID.equals(player.getUniqueId().toString()) && !player.hasPermission(Permissions.bypass.listTrusted)) {
player.sendMessage(Messages.error.NOT_OWNED);
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public createSubcommand(Islands plugin) {

@Override
public void onCommand(Player player, String[] args, boolean confirmed) {
if (!Permissions.checkPermission(player, Permissions.command.create)) {
if (!player.hasPermission(Permissions.command.create)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return;
}
Expand All @@ -38,7 +38,7 @@ public void onCommand(Player player, String[] args, boolean confirmed) {

String permissionRequired = plugin.getCreatePermission(islandSize);

if (!Permissions.checkPermission(player, permissionRequired)) {
if (!player.hasPermission(permissionRequired)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return;
}
Expand Down Expand Up @@ -78,7 +78,7 @@ public void onCommand(Player player, String[] args, boolean confirmed) {
}
}

if (previousIslands >= islandsLimit && !Permissions.checkPermission(player, Permissions.bypass.create)) {
if (previousIslands >= islandsLimit && !player.hasPermission(Permissions.bypass.create)) {
player.sendMessage(Messages.error.ISLAND_LIMIT);
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public deleteSubcommand(Islands plugin) {

@Override
public void onCommand(Player player, String[] args, boolean confirmed) {
if (!Permissions.checkPermission(player, Permissions.command.delete)) {
if (!player.hasPermission(Permissions.command.delete)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return;
}
Expand All @@ -38,7 +38,7 @@ public void onCommand(Player player, String[] args, boolean confirmed) {
}

if (!layout.getUUID(islandId).equals(player.getUniqueId().toString())
&& !Permissions.checkPermission(player, Permissions.bypass.delete)) {
&& !player.hasPermission(Permissions.bypass.delete)) {
player.sendMessage(Messages.error.UNAUTHORIZED);
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public giveSubcommand(Islands plugin) {

@Override
public void onCommand(Player player, String[] args, boolean confirmed) {
if (!Permissions.checkPermission(player, Permissions.command.give)) {
if (!player.hasPermission(Permissions.command.give)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return;
}
Expand All @@ -32,8 +32,8 @@ public void onCommand(Player player, String[] args, boolean confirmed) {
return;
}

if ((args.length != 1 && !Permissions.checkPermission(player, Permissions.bypass.give))
|| (Permissions.checkPermission(player, Permissions.bypass.give) && args.length > 1)) {
if ((args.length != 1 && !player.hasPermission(Permissions.bypass.give))
|| (player.hasPermission(Permissions.bypass.give) && args.length > 1)) {
player.sendMessage(Messages.help.GIVE);
return;
}
Expand All @@ -46,7 +46,7 @@ public void onCommand(Player player, String[] args, boolean confirmed) {
}
ConfigurationSection section = plugin.getIslandsConfig().getConfigurationSection(islandId + ".UUID");
if ((section != null && layout.getUUID(islandId).equals(player.getUniqueId().toString()))
|| Permissions.checkPermission(player, Permissions.bypass.give)) {
|| player.hasPermission(Permissions.bypass.give)) {
if (plugin.getIslandsConfig().getBoolean(islandId + ".public")) {
if (!confirmed) {
player.sendMessage(Messages.info.CONFIRM);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public nameSubcommand(Islands plugin) {

@Override
public void onCommand(Player player, String[] args, boolean confirmed) {
if (!Permissions.checkPermission(player, Permissions.command.name)) {
if (!player.hasPermission(Permissions.command.name)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return;
}
Expand All @@ -45,7 +45,7 @@ public void onCommand(Player player, String[] args, boolean confirmed) {
}

if (layout.getUUID(islandId).equals(player.getUniqueId().toString())
|| Permissions.checkPermission(player, Permissions.bypass.name)) {
|| player.hasPermission(Permissions.bypass.name)) {
if (layout.getIslandByName(args[0]) != null) {
player.sendMessage(Messages.error.NAME_TAKEN);
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public void onCommand(Player player, String[] args, boolean confirmed) {
String islandId;
Biome targetBiome;

if (!Permissions.checkPermission(player, Permissions.command.recreate)) {
if (!player.hasPermission(Permissions.command.recreate)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return;
}
Expand All @@ -41,7 +41,7 @@ public void onCommand(Player player, String[] args, boolean confirmed) {

String permissionRequired = plugin.getCreatePermission(islandSize);

if (!Permissions.checkPermission(player, permissionRequired)) {
if (!player.hasPermission(permissionRequired)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return;
}
Expand Down Expand Up @@ -73,7 +73,7 @@ public void onCommand(Player player, String[] args, boolean confirmed) {

if (islandId == null ||
(!layout.getUUID(islandId).equals(player.getUniqueId().toString())
&& !Permissions.checkPermission(player, Permissions.bypass.recreate))) {
&& !player.hasPermission(Permissions.bypass.recreate))) {
player.sendMessage(Messages.error.UNAUTHORIZED);
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public setSpawnSubcommand(Islands plugin) {

@Override
public void onCommand(Player player, String[] args, boolean confirmed) {
if (!Permissions.checkPermission(player, Permissions.command.setSpawn)) {
if (!player.hasPermission(Permissions.command.setSpawn)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return;
}
Expand All @@ -38,7 +38,7 @@ public void onCommand(Player player, String[] args, boolean confirmed) {
}

if (layout.getUUID(islandId).equals(player.getUniqueId().toString())
|| Permissions.checkPermission(player, Permissions.bypass.setSpawn)) {
|| player.hasPermission(Permissions.bypass.setSpawn)) {
layout.setSpawnPoint(islandId, player.getLocation().getBlockX(), player.getLocation().getBlockZ());

player.sendMessage(Messages.success.SPAWNPOINT_CHANGED);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public unnameSubcommand(Islands plugin) {

@Override
public void onCommand(Player player, String[] args, boolean confirmed) {
if (!Permissions.checkPermission(player, Permissions.command.unname)) {
if (!player.hasPermission(Permissions.command.unname)) {
player.sendMessage(Messages.error.NO_PERMISSION);
return;
}
Expand Down Expand Up @@ -49,7 +49,7 @@ public void onCommand(Player player, String[] args, boolean confirmed) {
}

if (layout.getUUID(islandId).equals(player.getUniqueId().toString())
|| Permissions.checkPermission(player, Permissions.bypass.unname)) {
|| player.hasPermission(Permissions.bypass.unname)) {
layout.unnameIsland(islandId);

player.sendMessage(Messages.success.UNNAMED);
Expand Down
6 changes: 3 additions & 3 deletions src/me/aleksilassila/islands/listeners/IslandsListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ public void onDamageEvent(EntityDamageEvent e) {
@EventHandler
public void onEntityDamageEvent(EntityDamageByEntityEvent e) {
if (e.getEntity().getWorld().equals(plugin.islandsWorld) && e.getDamager() instanceof Player) {
if (Permissions.checkPermission((Player) e.getDamager(), Permissions.bypass.interactEverywhere)) return;
if (e.getDamager().hasPermission(Permissions.bypass.interactEverywhere)) return;

int x = e.getEntity().getLocation().getBlockX();
int z = e.getEntity().getLocation().getBlockZ();
Expand All @@ -145,7 +145,7 @@ public void onEntityDamageEvent(EntityDamageByEntityEvent e) {
@EventHandler // Player interact restriction
public void onPlayerInteract(PlayerInteractEvent event) {
if (event.getClickedBlock() == null) return;
if (Permissions.checkPermission(event.getPlayer(), Permissions.bypass.interactEverywhere)) return;
if (event.getPlayer().hasPermission(Permissions.bypass.interactEverywhere)) return;

if (event.getPlayer().getWorld().equals(plugin.islandsWorld)) {
int x = event.getClickedBlock().getX();
Expand All @@ -169,7 +169,7 @@ public void onPlayerInteract(PlayerInteractEvent event) {
@EventHandler
private void onBlockPlace(BlockPlaceEvent event) {
if (event.isCancelled()) return;
if (Permissions.checkPermission(event.getPlayer(), Permissions.bypass.interactEverywhere)) return;
if (event.getPlayer().hasPermission(Permissions.bypass.interactEverywhere)) return;

if (event.getBlock().getWorld().equals(plugin.islandsWorld)) {
int x = event.getBlock().getX();
Expand Down
19 changes: 0 additions & 19 deletions src/me/aleksilassila/islands/utils/Permissions.java
Original file line number Diff line number Diff line change
@@ -1,25 +1,6 @@
package me.aleksilassila.islands.utils;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;

import java.util.Arrays;

public class Permissions {
public static boolean checkPermission(Player player, String permission) {
if (player.hasPermission(permission)) return true;
if (player.hasPermission("*")) return true;

String[] parts = permission.split("\\.");

for (int index = 0; index < parts.length; index++) {
String joined = String.join(".", Arrays.copyOfRange(parts, 0, index + 1));
if (player.hasPermission(joined + ".*")) return true;
}

return false;
}

public static class bypass {
public static final String create = "islands.bypass.islandLimit"; // Create unlimited islands
public static final String recreate = "islands.bypass.recreate"; // Recreate any island
Expand Down
Loading

0 comments on commit b21cdc8

Please sign in to comment.