Skip to content

Commit 7b52535

Browse files
Cleanup permission holders
1 parent 17f3bd2 commit 7b52535

File tree

16 files changed

+59
-73
lines changed

16 files changed

+59
-73
lines changed

lib/src/main/java/org/galliumpowered/annotation/Command.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
* Required permissions
2828
* TODO-ish
2929
*/
30-
String neededPerms() default "NONE";
30+
String permission() default "";
3131

3232
Args[] args() default {};
3333
}

lib/src/main/java/org/galliumpowered/command/CommandManager.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@ private void doRegister(MCommand cmd, PluginMetadata meta) {
5656

5757
private void internalRegister(String alias, MCommand cmd, PluginMetadata meta) {
5858
if (cmd.getCommand().args().length == 0) {
59-
Gallium.getBridge().registerCommand(alias, cmd.getCommand().neededPerms());
60-
Gallium.getBridge().registerCommand(meta.getId() + ":" + alias, cmd.getCommand().neededPerms());
59+
Gallium.getBridge().registerCommand(alias, cmd.getCommand().permission());
60+
Gallium.getBridge().registerCommand(meta.getId() + ":" + alias, cmd.getCommand().permission());
6161
} else {
6262
// FIXME: Multiple args
63-
Gallium.getBridge().registerCommand(alias, cmd.getCommand().neededPerms(), cmd.getCommand().args());
64-
Gallium.getBridge().registerCommand(meta.getId() + ":" + alias, cmd.getCommand().neededPerms(), cmd.getCommand().args());
63+
Gallium.getBridge().registerCommand(alias, cmd.getCommand().permission(), cmd.getCommand().args());
64+
Gallium.getBridge().registerCommand(meta.getId() + ":" + alias, cmd.getCommand().permission(), cmd.getCommand().args());
6565
}
6666
}
6767

lib/src/main/java/org/galliumpowered/command/MCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public List<String> suggest(CommandContext ctx) {
4848
if (parent == this) {
4949
AtomicBoolean canExec = new AtomicBoolean(false);
5050
ctx.ifConsole(caller -> canExec.set(true));
51-
ctx.ifPlayer(player -> canExec.set(player.hasPermission(sub.getCommand().neededPerms())));
51+
ctx.ifPlayer(player -> canExec.set(player.hasPermission(sub.getCommand().permission())));
5252
if (canExec.get()) {
5353
subcmdNames.addAll(Arrays.asList(sub.getCommand().aliases()));
5454
}

lib/src/main/java/org/galliumpowered/database/Database.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import org.galliumpowered.exceptions.GalliumDatabaseException;
77
import org.galliumpowered.permission.Group;
88
import org.galliumpowered.permission.GroupManager;
9-
import org.galliumpowered.permission.PermissionOwner;
9+
import org.galliumpowered.permission.PermissionHolder;
1010
import org.apache.logging.log4j.LogManager;
1111
import org.apache.logging.log4j.Logger;
1212
import org.checkerframework.checker.nullness.qual.Nullable;
@@ -239,7 +239,7 @@ public void setPlayerPrefix(Player player, String prefix) throws SQLException {
239239
* @param owner group or player permission owner
240240
* @throws SQLException
241241
*/
242-
public void insertPermission(String permission, PermissionOwner owner) throws SQLException {
242+
public void insertPermission(String permission, PermissionHolder owner) throws SQLException {
243243
insertPermission.setString(1, permission);
244244
insertPermission.setString(2, owner.getName());
245245
insertPermission.execute();
@@ -251,7 +251,7 @@ public void insertPermission(String permission, PermissionOwner owner) throws SQ
251251
* @param owner group or player permission owner
252252
* @throws SQLException
253253
*/
254-
public void removePermission(String permission, PermissionOwner owner) throws SQLException {
254+
public void removePermission(String permission, PermissionHolder owner) throws SQLException {
255255
removePermisson.setString(1, permission);
256256
removePermisson.setString(2, owner.getName());
257257
removePermisson.execute();

lib/src/main/java/org/galliumpowered/permission/Group.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
import org.galliumpowered.chat.Colors;
55

66
import java.sql.SQLException;
7-
import java.util.ArrayList;
7+
import java.util.List;
88
import java.util.Objects;
99

10-
public class Group {
11-
String name;
12-
ArrayList<String> permissions;
10+
public class Group implements PermissionHolder {
11+
private final String name;
12+
private final List<String> permissions;
1313
String prefix;
1414

15-
public Group(String name, ArrayList<String> permissions, String prefix) {
15+
public Group(String name, List<String> permissions, String prefix) {
1616
this.name = name;
1717
this.permissions = permissions;
1818
this.prefix = prefix;
@@ -30,7 +30,7 @@ public String getName() {
3030
* The permissions the group holds
3131
* @return Permisisons of the group
3232
*/
33-
public ArrayList<String> getPermissions() {
33+
public List<String> getPermissions() {
3434
return permissions;
3535
}
3636

@@ -48,7 +48,7 @@ public String getPrefix() {
4848
* @throws SQLException
4949
*/
5050
public void addPermission(String permission) throws SQLException {
51-
Gallium.getDatabase().insertPermission(permission, new PermissionOwner(this));
51+
Gallium.getDatabase().insertPermission(permission, this);
5252
}
5353

5454
/**
@@ -57,14 +57,15 @@ public void addPermission(String permission) throws SQLException {
5757
* @throws SQLException
5858
*/
5959
public void removePermission(String permission) throws SQLException {
60-
Gallium.getDatabase().removePermission(permission, new PermissionOwner(this));
60+
Gallium.getDatabase().removePermission(permission, this);
6161
}
6262

6363
/**
6464
* Whether the group has a specific permission
6565
* @param permission The permission to check
6666
* @return True if the permission is present, otherwise false
6767
*/
68+
@Override
6869
public boolean hasPermission(String permission) {
6970
return permissions.contains(permission);
7071
}

lib/src/main/java/org/galliumpowered/permission/GroupManager.java

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@
44

55
import java.util.ArrayList;
66
import java.util.Optional;
7-
import java.util.concurrent.atomic.AtomicReference;
87

98
public class GroupManager {
10-
private ArrayList<Group> groups = new ArrayList<>();
11-
12-
public GroupManager() {}
9+
private final ArrayList<Group> groups = new ArrayList<>();
1310

1411
/**
1512
* Add a {@link Group}
@@ -51,16 +48,8 @@ public ArrayList<Group> getGroups() {
5148
* @return the group
5249
*/
5350
public Optional<Group> getGroupByName(String name) {
54-
AtomicReference<Group> returnGroup = new AtomicReference<>();
55-
groups.stream()
51+
return groups.stream()
5652
.filter(group -> group.getName().equalsIgnoreCase(name))
57-
.findFirst()
58-
.ifPresent(returnGroup::set);
59-
// System.out.println(returnGroup.get());
60-
if (returnGroup.get() == null) {
61-
return Optional.empty();
62-
} else {
63-
return Optional.of(returnGroup.get());
64-
}
53+
.findFirst();
6554
}
6655
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.galliumpowered.permission;
2+
3+
4+
import java.util.List;
5+
6+
public interface PermissionHolder {
7+
/**
8+
* The name of the permission owner
9+
* @return Permission owner name
10+
*/
11+
String getName();
12+
13+
/**
14+
* Check if this permission holder has a permission
15+
*
16+
* @param permissionNode Permission to check
17+
* @return If the holder has the permission
18+
*/
19+
boolean hasPermission(String permissionNode);
20+
21+
/**
22+
* Get a list of permissions this permission holder has
23+
*
24+
* @return Permission list
25+
*/
26+
List<String> getPermissions();
27+
}

lib/src/main/java/org/galliumpowered/permission/PermissionManager.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,10 @@
88

99
import java.sql.SQLException;
1010
import java.util.ArrayList;
11-
import java.util.Objects;
1211
import java.util.Optional;
1312

1413
public class PermissionManager {
15-
private static final Logger log = LogManager.getLogger("Gallium/PluginManager");
16-
public PermissionManager() {
17-
18-
}
14+
private static final Logger log = LogManager.getLogger("Gallium/PermissionManager");
1915

2016
/**
2117
* Check if a player has a permission
@@ -25,7 +21,7 @@ public PermissionManager() {
2521
*/
2622
public boolean playerHasPermission(Player player, String permission) {
2723
log.debug("Called playerHasPermission");
28-
if (Objects.equals(permission, "NONE")) return true;
24+
if (permission.isEmpty()) return true;
2925
try {
3026
// Check against player
3127
log.debug("Checking against player...");

lib/src/main/java/org/galliumpowered/permission/PermissionOwner.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

lib/src/main/java/org/galliumpowered/world/entity/Player.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
import org.galliumpowered.chat.Colors;
77
import org.galliumpowered.command.CommandCaller;
88
import org.galliumpowered.permission.Group;
9-
import org.galliumpowered.permission.PermissionOwner;
9+
import org.galliumpowered.permission.PermissionHolder;
1010
import org.galliumpowered.world.World;
1111

1212
import java.sql.SQLException;
1313
import java.util.ArrayList;
1414
import java.util.Objects;
1515
import java.util.Optional;
1616

17-
public interface Player extends Entity, CommandCaller {
17+
public interface Player extends Entity, CommandCaller, PermissionHolder {
1818
/**
1919
* Get the player's UUID
2020
* @return the uuid
@@ -87,7 +87,7 @@ default void setGroup(Group group) throws SQLException {
8787
* @throws SQLException
8888
*/
8989
default void addPermission(String permission) throws SQLException {
90-
Gallium.getDatabase().insertPermission(permission, new PermissionOwner(this));
90+
Gallium.getDatabase().insertPermission(permission, this);
9191
}
9292

9393
/**
@@ -96,7 +96,7 @@ default void addPermission(String permission) throws SQLException {
9696
* @throws SQLException
9797
*/
9898
default void removePermission(String permission) throws SQLException {
99-
Gallium.getDatabase().removePermission(permission, new PermissionOwner(this));
99+
Gallium.getDatabase().removePermission(permission, this);
100100
}
101101

102102
/**

0 commit comments

Comments
 (0)