1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-23 06:45:04 +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. # This does not affect the /home command, there is a separate toggle below for this.
world-teleport-permissions: false 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. # 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 # 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. # 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())); 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( if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() && !Permissions.WORLD.isAuthorized(
user, player.getPlayer().getWorld().getName())) user, player.getPlayer().getWorld().getName()))
{ {

View File

@@ -22,8 +22,12 @@ public class Commandtpa extends EssentialsCommand
{ {
throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName())); throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName()));
} }
ISettings settings = ess.getSettings(); 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( if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && ess.getSettings().getData().getGeneral().isWorldTeleportPermissions() && !Permissions.WORLD.isAuthorized(
user, user.getPlayer().getWorld().getName())) user, user.getPlayer().getWorld().getName()))
{ {

View File

@@ -24,6 +24,11 @@ public class Commandtpahere extends EssentialsCommand
} }
ISettings settings = ess.getSettings(); 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( if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() && !Permissions.WORLD.isAuthorized(
user, user.getPlayer().getWorld().getName())) user, user.getPlayer().getWorld().getName()))
{ {

View File

@@ -27,7 +27,7 @@ public class Commandtpall extends EssentialsCommand
final IUser player = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(sender)); final IUser player = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(sender));
teleportAllPlayers(sender, player); teleportAllPlayers(sender, player);
} }
private void teleportAllPlayers(CommandSender sender, IUser user) private void teleportAllPlayers(CommandSender sender, IUser user)
{ {
sender.sendMessage(_("teleportAll")); sender.sendMessage(_("teleportAll"));

View File

@@ -1,8 +1,10 @@
package net.ess3.commands; package net.ess3.commands;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.permissions.Permissions;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -16,6 +18,12 @@ public class Commandtphere extends EssentialsCommand
{ {
throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName())); 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.getTeleport().teleportToMe(player, new Trade(commandName, ess), TeleportCause.COMMAND);
user.sendMessage(_("teleporting")); user.sendMessage(_("teleporting"));

View File

@@ -1,6 +1,7 @@
package net.ess3.commands; package net.ess3.commands;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -19,6 +20,12 @@ public class Commandtpo extends EssentialsCommand
//Just basically the old tp command //Just basically the old tp command
final IUser player = ess.getUserMap().matchUser(args[0], false); 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 // Verify permission
if (user.getPlayer().canSee(player.getPlayer()) || Permissions.TELEPORT_HIDDEN.isAuthorized(user)) 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())); 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 // Verify permission

View File

@@ -167,6 +167,7 @@ public enum Permissions implements IPermission
} }
public static DotStarPermission ENCHANT = new DotStarPermission("essentials.enchant"); 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 MaterialDotStarPermission GIVE = new MaterialDotStarPermission("essentials.give", PermissionDefault.TRUE);
public static DotStarPermission RANKS = new DotStarPermission("essentials.ranks"); public static DotStarPermission RANKS = new DotStarPermission("essentials.ranks");
public static DotStarPermission HELP = new DotStarPermission("essentials.help"); 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 worldTeleportPermissions = false;
private boolean worldHomePermissions = 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 ") @Comment("Delay to wait before people can cause attack damage after logging in ")
private long loginAttackDelay = 0; private long loginAttackDelay = 0;

View File

@@ -34,10 +34,10 @@ v 1.3:
(for all worlds named in config.yml) (for all worlds named in config.yml)
- Attempt to stop GM wiping groups/users yml's on a bad shut down. - Attempt to stop GM wiping groups/users yml's on a bad shut down.
- Added event handling to manage new world creation at runtime. - Added event handling to manage new world creation at runtime.
- Added the ability to handle unknown worlds at server start. - Added the ability to handle unknown worlds at server start.
(GM will create the data files for any worlds it finds which are not in the config.yml) (GM will create the data files for any worlds it finds which are not in the config.yml)
- Fix for Bukkit passing a null To location on a player Portaling - Fix for Bukkit passing a null To location on a player Portaling
- Fixed manudelsub not correctly selecting the group to remove. - Fixed manudelsub not correctly selecting the group to remove.
- Added two new permission nodes - groupmanager.notify.self & groupmanager.notify.other - Added two new permission nodes - groupmanager.notify.self & groupmanager.notify.other
These allow players/admins to be notified when players are moved between groups. These allow players/admins to be notified when players are moved between groups.
v 1.4: v 1.4: