Skip to content

Commit faba0d5

Browse files
committed
Minor cleanup
1 parent 42c3d3b commit faba0d5

File tree

7 files changed

+38
-61
lines changed

7 files changed

+38
-61
lines changed

API/src/main/java/me/innectic/permissify/api/PermissifyAPI.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import java.lang.reflect.InvocationTargetException;
3737
import java.util.ArrayList;
3838
import java.util.Optional;
39-
import java.util.logging.Level;
4039
import java.util.logging.Logger;
4140

4241
/**
@@ -75,9 +74,6 @@ public void initialize(HandlerType type, Optional<ConnectionInformation> connect
7574
databaseHandler.ifPresent(handler -> {
7675
handler.initialize();
7776
handler.reload(new ArrayList<>());
78-
boolean connected = handler.connect();
79-
if (connected) logger.info("Connected to the database.");
80-
else logger.log(Level.SEVERE, "Unable to connect to the database.");
8177
});
8278
logger.info("Registering modules...");
8379
moduleLoader.loadModules(plugin);

API/src/main/java/me/innectic/permissify/api/PermissifyConstants.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public class PermissifyConstants {
8585
public static final String PLAYER_ALREADY_HAS_PERMISSION = PERMISSIFY_PREFIX + "&c&lPlayer <PLAYER> already has permission <PERMISSION>";
8686
public static final String PLAYER_DOES_NOT_HAVE_PERMISSION = PERMISSIFY_PREFIX + "&c&lPlayer <PLAYER> does not have permission <PERMISSION>";
8787
public static final String ALREADY_MAIN_GROUP = PERMISSIFY_PREFIX + "&c&l<GROUP> is already the main group!";
88+
public static final String GROUP_ALREADY_EXISTS = PERMISSIFY_PREFIX + "&c&l<GROUP> already exists!";
8889

8990
public static final String EMPTY_DEFAULT_GROUP_NAME = "&c&lNONE";
9091
public static final String DEFAULT_GROUP_RESPONSE = PERMISSIFY_PREFIX + "&e&lThe current default group is '<GROUP>&e&l'.";
@@ -107,8 +108,6 @@ public class PermissifyConstants {
107108
public static final String NOT_ENOUGH_ARGUMENTS_PROFILE_SAVE = PERMISSIFY_PREFIX + "&c&lNot enough arguments! &e&l/permissify profile save [fileName]";
108109
public static final String NOT_ENOUGH_ARGUMENTS_PROFILE_LOAD = PERMISSIFY_PREFIX + "&c&lNot enough arguments! &e&l/permissify profile load [source]";
109110
public static final String NOT_ENOUGH_ARGUMENTS_SUPERADMIN = PERMISSIFY_PREFIX + "&c&l/Not enough arguments! &e&l/permissify superadmin <grant|remove> <player>";
110-
public static final String NOT_ENOUGH_ARGUMENTS_SUPERADMIN_GRANT = PERMISSIFY_PREFIX + "&c&lNot enough arguments! &e&l/permissify superadmin grant <player>";
111-
public static final String NOT_ENOUGH_ARGUMENTS_SUPERADMIN_REMOVE = PERMISSIFY_PREFIX + "&c&lNot enough arguments! &e&l/permissify superadmin remove <player>";
112111

113112
public static final String PROFILE_SAVED = PERMISSIFY_PREFIX + "&e&lSaved profile '<PROFILE>'.";
114113
public static final String PROFILE_NOT_SAVED = PERMISSIFY_PREFIX + "&c&lUnable to save profile '<PROFILE>'";

API/src/main/java/me/innectic/permissify/api/database/DatabaseHandler.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,6 @@ public abstract class DatabaseHandler {
5353
*/
5454
public abstract void initialize();
5555

56-
/**
57-
* Connect to the database
58-
*
59-
* @return if the connection was successful or not
60-
*/
61-
public abstract boolean connect();
62-
6356
/**
6457
* Clear the handler's cache and reload all needed values.
6558
*
@@ -141,14 +134,14 @@ public abstract class DatabaseHandler {
141134
* @param chatColor the color of the chat message
142135
* @return if the group was created
143136
*/
144-
public abstract boolean createGroup(String name, String displayName, String prefix, String suffix, String chatColor);
137+
public abstract Tristate createGroup(String name, String displayName, String prefix, String suffix, String chatColor);
145138

146139
/**
147140
* Delete a permission group
148141
*
149142
* @param name the name of the group
150143
*/
151-
public abstract boolean deleteGroup(String name);
144+
public abstract Tristate deleteGroup(String name);
152145

153146
/**
154147
* Get the permission group from name.

API/src/main/java/me/innectic/permissify/api/database/handlers/SQLHandler.java

Lines changed: 24 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public void initialize() {
116116
groupPermissionsStatement.close();
117117

118118
PreparedStatement groupsStatement = connection.prepareStatement("CREATE TABLE IF NOT EXISTS " + database +
119-
"groups (name VARCHAR(100) NOT NULL UNIQUE, displayName VARCHAR(100) NOT NULL UNIQUE, prefix VARCHAR(100) NOT NULL, suffix VARCHAR(100) NOT NULL, chatcolor VARCHAR(4) NOT NULL, defaultGroup TINYINT NOT NULL, ladder VARCHAR(767))");
119+
"groups (name VARCHAR(100) NOT NULL UNIQUE, displayName VARCHAR(100) NOT NULL, prefix VARCHAR(100) NOT NULL, suffix VARCHAR(100) NOT NULL, chatcolor VARCHAR(4) NOT NULL, defaultGroup TINYINT NOT NULL, ladder VARCHAR(767))");
120120
groupsStatement.execute();
121121
groupsStatement.close();
122122

@@ -161,19 +161,6 @@ public void initialize() {
161161
}
162162
}
163163

164-
@Override
165-
public boolean connect() {
166-
Optional<Connection> connection = getConnection();
167-
boolean connected = connection.isPresent();
168-
169-
connection.ifPresent(c -> {
170-
try {
171-
c.close();
172-
} catch (SQLException ignored) {}
173-
});
174-
return connected;
175-
}
176-
177164
@Override
178165
public void reload(List<UUID> onlinePlayers) {
179166
cachedGroups = new HashMap<>();
@@ -426,16 +413,16 @@ public List<Permission> getPermissions(UUID uuid) {
426413
}
427414

428415
@Override
429-
public boolean createGroup(String name, String displayName, String prefix, String suffix, String chatColor) {
416+
public Tristate createGroup(String name, String displayName, String prefix, String suffix, String chatColor) {
430417
// Make sure that this group doesn't already exist
431-
if (cachedGroups.getOrDefault(name, null) != null) return false;
418+
if (cachedGroups.getOrDefault(name, null) != null) return Tristate.NONE;
432419
// Add the new group to the cache
433420
cachedGroups.put(name, new PermissionGroup(name, displayName, chatColor, prefix, suffix));
434421

435422
Optional<Connection> connection = getConnection();
436423
if (!connection.isPresent()) {
437424
PermissifyAPI.get().ifPresent(api -> api.getDisplayUtil().displayError(ConnectionError.REJECTED, Optional.empty()));
438-
return false;
425+
return Tristate.FALSE;
439426
}
440427

441428
try {
@@ -455,14 +442,14 @@ public boolean createGroup(String name, String displayName, String prefix, Strin
455442
e.printStackTrace();
456443
}
457444

458-
return true;
445+
return Tristate.TRUE;
459446
}
460447

461448
@Override
462-
public boolean deleteGroup(String name) {
449+
public Tristate deleteGroup(String name) {
463450
Optional<PermissionGroup> group = getGroups().entrySet().stream().map(Map.Entry::getValue).filter(g -> g.getName().equalsIgnoreCase(name)).findFirst();
464451
if (!group.isPresent())
465-
return false;
452+
return Tristate.NONE;
466453

467454
if (defaultGroup.isPresent() && defaultGroup.get().getName().equalsIgnoreCase(name)) {
468455
setDefaultGroup(null);
@@ -475,7 +462,7 @@ public boolean deleteGroup(String name) {
475462
Optional<Connection> connection = getConnection();
476463
if (!connection.isPresent()) {
477464
PermissifyAPI.get().ifPresent(api -> api.getDisplayUtil().displayError(ConnectionError.REJECTED, Optional.empty()));
478-
return false;
465+
return Tristate.FALSE;
479466
}
480467
try {
481468
PreparedStatement statement = connection.get().prepareStatement("DELETE FROM groups WHERE name=?");
@@ -484,12 +471,12 @@ public boolean deleteGroup(String name) {
484471
statement.close();
485472
connection.get().close();
486473

487-
return true;
474+
return Tristate.TRUE;
488475
} catch (SQLException e) {
489476
PermissifyAPI.get().ifPresent(api -> api.getDisplayUtil().displayError(ConnectionError.DATABASE_EXCEPTION, Optional.of(e)));
490477
e.printStackTrace();
491478
}
492-
return false;
479+
return Tristate.FALSE;
493480
}
494481

495482
@Override
@@ -684,27 +671,27 @@ public boolean removeGroupPermission(String group, String... permissions) {
684671
.filter(permission -> permission.getName().equalsIgnoreCase(group)).findFirst();
685672
if (!permissionGroup.isPresent()) return false;
686673

687-
for (String permission : permissions) {
688-
if (!permissionGroup.get().hasPermission(permission)) return false;
689-
permissionGroup.get().removePermission(permission);
690-
Optional<Connection> connection = getConnection();
691-
if (!connection.isPresent()) {
692-
PermissifyAPI.get().ifPresent(api -> api.getDisplayUtil().displayError(ConnectionError.REJECTED, Optional.empty()));
693-
return false;
694-
}
695-
try {
674+
Optional<Connection> connection = getConnection();
675+
if (!connection.isPresent()) {
676+
PermissifyAPI.get().ifPresent(api -> api.getDisplayUtil().displayError(ConnectionError.REJECTED, Optional.empty()));
677+
return false;
678+
}
679+
try {
680+
for (String permission : permissions) {
681+
if (!permissionGroup.get().hasPermission(permission)) return false;
682+
permissionGroup.get().removePermission(permission);
683+
696684
PreparedStatement statement = connection.get().prepareStatement("DELETE FROM groupPermissions WHERE groupName=? AND permission=?");
697685
statement.setString(1, group);
698686
statement.setString(2, permission);
699687
statement.execute();
700688
statement.close();
701-
connection.get().close();
702-
703-
return true;
704-
} catch (SQLException e) {
689+
}
690+
connection.get().close();
691+
return true;
692+
} catch (SQLException e) {
705693
PermissifyAPI.get().ifPresent(api -> api.getDisplayUtil().displayError(ConnectionError.REJECTED, Optional.of(e)));
706694
e.printStackTrace();
707-
}
708695
}
709696
return false;
710697
}

API/src/main/java/me/innectic/permissify/api/permission/PermissionGroup.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ public class PermissionGroup {
5151
* @param permission the permission to remove
5252
*/
5353
public void removePermission(String permission) {
54-
Optional<Permission> perm = permissions.stream().filter(groupPermission -> groupPermission.getPermission().equals(permission)).findFirst();
55-
perm.ifPresent(groupPermission -> groupPermission.setGranted(false));
54+
permissions.removeIf(p -> p.getPermission().equals(permission));
5655
}
5756

5857
/**

Spigot/src/main/java/me/innectic/permissify/spigot/commands/subcommand/GroupCommand.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
package me.innectic.permissify.spigot.commands.subcommand;
2626

2727
import me.innectic.permissify.api.database.DatabaseHandler;
28+
import me.innectic.permissify.api.util.Tristate;
2829
import me.innectic.permissify.spigot.PermissifyMain;
2930
import me.innectic.permissify.api.PermissifyConstants;
3031
import me.innectic.permissify.api.permission.Permission;
@@ -65,8 +66,9 @@ public String handleAddGroup(CommandSender sender, String[] args) {
6566
if (!ColorUtil.isValidChatColor(args[4])) return PermissifyConstants.INVALID_CHATCOLOR.replace("<COLOR>", args[4]);
6667

6768
// Create the new group
68-
boolean created = plugin.getPermissifyAPI().getDatabaseHandler().get().createGroup(args[0], args[1], args[2], args[3], args[4]);
69-
if (created) return PermissifyConstants.GROUP_CREATED.replace("<GROUP>", args[0]);
69+
Tristate created = plugin.getPermissifyAPI().getDatabaseHandler().get().createGroup(args[0], args[1], args[2], args[3], args[4]);
70+
if (created == Tristate.TRUE) return PermissifyConstants.GROUP_CREATED.replace("<GROUP>", args[0]);
71+
else if (created == Tristate.NONE) return PermissifyConstants.GROUP_ALREADY_EXISTS.replace("<GROUP>", args[0]);
7072
return PermissifyConstants.UNABLE_TO_CREATE.replace("<TYPE>", "group").replace("<REASON>", "Unable to connect to database.");
7173
}
7274

@@ -92,11 +94,11 @@ public String handleDeleteGroup(CommandSender sender, String[] args) {
9294
if (!group.isPresent()) return PermissifyConstants.INVALID_GROUP.replace("<GROUP>", args[0]);
9395

9496
List<UUID> playersInGroup = group.get().getPlayers().entrySet().stream().map(Map.Entry::getKey).collect(Collectors.toList());
95-
boolean removed = plugin.getPermissifyAPI().getDatabaseHandler().get().deleteGroup(args[0]);
96-
if (removed) {
97+
Tristate removed = plugin.getPermissifyAPI().getDatabaseHandler().get().deleteGroup(args[0]);
98+
if (removed == Tristate.TRUE) {
9799
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> playersInGroup.stream().map(Bukkit::getPlayer).filter(Objects::nonNull).forEach(PermissionUtil::applyPermissions));
98100
return PermissifyConstants.GROUP_REMOVED.replace("<GROUP>", args[0]);
99-
}
101+
} else if (removed == Tristate.NONE) return PermissifyConstants.INVALID_GROUP.replace("<GROUP>", args[0]);
100102
return PermissifyConstants.UNABLE_TO_REMOVE.replace("<TYPE>", "group").replace("<REASON>", "Unable to connect to database");
101103
}
102104

Spigot/src/main/java/me/innectic/permissify/spigot/commands/subcommand/PlayerCommand.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,9 @@ public String handleRemovePlayerFromGroup(CommandSender sender, String[] args) {
9393
if (!group.isPresent()) return PermissifyConstants.INVALID_GROUP.replace("<GROUP>", args[1]);
9494
plugin.getPermissifyAPI().getDatabaseHandler().get().removePlayerFromGroup(targetPlayer.getUniqueId(), group.get());
9595

96-
if (targetPlayer.isOnline()) group.get().getPermissions().forEach(permission ->
97-
targetPlayer.getPlayer().addAttachment(plugin, permission.getPermission(), false));
96+
// TODO: stuff with the new permissible system that's actually done properly
97+
// if (targetPlayer.isOnline()) group.get().getPermissions().forEach(permission ->
98+
// targetPlayer.getPlayer().removeAttachment(new PermissionAttachment(plugin, permission.getPermission())));
9899
plugin.getPermissifyAPI().getDatabaseHandler().get().updateCache(targetPlayer.getUniqueId());
99100
return PermissifyConstants.PLAYER_REMOVED_FROM_GROUP
100101
.replace("<PLAYER>", targetPlayer.getName()).replace("<GROUP>", group.get().getName());

0 commit comments

Comments
 (0)