[Version 0.7.9.6]
- Actually remove the player from the BungeeQueue when they connect. Oops :) - Implement stargate.server nodes - Improve the use of negation. You can now negate networks/worlds/servers while using stargate.use permissions.
This commit is contained in:
parent
cf5c4849b9
commit
30fe7f4414
4
README
4
README
@ -215,6 +215,10 @@ Bukkit Issue: Stargate will randomly NPE when drawing a sign. Long-standing Bukk
|
|||||||
=============
|
=============
|
||||||
Changes
|
Changes
|
||||||
=============
|
=============
|
||||||
|
[Version 0.7.9.6]
|
||||||
|
- Actually remove the player from the BungeeQueue when they connect. Oops :)
|
||||||
|
- Implement stargate.server nodes
|
||||||
|
- Improve the use of negation. You can now negate networks/worlds/servers while using stargate.use permissions.
|
||||||
[Version 0.7.9.5]
|
[Version 0.7.9.5]
|
||||||
- Fixed an issue with portal material not showing up (Oh, that code WAS useful)
|
- Fixed an issue with portal material not showing up (Oh, that code WAS useful)
|
||||||
[Version 0.7.9.4]
|
[Version 0.7.9.4]
|
||||||
|
@ -418,10 +418,8 @@ public class Stargate extends JavaPlugin {
|
|||||||
* Check whether player can teleport to dest world
|
* Check whether player can teleport to dest world
|
||||||
*/
|
*/
|
||||||
public static boolean canAccessWorld(Player player, String world) {
|
public static boolean canAccessWorld(Player player, String world) {
|
||||||
// Can use all Stargate player features
|
// Can use all Stargate player features or access all worlds
|
||||||
if (hasPerm(player, "stargate.use")) return true;
|
if (hasPerm(player, "stargate.use") || hasPerm(player, "stargate.world")) {
|
||||||
// Can access all worlds
|
|
||||||
if (hasPerm(player, "stargate.world")) {
|
|
||||||
// Do a deep check to see if the player lacks this specific world node
|
// Do a deep check to see if the player lacks this specific world node
|
||||||
if (!hasPermDeep(player, "stargate.world." + world)) return false;
|
if (!hasPermDeep(player, "stargate.world." + world)) return false;
|
||||||
return true;
|
return true;
|
||||||
@ -435,10 +433,8 @@ public class Stargate extends JavaPlugin {
|
|||||||
* Check whether player can use network
|
* Check whether player can use network
|
||||||
*/
|
*/
|
||||||
public static boolean canAccessNetwork(Player player, String network) {
|
public static boolean canAccessNetwork(Player player, String network) {
|
||||||
// Can use all Stargate player features
|
// Can user all Stargate player features, or access all networks
|
||||||
if (hasPerm(player, "stargate.use")) return true;
|
if (hasPerm(player, "stargate.use") || hasPerm(player, "stargate.network")) {
|
||||||
// Can access all networks
|
|
||||||
if (hasPerm(player, "stargate.network")) {
|
|
||||||
// Do a deep check to see if the player lacks this specific network node
|
// Do a deep check to see if the player lacks this specific network node
|
||||||
if (!hasPermDeep(player, "stargate.network." + network)) return false;
|
if (!hasPermDeep(player, "stargate.network." + network)) return false;
|
||||||
return true;
|
return true;
|
||||||
@ -446,12 +442,27 @@ public class Stargate extends JavaPlugin {
|
|||||||
// Can access this network
|
// Can access this network
|
||||||
if (hasPerm(player, "stargate.network." + network)) return true;
|
if (hasPerm(player, "stargate.network." + network)) return true;
|
||||||
// Is able to create personal gates (Assumption is made they can also access them)
|
// Is able to create personal gates (Assumption is made they can also access them)
|
||||||
String playerName = player.getName();
|
String playerName = player.getName().toLowerCase();
|
||||||
if (playerName.length() > 11) playerName = playerName.substring(0, 11);
|
if (playerName.length() > 11) playerName = playerName.substring(0, 11);
|
||||||
if (network.equals(playerName) && hasPerm(player, "stargate.create.personal")) return true;
|
if (network.equals(playerName) && hasPerm(player, "stargate.create.personal")) return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check whether the player can access this server
|
||||||
|
*/
|
||||||
|
public static boolean canAccessServer(Player player, String server) {
|
||||||
|
// Can user all Stargate player features, or access all servers
|
||||||
|
if (hasPerm(player, "stargate.use") || hasPerm(player, "stargate.servers")) {
|
||||||
|
// Do a deep check to see if the player lacks this specific server node
|
||||||
|
if (!hasPermDeep(player, "stargate.server." + server)) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// Can access this server
|
||||||
|
if (hasPerm(player, "stargate.server." + server)) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Call the StargateAccessPortal event, used for other plugins to bypass Permissions checks
|
* Call the StargateAccessPortal event, used for other plugins to bypass Permissions checks
|
||||||
*/
|
*/
|
||||||
@ -736,7 +747,7 @@ public class Stargate extends JavaPlugin {
|
|||||||
if (!enableBungee) return;
|
if (!enableBungee) return;
|
||||||
|
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
String destination = bungeeQueue.get(player.getName().toLowerCase());
|
String destination = bungeeQueue.remove(player.getName().toLowerCase());
|
||||||
if (destination == null) return;
|
if (destination == null) return;
|
||||||
|
|
||||||
Portal portal = Portal.getBungeeGate(destination);
|
Portal portal = Portal.getBungeeGate(destination);
|
||||||
@ -802,16 +813,22 @@ public class Stargate extends JavaPlugin {
|
|||||||
if (!portal.isBungee() && destination == null) return;
|
if (!portal.isBungee() && destination == null) return;
|
||||||
|
|
||||||
boolean deny = false;
|
boolean deny = false;
|
||||||
|
// Check if player has access to this server for Bungee gates
|
||||||
|
if (portal.isBungee()) {
|
||||||
|
if (!canAccessServer(player, portal.getNetwork())) {
|
||||||
|
deny = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
// Check if player has access to this network
|
// Check if player has access to this network
|
||||||
// For Bungee gates this will be the target server name
|
|
||||||
if (!canAccessNetwork(player, portal.getNetwork())) {
|
if (!canAccessNetwork(player, portal.getNetwork())) {
|
||||||
deny = true;
|
deny = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if player has access to destination world
|
// Check if player has access to destination world
|
||||||
if (!portal.isBungee() && !canAccessWorld(player, destination.getWorld().getName())) {
|
if (!canAccessWorld(player, destination.getWorld().getName())) {
|
||||||
deny = true;
|
deny = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!canAccessPortal(player, portal, deny)) {
|
if (!canAccessPortal(player, portal, deny)) {
|
||||||
Stargate.sendMessage(player, Stargate.getString("denyMsg"));
|
Stargate.sendMessage(player, Stargate.getString("denyMsg"));
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
name: Stargate
|
name: Stargate
|
||||||
main: net.TheDgtl.Stargate.Stargate
|
main: net.TheDgtl.Stargate.Stargate
|
||||||
version: 0.7.9.5
|
version: 0.7.9.6
|
||||||
description: Stargate mod for Bukkit
|
description: Stargate mod for Bukkit
|
||||||
author: Drakia
|
author: Drakia
|
||||||
website: http://www.thedgtl.net
|
website: http://www.thedgtl.net
|
||||||
|
Loading…
Reference in New Issue
Block a user