1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-19 13:01:20 +02:00

Merge pull request #306 from Riaku/master

per-group permissions attempt#2
This commit is contained in:
KHobbits
2013-02-28 05:25:24 -08:00
11 changed files with 45 additions and 5 deletions

View File

@@ -290,6 +290,9 @@ no-god-in-worlds:
# This does not affect the /home command, there is a separate toggle below for this.
world-teleport-permissions: false
#Set to true to enable per-group teleporting permissions.
per-group-teleport: false
# The number of items given if the quantity parameter is left out in /item or /give.
# If this number is below 1, the maximum stack size size is given. If over-sized stacks
# are not enabled, any number higher than the maximum stack size results in more than one stack.

View File

@@ -27,6 +27,11 @@ public class Commandtp extends EssentialsCommand
{
throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName()));
}
if (settings.getData().getGeneral().isPerGroupTeleport() && !Permissions.PERGROUPTELEPORT.isAuthorized(
user, ess.getRanks().getMainGroup(player)))
{
throw new Exception(_("noPerm", "essentials.teleport.groups." + ess.getRanks().getMainGroup(player)));
}
if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() && !Permissions.WORLD.isAuthorized(
user, player.getPlayer().getWorld().getName()))
{

View File

@@ -22,8 +22,12 @@ public class Commandtpa extends EssentialsCommand
{
throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName()));
}
ISettings settings = ess.getSettings();
if (settings.getData().getGeneral().isPerGroupTeleport() && !Permissions.PERGROUPTELEPORT.isAuthorized(
user, ess.getRanks().getMainGroup(player)))
{
throw new Exception(_("noPerm", "essentials.teleport.groups." + ess.getRanks().getMainGroup(player)));
}
if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && ess.getSettings().getData().getGeneral().isWorldTeleportPermissions() && !Permissions.WORLD.isAuthorized(
user, user.getPlayer().getWorld().getName()))
{

View File

@@ -24,6 +24,11 @@ public class Commandtpahere extends EssentialsCommand
}
ISettings settings = ess.getSettings();
if (settings.getData().getGeneral().isPerGroupTeleport() && !Permissions.PERGROUPTELEPORT.isAuthorized(
user, ess.getRanks().getMainGroup(player)))
{
throw new Exception(_("noPerm", "essentials.teleport.groups." + ess.getRanks().getMainGroup(player)));
}
if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() && !Permissions.WORLD.isAuthorized(
user, user.getPlayer().getWorld().getName()))
{

View File

@@ -1,8 +1,10 @@
package net.ess3.commands;
import static net.ess3.I18n._;
import net.ess3.api.ISettings;
import net.ess3.api.IUser;
import net.ess3.economy.Trade;
import net.ess3.permissions.Permissions;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -16,6 +18,12 @@ public class Commandtphere extends EssentialsCommand
{
throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName()));
}
ISettings settings = ess.getSettings();
if (settings.getData().getGeneral().isPerGroupTeleport() && !Permissions.PERGROUPTELEPORT.isAuthorized(
user, ess.getRanks().getMainGroup(player)))
{
throw new Exception(_("noPerm", "essentials.teleport.groups." + ess.getRanks().getMainGroup(player)));
}
user.getTeleport().teleportToMe(player, new Trade(commandName, ess), TeleportCause.COMMAND);
user.sendMessage(_("teleporting"));

View File

@@ -1,6 +1,7 @@
package net.ess3.commands;
import static net.ess3.I18n._;
import net.ess3.api.ISettings;
import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -19,6 +20,12 @@ public class Commandtpo extends EssentialsCommand
//Just basically the old tp command
final IUser player = ess.getUserMap().matchUser(args[0], false);
ISettings settings = ess.getSettings();
if (settings.getData().getGeneral().isPerGroupTeleport() && !Permissions.PERGROUPTELEPORT.isAuthorized(
user, ess.getRanks().getMainGroup(player)))
{
throw new Exception(_("noPerm", "essentials.teleport.groups." + ess.getRanks().getMainGroup(player)));
}
// Verify permission
if (user.getPlayer().canSee(player.getPlayer()) || Permissions.TELEPORT_HIDDEN.isAuthorized(user))
{

View File

@@ -27,6 +27,11 @@ public class Commandtpohere extends EssentialsCommand
{
throw new Exception(_("noPerm", "essentials.world." + user.getPlayer().getWorld().getName()));
}
if (settings.getData().getGeneral().isPerGroupTeleport() && !Permissions.PERGROUPTELEPORT.isAuthorized(
user, ess.getRanks().getMainGroup(player)))
{
throw new Exception(_("noPerm", "essentials.teleport.groups." + ess.getRanks().getMainGroup(player)));
}
// Verify permission

View File

@@ -167,6 +167,7 @@ public enum Permissions implements IPermission
}
public static DotStarPermission ENCHANT = new DotStarPermission("essentials.enchant");
public static DotStarPermission PERGROUPTELEPORT = new DotStarPermission("essentials.teleport.groups");
public static MaterialDotStarPermission GIVE = new MaterialDotStarPermission("essentials.give", PermissionDefault.TRUE);
public static DotStarPermission RANKS = new DotStarPermission("essentials.ranks");
public static DotStarPermission HELP = new DotStarPermission("essentials.help");

View File

@@ -59,6 +59,8 @@ public class General implements StorageObject
})
private boolean worldTeleportPermissions = false;
private boolean worldHomePermissions = false;
@Comment("Set to true to enable per-group teleporting permissions.")
private boolean perGroupTeleport = false;
@Comment("Delay to wait before people can cause attack damage after logging in ")
private long loginAttackDelay = 0;