This commit is contained in:
okx-code
2020-06-20 22:32:41 +01:00
parent 8e755bbced
commit 1e7805e213
14 changed files with 91 additions and 77 deletions
@@ -1,9 +1,9 @@
package sh.okx.rankup.hook;
import java.util.UUID;
public interface PermissionProvider {
boolean inGroup(UUID uuid, String group);
void addGroup(UUID uuid, String group);
void removeGroup(UUID uuid, String group);
}
package sh.okx.rankup.hook;
import java.util.UUID;
public interface GroupProvider {
boolean inGroup(UUID uuid, String group);
void addGroup(UUID uuid, String group);
void removeGroup(UUID uuid, String group);
}
@@ -4,7 +4,7 @@ import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
public class PermissionPermissionProvider implements PermissionProvider {
public class PermissionGroupProvider implements GroupProvider {
@Override
public boolean inGroup(UUID uuid, String group) {
@@ -11,11 +11,11 @@ public class PermissionManager {
this.plugin = plugin;
}
public PermissionProvider findPermissionProvider() {
public GroupProvider findPermissionProvider() {
return getVaultPermissionProvider();
}
private PermissionProvider getVaultPermissionProvider() {
private GroupProvider getVaultPermissionProvider() {
RegisteredServiceProvider<Permission> rsp = plugin.getServer().getServicesManager()
.getRegistration(Permission.class);
if (rsp == null) {
@@ -25,10 +25,10 @@ public class PermissionManager {
if (!provider.hasGroupSupport()) {
return null;
}
return new VaultPermissionProvider(provider);
return new VaultGroupProvider(provider);
}
public PermissionProvider permissionOnlyProvider() {
return new PermissionPermissionProvider();
public GroupProvider permissionOnlyProvider() {
return new PermissionGroupProvider();
}
}
@@ -1,44 +1,44 @@
package sh.okx.rankup.hook;
import java.util.Objects;
import java.util.UUID;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit;
public class VaultPermissionProvider implements PermissionProvider {
private final Permission permission;
public VaultPermissionProvider(Permission permission) {
this.permission = permission;
}
@Override
public boolean inGroup(UUID uuid, String group) {
Objects.requireNonNull(uuid);
Objects.requireNonNull(group);
String[] playerGroups = permission.getPlayerGroups(null, Bukkit.getOfflinePlayer(uuid));
for (String playerGroup : playerGroups) {
if (group.equalsIgnoreCase(playerGroup)) {
return true;
}
}
return false;
}
@Override
public void addGroup(UUID uuid, String group) {
Objects.requireNonNull(uuid);
Objects.requireNonNull(group);
permission.playerAddGroup(null, Bukkit.getOfflinePlayer(uuid), group);
}
@Override
public void removeGroup(UUID uuid, String group) {
Objects.requireNonNull(uuid);
Objects.requireNonNull(group);
permission.playerRemoveGroup(null, Bukkit.getOfflinePlayer(uuid), group);
}
}
package sh.okx.rankup.hook;
import java.util.Objects;
import java.util.UUID;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit;
public class VaultGroupProvider implements GroupProvider {
private final Permission permission;
public VaultGroupProvider(Permission permission) {
this.permission = permission;
}
@Override
public boolean inGroup(UUID uuid, String group) {
Objects.requireNonNull(uuid);
Objects.requireNonNull(group);
String[] playerGroups = permission.getPlayerGroups(null, Bukkit.getOfflinePlayer(uuid));
for (String playerGroup : playerGroups) {
if (group.equalsIgnoreCase(playerGroup)) {
return true;
}
}
return false;
}
@Override
public void addGroup(UUID uuid, String group) {
Objects.requireNonNull(uuid);
Objects.requireNonNull(group);
permission.playerAddGroup(null, Bukkit.getOfflinePlayer(uuid), group);
}
@Override
public void removeGroup(UUID uuid, String group) {
Objects.requireNonNull(uuid);
Objects.requireNonNull(group);
permission.playerRemoveGroup(null, Bukkit.getOfflinePlayer(uuid), group);
}
}