Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,8 @@
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>1.7.9-R0.2</version>
<version>1.7.9-R0.3-SNAPSHOT</version>
<type>jar</type>
</dependency>
</dependencies>
</project>
8 changes: 7 additions & 1 deletion src/main/java/de/hydrox/bukkit/DroxPerms/DroxPerms.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import de.hydrox.bukkit.DroxPerms.data.AUser;
import de.hydrox.bukkit.DroxPerms.data.Config;
import de.hydrox.bukkit.DroxPerms.data.IDataProvider;
import de.hydrox.bukkit.DroxPerms.data.flatfile.FlatFilePermissions;
import de.hydrox.bukkit.DroxPerms.data.sql.SQLPermissions;

/**
Expand Down Expand Up @@ -61,12 +62,17 @@ public void onEnable() {
saveConfig();
new Config(this);
logger.info("[DroxPerms] Loading DataProvider");
if (Config.getDataProvider().equalsIgnoreCase(SQLPermissions.NODE)) {
if (Config.getDataProvider().equalsIgnoreCase(FlatFilePermissions.NODE)) {
dataProvider = new FlatFilePermissions(this);
} else if (Config.getDataProvider().equalsIgnoreCase(SQLPermissions.NODE)) {
try {
dataProvider = new SQLPermissions(Config.getMySQLConfig(), this);
} catch (SQLException e) {
SQLPermissions.mysqlError(e);
}
} else {
logger.warning("No DataProvider named \""+Config.getDataProvider()+ "\" available. Falling back to " + FlatFilePermissions.NODE);
dataProvider = new FlatFilePermissions(this);
}

if (!dataProvider.migrateToNewerVersion()) {
Expand Down
60 changes: 60 additions & 0 deletions src/main/java/de/hydrox/bukkit/DroxPerms/DroxPermsAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.bukkit.plugin.Plugin;

import de.hydrox.bukkit.DroxPerms.data.AUser;
import de.hydrox.bukkit.DroxPerms.utils.uuid.MojangWebAPI;

/**
* This Class is the API of DroxPerms for external Plug-ins. <br>
Expand Down Expand Up @@ -103,6 +104,15 @@ public boolean setPlayerGroup(String player, String group) {
plugin.refreshPlayer(plugin.getServer().getPlayer(player));
return result;
}

public boolean setPlayerGroup(UUID uuid, String group) {
playerGroupSet++;
AUser user = plugin.dataProvider.getUserByUUID(uuid);
boolean result = plugin.dataProvider.setPlayerGroup(fakeCS, user,
group);
plugin.refreshPlayer(user);
return result;
}

/**
* Returns the sub-groups of the Player.
Expand All @@ -120,6 +130,12 @@ public ArrayList<String> getPlayerSubgroups(String player) {
AUser user = plugin.dataProvider.getExactUserByName(player);
return (ArrayList<String>) plugin.dataProvider.getPlayerSubgroups(user);
}

public ArrayList<String> getPlayerSubgroups(UUID uuid) {
playerGroupGet++;
AUser user = plugin.dataProvider.getUserByUUID(uuid);
return (ArrayList<String>) plugin.dataProvider.getPlayerSubgroups(user);
}

/**
* Adds a Subgroup to a Player.
Expand All @@ -141,6 +157,15 @@ public boolean addPlayerSubgroup(String player, String subgroup) {
plugin.refreshPlayer(plugin.getServer().getPlayer(player));
return result;
}

public boolean addPlayerSubgroup(UUID uuid, String subgroup) {
playerGroupSet++;
AUser user = plugin.dataProvider.getUserByUUID(uuid);
boolean result = plugin.dataProvider.addPlayerSubgroup(fakeCS, user,
subgroup);
plugin.refreshPlayer(user);
return result;
}

/**
* Removes a Subgroup from a Player.
Expand All @@ -162,6 +187,15 @@ public boolean removePlayerSubgroup(String player, String subgroup) {
plugin.refreshPlayer(plugin.getServer().getPlayer(player));
return result;
}

public boolean removePlayerSubgroup(UUID uuid, String subgroup) {
playerGroupSet++;
AUser user = plugin.dataProvider.getUserByUUID(uuid);
boolean result = plugin.dataProvider.removePlayerSubgroup(fakeCS,
user, subgroup);
plugin.refreshPlayer(user);
return result;
}

/**
* Adds a global Permission to a Player.
Expand Down Expand Up @@ -493,6 +527,14 @@ public boolean promotePlayer(String player, String track) {
plugin.refreshPlayer(plugin.getServer().getPlayer(player));
return result;
}

public boolean promotePlayer(UUID uuid, String track) {
playerGroupSet++;
AUser user = plugin.dataProvider.getUserByUUID(uuid);
boolean result = plugin.dataProvider.promotePlayer(fakeCS, user, track);
plugin.refreshPlayer(user);
return result;
}

/**
* Demotes a Player along a given Track.
Expand All @@ -513,6 +555,14 @@ public boolean demotePlayer(String player, String track) {
plugin.refreshPlayer(plugin.getServer().getPlayer(player));
return result;
}

public boolean demotePlayer(UUID uuid, String track) {
playerGroupSet++;
AUser user = plugin.dataProvider.getUserByUUID(uuid);
boolean result = plugin.dataProvider.demotePlayer(fakeCS, user, track);
plugin.refreshPlayer(user);
return result;
}

/**
* Tells the DataProvider to save all changes.
Expand All @@ -521,6 +571,16 @@ public boolean demotePlayer(String player, String track) {
public void save() {
plugin.dataProvider.save();
}

/**
* Returns a UUID when provided with a player name.
* @param name
* @return UUID associated with player name, or null if exception occurs
* @since 1.0.0
*/
public UUID getUUIDFromName(String name) {
return MojangWebAPI.getUUIDOf(name);
}
}

class FakeCommandSender implements CommandSender {
Expand Down
34 changes: 18 additions & 16 deletions src/main/java/de/hydrox/bukkit/DroxPerms/data/AUser.java
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
package de.hydrox.bukkit.DroxPerms.data;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;

public abstract class AUser {
//protected static Map<String, AUser> users = new HashMap<String, AUser>();
//protected static Map<String, AUser> backupUsers = new HashMap<String, AUser>();
//protected static boolean testmode = false;
protected static Map<UUID, AUser> users = new HashMap<UUID, AUser>();
protected static Map<UUID, AUser> backupUsers = new HashMap<UUID, AUser>();
protected static boolean testmode = false;

/*public static boolean removeUser(String name) {
if (existUser(name.toLowerCase())) {
users.remove(name.toLowerCase());
public static boolean removeUser(UUID uuid) {
if (existUser(uuid)) {
users.remove(uuid);
return true;
}
return false;
}*/
}

public abstract boolean addPermission(String world, String permission);
public abstract boolean addSubgroup(String subgroup);
Expand All @@ -32,20 +34,20 @@ public abstract class AUser {
public abstract boolean setGroup(String newGroup);
public abstract boolean setInfo(String node, String data);

/*public static boolean addUser(AUser user) {
if (existUser(user.getName().toLowerCase())) {
public static boolean addUser(AUser user) {
if (existUser(user.getUUID())) {
return false;
}
users.put(user.getName().toLowerCase(), user);
users.put(user.getUUID(), user);
return true;
}

public static AUser getUser(String name) {
return users.get(name.toLowerCase());
public static AUser getUser(UUID uuid) {
return users.get(uuid);
}

public static boolean existUser(String name) {
if (users.containsKey(name.toLowerCase())) {
public static boolean existUser(UUID uuid) {
if (users.containsKey(uuid)) {
return true;
}
return false;
Expand All @@ -62,7 +64,7 @@ public static Iterator<AUser> iter() {
public static void setTestMode() {
if (!testmode) {
backupUsers = users;
users = new HashMap<String, AUser>();
users = new HashMap<UUID, AUser>();
testmode = true;
}
}
Expand All @@ -72,6 +74,6 @@ public static void setNormalMode() {
users = backupUsers;
testmode = false;
}
}*/
}

}
Loading