Compare commits

...

8 Commits
1.0 ... master

Author SHA1 Message Date
Michel Roux 30617cab6d Go to release 2012-05-12 11:04:07 +02:00
Michel Roux 5ca1488c81 Ident is better 2012-05-12 11:00:12 +02:00
Michel Roux 2e03bde3fe java.util.* is uggly, never return null 2012-05-12 10:58:45 +02:00
Michel Roux dd8435dc4d Added PermissionInfo for this fucking Essentials 2012-05-12 10:55:14 +02:00
Michel Roux 0d443d90f5 Don't commit class 2012-05-12 01:23:40 +02:00
Michel Roux 9ea8e2de81 Version 1.1 2012-05-11 14:32:50 +02:00
Michel Roux 095b8b8ef5 Indentations matters 2012-05-11 14:21:10 +02:00
Michel Roux 0220d92004 Return getConfig() correctly
Announce there is SimplyWrapper and not PermissionsBukkit
2012-05-11 14:20:48 +02:00
5 changed files with 134 additions and 7 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@
.settings
/bin
.git
*.class

View File

@ -6,8 +6,8 @@ import java.util.List;
import org.bukkit.entity.Player;
/**
* A class representing a permissions group.
*/
* A class representing a permissions group.
*/
public class Group {
private PermissionsPlugin plugin;

View File

@ -0,0 +1,100 @@
package com.platymuus.bukkit.permissions;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* A class representing the global and world nodes attached to a player or
* group.
*/
public class PermissionInfo {
private final PermissionsPlugin plugin;
private final String node;
protected PermissionInfo(PermissionsPlugin plugin, String node) {
this.plugin = plugin;
this.node = node;
}
/**
* Gets the list of groups this group/player inherits permissions from.
*
* @return The list of groups.
*/
public List<Group> getGroups() {
ArrayList<Group> result = new ArrayList<Group>();
if (node.startsWith("users")) {
for (String key : plugin.api.getPlayerGroups(node.replace("users/", ""))) {
Group group = plugin.getGroup(key);
if (group != null) {
result.add(group);
}
}
} else if (node.startsWith("groups")) {
for (String key : plugin.api.getGroupInheritance(node.replace("groups/", ""))) {
Group group = plugin.getGroup(key);
if (group != null) {
result.add(group);
}
}
}
return result;
}
/**
* Gets a map of non-world-specific permission nodes to boolean values that
* this group/player defines.
*
* @return The map of permissions.
*/
public Map<String, Boolean> getPermissions() {
if (node.startsWith("users")) {
return plugin.api.getPlayerPermissions(node.replace("users/", ""));
} else if (node.startsWith("groups")) {
return plugin.api.getGroupPermissions(node.replace("groups/", ""));
} else {
return new HashMap<String, Boolean>();
}
}
/**
* Gets a list of worlds this group/player defines world-specific
* permissions for.
*
* @return The list of worlds.
*/
public Set<String> getWorlds() {
if (node.startsWith("users")) {
return new HashSet<String>(plugin.api.getPlayerWorlds(node.replace("users/", "")));
} else if (node.startsWith("groups")) {
return new HashSet<String>(plugin.api.getGroupWorlds(node.replace("groups/", "")));
} else {
return new HashSet<String>();
}
}
/**
* Gets a map of world-specific permission nodes to boolean values that this
* group/player defines.
*
* @param world The name of the world.
* @return The map of permissions.
*/
public Map<String, Boolean> getWorldPermissions(String world) {
if (node.startsWith("users")) {
return plugin.api.getPlayerPermissions(node.replace("users/", ""), world);
} else if (node.startsWith("groups")) {
return plugin.api.getGroupPermissions(node.replace("groups/", ""), world);
} else {
return new HashMap<String, Boolean>();
}
}
}

View File

@ -6,6 +6,7 @@ import java.util.List;
import net.crystalyx.bukkit.simplyperms.SimplyAPI;
import net.crystalyx.bukkit.simplyperms.SimplyPlugin;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
/**
@ -19,14 +20,26 @@ public class PermissionsPlugin extends JavaPlugin {
@Override
public void onEnable() {
api = ((SimplyPlugin) getServer().getPluginManager().getPlugin("SimplyPerms")).getAPI();
// How are you gentlemen
getLogger().info("SimplyWrapper successfully enabled !");
}
@Override
public void onDisable() {
// Good day to you! I said good day!
getLogger().info("SimplyWrapper successfully disabled !");
}
public FileConfiguration getConfig() {
return getServer().getPluginManager().getPlugin("SimplyPerms").getConfig();
}
// -- External API
/**
* Get the group with the given name.
*
* @param groupName
* The name of the group.
* @param groupName The name of the group.
* @return A Group if it exists or null otherwise.
*/
public Group getGroup(String groupName) {
@ -39,8 +52,7 @@ public class PermissionsPlugin extends JavaPlugin {
/**
* Returns a list of groups a player is in.
*
* @param playerName
* The name of the player.
* @param playerName The name of the player.
* @return The groups this player is in. May be empty.
*/
public List<Group> getGroups(String playerName) {
@ -55,6 +67,20 @@ public class PermissionsPlugin extends JavaPlugin {
return result;
}
/**
* Returns permission info on the given player.
*
* @param playerName The name of the player.
* @return A PermissionsInfo about this player.
*/
public PermissionInfo getPlayerInfo(String playerName) {
if (!api.isPlayerInDB(playerName)) {
return null;
} else {
return new PermissionInfo(this, "users/" + playerName);
}
}
/**
* Returns a list of all defined groups.
*

View File

@ -4,5 +4,5 @@ main: com.platymuus.bukkit.permissions.PermissionsPlugin
author: Xefir Destiny
website: http://dev.bukkit.org/server-mods/simplyperms/
description: Wrapper for SimplyPerms to keep compatibility with old PermissionsBukkit based plugins
version: 1.0
version: 1.2
depend: [ SimplyPerms ]