mirror of
https://github.com/DRE2N/DungeonsXL.git
synced 2025-02-17 21:02:12 +01:00
Moved multiverse perms to InstancePlayer to affect editing worlds too.
This commit is contained in:
parent
5ef902b0c2
commit
e0960c6708
@ -105,9 +105,6 @@ public class DGamePlayer extends DInstancePlayer implements GamePlayer {
|
||||
initDGroupTag();
|
||||
}
|
||||
|
||||
String originalWorld = player.getWorld().getName();
|
||||
addMultiversePerm(originalWorld);
|
||||
|
||||
Location teleport = world.getLobbyLocation();
|
||||
if (teleport == null) {
|
||||
player.teleport(world.getWorld().getSpawnLocation());
|
||||
@ -115,8 +112,6 @@ public class DGamePlayer extends DInstancePlayer implements GamePlayer {
|
||||
player.teleport(teleport);
|
||||
}
|
||||
|
||||
removeMultiversePerm(originalWorld);
|
||||
|
||||
if (!((DGameWorld) world).hasReadySign()) {
|
||||
MessageUtil.sendMessage(player, DMessage.ERROR_NO_READY_SIGN.getMessage(world.getName()));
|
||||
}
|
||||
@ -384,12 +379,8 @@ public class DGamePlayer extends DInstancePlayer implements GamePlayer {
|
||||
GameRuleContainer rules = getGame().getRules();
|
||||
delete();
|
||||
|
||||
if (player.isOnline()) {
|
||||
String gameWorld = getGameWorld().getWorld().getName();
|
||||
addMultiversePerm(gameWorld);
|
||||
if (player.isOnline())
|
||||
reset(finished);
|
||||
removeMultiversePerm(gameWorld);
|
||||
}
|
||||
|
||||
// Permission bridge
|
||||
if (plugin.getPermissionProvider() != null) {
|
||||
@ -817,17 +808,5 @@ public class DGamePlayer extends DInstancePlayer implements GamePlayer {
|
||||
DistanceTrigger.triggerAllInDistance(player, (DGameWorld) getGameWorld());
|
||||
}
|
||||
|
||||
// Add permission for by passing multiverse inventories when entering or leaving a dungeon
|
||||
private void addMultiversePerm(String world){
|
||||
if (plugin.getPermissionProvider() != null)
|
||||
plugin.getPermissionProvider().playerAddTransient(world, player, "mvinv.bypass.*");
|
||||
}
|
||||
|
||||
// Remove permission for by passing multiverse inventories when entering or leaving a dungeon
|
||||
private void removeMultiversePerm(String world){
|
||||
if (plugin.getPermissionProvider() != null)
|
||||
plugin.getPermissionProvider().playerRemoveTransient(world, player, "mvinv.bypass.*");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -24,6 +24,8 @@ import de.erethon.dungeonsxl.api.world.InstanceWorld;
|
||||
import de.erethon.dungeonsxl.config.MainConfig;
|
||||
import de.erethon.dungeonsxl.util.AttributeUtil;
|
||||
import de.erethon.dungeonsxl.util.ParsingUtil;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -43,6 +45,9 @@ public abstract class DInstancePlayer extends DGlobalPlayer implements InstanceP
|
||||
|
||||
config = plugin.getMainConfig();
|
||||
|
||||
String gameWorld = world.getWorld().getName();
|
||||
this.addMultiversePerm(gameWorld);
|
||||
|
||||
instanceWorld = world;
|
||||
getData().savePlayerState(player);
|
||||
}
|
||||
@ -136,4 +141,25 @@ public abstract class DInstancePlayer extends DGlobalPlayer implements InstanceP
|
||||
*/
|
||||
public abstract void update();
|
||||
|
||||
@Override
|
||||
public void reset(Location tpLoc, boolean keepInventory){
|
||||
String tpWorld = tpLoc.getWorld().getName();
|
||||
addMultiversePerm(tpWorld);
|
||||
super.reset(tpLoc, keepInventory);
|
||||
removeMultiversePerm(tpWorld);
|
||||
removeMultiversePerm(this.getWorld().getName());
|
||||
}
|
||||
|
||||
// Add permission for by passing multiverse inventories when entering or leaving a dungeon
|
||||
private void addMultiversePerm(String world){
|
||||
if (plugin.getPermissionProvider() != null)
|
||||
plugin.getPermissionProvider().playerAddTransient(world, player, "mvinv.bypass.*");
|
||||
}
|
||||
|
||||
// Remove permission for by passing multiverse inventories when entering or leaving a dungeon
|
||||
private void removeMultiversePerm(String world){
|
||||
if (plugin.getPermissionProvider() != null)
|
||||
plugin.getPermissionProvider().playerRemoveTransient(world, player, "mvinv.bypass.*");
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user