Refactor Sponge subject handling
This commit is contained in:
@@ -138,7 +138,7 @@ public class ApiProvider implements LuckPermsApi {
|
||||
|
||||
@Override
|
||||
public User getUser(@NonNull String name) {
|
||||
final me.lucko.luckperms.common.core.model.User user = plugin.getUserManager().get(name);
|
||||
final me.lucko.luckperms.common.core.model.User user = plugin.getUserManager().getByUsername(name);
|
||||
return user == null ? null : new UserLink(user);
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ public class ApiProvider implements LuckPermsApi {
|
||||
|
||||
@Override
|
||||
public Group getGroup(@NonNull String name) {
|
||||
final me.lucko.luckperms.common.core.model.Group group = plugin.getGroupManager().get(name);
|
||||
final me.lucko.luckperms.common.core.model.Group group = plugin.getGroupManager().getIfLoaded(name);
|
||||
return group == null ? null : new GroupLink(group);
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ public class ApiProvider implements LuckPermsApi {
|
||||
|
||||
@Override
|
||||
public Track getTrack(@NonNull String name) {
|
||||
final me.lucko.luckperms.common.core.model.Track track = plugin.getTrackManager().get(name);
|
||||
final me.lucko.luckperms.common.core.model.Track track = plugin.getTrackManager().getIfLoaded(name);
|
||||
return track == null ? null : new TrackLink(track);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ public class ParentAdd extends SharedSubCommand {
|
||||
return CommandResult.INVALID_ARGS;
|
||||
}
|
||||
|
||||
Group group = plugin.getGroupManager().get(groupName);
|
||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||
if (group == null) {
|
||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ public class ParentAddTemp extends SharedSubCommand {
|
||||
return CommandResult.INVALID_ARGS;
|
||||
}
|
||||
|
||||
Group group = plugin.getGroupManager().get(groupName);
|
||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||
if (group == null) {
|
||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
||||
return CommandResult.INVALID_ARGS;
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ public class ParentSet extends SharedSubCommand {
|
||||
return CommandResult.INVALID_ARGS;
|
||||
}
|
||||
|
||||
Group group = plugin.getGroupManager().get(groupName);
|
||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||
if (group == null) {
|
||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
@@ -66,7 +66,7 @@ public class DeleteGroup extends SingleCommand {
|
||||
return CommandResult.INVALID_ARGS;
|
||||
}
|
||||
|
||||
Group group = plugin.getGroupManager().get(groupName);
|
||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||
if (group == null) {
|
||||
Message.GROUP_LOAD_ERROR.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
@@ -62,7 +62,7 @@ public class GroupClone extends SubCommand<Group> {
|
||||
return CommandResult.FAILURE;
|
||||
}
|
||||
|
||||
Group newGroup = plugin.getGroupManager().get(newGroupName);
|
||||
Group newGroup = plugin.getGroupManager().getIfLoaded(newGroupName);
|
||||
if (newGroup == null) {
|
||||
Message.GROUP_LOAD_ERROR.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
@@ -60,7 +60,7 @@ public class GroupMainCommand extends MainCommand<Group> {
|
||||
return null;
|
||||
}
|
||||
|
||||
Group group = plugin.getGroupManager().get(target);
|
||||
Group group = plugin.getGroupManager().getIfLoaded(target);
|
||||
|
||||
if (group == null) {
|
||||
Message.GROUP_NOT_FOUND.send(sender);
|
||||
|
||||
@@ -62,7 +62,7 @@ public class GroupRename extends SubCommand<Group> {
|
||||
return CommandResult.FAILURE;
|
||||
}
|
||||
|
||||
Group newGroup = plugin.getGroupManager().get(newGroupName);
|
||||
Group newGroup = plugin.getGroupManager().getIfLoaded(newGroupName);
|
||||
if (newGroup == null) {
|
||||
Message.GROUP_LOAD_ERROR.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
@@ -60,7 +60,7 @@ public class DeleteTrack extends SingleCommand {
|
||||
return CommandResult.INVALID_ARGS;
|
||||
}
|
||||
|
||||
Track track = plugin.getTrackManager().get(trackName);
|
||||
Track track = plugin.getTrackManager().getIfLoaded(trackName);
|
||||
if (track == null) {
|
||||
Message.TRACK_LOAD_ERROR.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
@@ -61,7 +61,7 @@ public class TrackAppend extends SubCommand<Track> {
|
||||
return CommandResult.INVALID_ARGS;
|
||||
}
|
||||
|
||||
Group group = plugin.getGroupManager().get(groupName);
|
||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||
if (group == null) {
|
||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
@@ -62,7 +62,7 @@ public class TrackClone extends SubCommand<Track> {
|
||||
return CommandResult.FAILURE;
|
||||
}
|
||||
|
||||
Track newTrack = plugin.getTrackManager().get(newTrackName);
|
||||
Track newTrack = plugin.getTrackManager().getIfLoaded(newTrackName);
|
||||
if (newTrack == null) {
|
||||
Message.TRACK_LOAD_ERROR.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
@@ -72,7 +72,7 @@ public class TrackInsert extends SubCommand<Track> {
|
||||
return CommandResult.INVALID_ARGS;
|
||||
}
|
||||
|
||||
Group group = plugin.getGroupManager().get(groupName);
|
||||
Group group = plugin.getGroupManager().getIfLoaded(groupName);
|
||||
if (group == null) {
|
||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
@@ -54,7 +54,7 @@ public class TrackMainCommand extends MainCommand<Track> {
|
||||
return null;
|
||||
}
|
||||
|
||||
Track track = plugin.getTrackManager().get(target);
|
||||
Track track = plugin.getTrackManager().getIfLoaded(target);
|
||||
if (track == null) {
|
||||
Message.TRACK_NOT_FOUND.send(sender);
|
||||
return null;
|
||||
|
||||
@@ -62,7 +62,7 @@ public class TrackRename extends SubCommand<Track> {
|
||||
return CommandResult.FAILURE;
|
||||
}
|
||||
|
||||
Track newTrack = plugin.getTrackManager().get(newTrackName);
|
||||
Track newTrack = plugin.getTrackManager().getIfLoaded(newTrackName);
|
||||
if (newTrack == null) {
|
||||
Message.TRACK_LOAD_ERROR.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
@@ -77,7 +77,7 @@ public class UserDemote extends SubCommand<User> {
|
||||
return CommandResult.INVALID_ARGS;
|
||||
}
|
||||
|
||||
Track track = plugin.getTrackManager().get(trackName);
|
||||
Track track = plugin.getTrackManager().getIfLoaded(trackName);
|
||||
if (track == null) {
|
||||
Message.TRACK_DOES_NOT_EXIST.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
@@ -152,7 +152,7 @@ public class UserDemote extends SubCommand<User> {
|
||||
return CommandResult.STATE_ERROR;
|
||||
}
|
||||
|
||||
Group previousGroup = plugin.getGroupManager().get(previous);
|
||||
Group previousGroup = plugin.getGroupManager().getIfLoaded(previous);
|
||||
if (previousGroup == null) {
|
||||
Message.USER_DEMOTE_ERROR_MALFORMED.send(sender, previous);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
@@ -77,7 +77,7 @@ public class UserPromote extends SubCommand<User> {
|
||||
return CommandResult.INVALID_ARGS;
|
||||
}
|
||||
|
||||
Track track = plugin.getTrackManager().get(trackName);
|
||||
Track track = plugin.getTrackManager().getIfLoaded(trackName);
|
||||
if (track == null) {
|
||||
Message.TRACK_DOES_NOT_EXIST.send(sender);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
@@ -152,7 +152,7 @@ public class UserPromote extends SubCommand<User> {
|
||||
return CommandResult.STATE_ERROR;
|
||||
}
|
||||
|
||||
Group nextGroup = plugin.getGroupManager().get(next);
|
||||
Group nextGroup = plugin.getGroupManager().getIfLoaded(next);
|
||||
if (nextGroup == null) {
|
||||
Message.USER_PROMOTE_ERROR_MALFORMED.send(sender, next);
|
||||
return CommandResult.LOADING_ERROR;
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ public class UserSwitchPrimaryGroup extends SubCommand<User> {
|
||||
|
||||
@Override
|
||||
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, User user, List<String> args, String label) throws CommandException {
|
||||
Group group = plugin.getGroupManager().get(args.get(0).toLowerCase());
|
||||
Group group = plugin.getGroupManager().getIfLoaded(args.get(0).toLowerCase());
|
||||
if (group == null) {
|
||||
Message.GROUP_DOES_NOT_EXIST.send(sender);
|
||||
return CommandResult.INVALID_ARGS;
|
||||
|
||||
@@ -45,7 +45,7 @@ public class Group extends PermissionHolder implements Identifiable<String> {
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return name;
|
||||
return name.toLowerCase();
|
||||
}
|
||||
|
||||
public String getRawDisplayName() {
|
||||
|
||||
@@ -285,7 +285,7 @@ public abstract class PermissionHolder {
|
||||
|
||||
for (Map.Entry<Integer, Node> e : sortedParents) {
|
||||
Node parent = e.getValue();
|
||||
Group group = plugin.getGroupManager().get(parent.getGroupName());
|
||||
Group group = plugin.getGroupManager().getIfLoaded(parent.getGroupName());
|
||||
if (group == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -361,7 +361,7 @@ public abstract class PermissionHolder {
|
||||
|
||||
for (Map.Entry<Integer, Node> e : sortedParents) {
|
||||
Node parent = e.getValue();
|
||||
Group group = plugin.getGroupManager().get(parent.getGroupName());
|
||||
Group group = plugin.getGroupManager().getIfLoaded(parent.getGroupName());
|
||||
if (group == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public class Track implements Identifiable<String> {
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return name;
|
||||
return name.toLowerCase();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -59,17 +59,30 @@ public abstract class AbstractManager<I, T extends Identifiable<I>> implements M
|
||||
|
||||
@Override
|
||||
public T getOrMake(I id) {
|
||||
return objects.getUnchecked(id);
|
||||
if (id instanceof String) {
|
||||
return objects.getUnchecked((I) ((String) id).toLowerCase());
|
||||
} else {
|
||||
return objects.getUnchecked(id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public T get(I id) {
|
||||
return objects.getIfPresent(id);
|
||||
public T getIfLoaded(I id) {
|
||||
if (id instanceof String) {
|
||||
return objects.getIfPresent(((String) id).toLowerCase());
|
||||
} else {
|
||||
return objects.getIfPresent(id);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(I id) {
|
||||
return objects.asMap().containsKey(id);
|
||||
if (id instanceof String) {
|
||||
return objects.asMap().containsKey(((String) id).toLowerCase());
|
||||
} else {
|
||||
return objects.asMap().containsKey(id);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -38,7 +38,7 @@ public interface Manager<I, T extends Identifiable<I>> extends Function<I, T> {
|
||||
* Gets a map containing all cached instances held by this manager.
|
||||
* @return all instances held in this manager
|
||||
*/
|
||||
Map<I, T> getAll();
|
||||
Map<I, ? extends T> getAll();
|
||||
|
||||
/**
|
||||
* Gets or creates an object by id
|
||||
@@ -52,7 +52,7 @@ public interface Manager<I, T extends Identifiable<I>> extends Function<I, T> {
|
||||
* @param id The id to search by
|
||||
* @return a {@link T} object if the object is loaded, returns null if the object is not loaded
|
||||
*/
|
||||
T get(I id);
|
||||
T getIfLoaded(I id);
|
||||
|
||||
/**
|
||||
* Check to see if a object is loaded or not
|
||||
|
||||
@@ -35,7 +35,7 @@ public interface UserManager extends Manager<UserIdentifier, User> {
|
||||
* @param name The name to search by
|
||||
* @return a {@link User} object if the user is loaded, returns null if the user is not loaded
|
||||
*/
|
||||
User get(String name);
|
||||
User getByUsername(String name);
|
||||
|
||||
/**
|
||||
* Get a user object by uuid
|
||||
@@ -50,13 +50,6 @@ public interface UserManager extends Manager<UserIdentifier, User> {
|
||||
*/
|
||||
boolean giveDefaultIfNeeded(User user, boolean save);
|
||||
|
||||
/**
|
||||
* Check whether the user's state indicates that they should be persisted to storage.
|
||||
* @param user the user to check
|
||||
* @return true if the user should be saved
|
||||
*/
|
||||
boolean shouldSave(User user);
|
||||
|
||||
/**
|
||||
* Checks to see if the user is online, and if they are not, runs {@link #unload(Identifiable)}
|
||||
* @param user The user to be cleaned up
|
||||
|
||||
+35
-38
@@ -29,7 +29,6 @@ import me.lucko.luckperms.common.core.UserIdentifier;
|
||||
import me.lucko.luckperms.common.core.model.User;
|
||||
import me.lucko.luckperms.common.managers.AbstractManager;
|
||||
import me.lucko.luckperms.common.managers.UserManager;
|
||||
import me.lucko.luckperms.common.utils.Identifiable;
|
||||
import me.lucko.luckperms.exceptions.ObjectAlreadyHasException;
|
||||
|
||||
import java.util.Set;
|
||||
@@ -46,12 +45,8 @@ public class GenericUserManager extends AbstractManager<UserIdentifier, User> im
|
||||
new User(id.getUuid(), id.getUsername(), plugin);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a user object by name
|
||||
* @param name The name to search by
|
||||
* @return a {@link User} object if the user is loaded, returns null if the user is not loaded
|
||||
*/
|
||||
public User get(String name) {
|
||||
@Override
|
||||
public User getByUsername(String name) {
|
||||
for (User user : getAll().values()) {
|
||||
if (user.getName().equalsIgnoreCase(name)) {
|
||||
return user;
|
||||
@@ -60,15 +55,37 @@ public class GenericUserManager extends AbstractManager<UserIdentifier, User> im
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public User get(UUID uuid) {
|
||||
return get(UserIdentifier.of(uuid, null));
|
||||
return getIfLoaded(UserIdentifier.of(uuid, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a user to the default group
|
||||
* @param user the user to give to
|
||||
*/
|
||||
@Override
|
||||
public boolean giveDefaultIfNeeded(User user, boolean save) {
|
||||
return giveDefaultIfNeeded(user, save, plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cleanup(User user) {
|
||||
if (!plugin.isOnline(plugin.getUuidCache().getExternalUUID(user.getUuid()))) {
|
||||
unload(user);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAllUsers() {
|
||||
plugin.doSync(() -> {
|
||||
Set<UUID> players = plugin.getOnlinePlayers();
|
||||
plugin.doAsync(() -> {
|
||||
for (UUID uuid : players) {
|
||||
UUID internal = plugin.getUuidCache().getUUID(uuid);
|
||||
plugin.getStorage().loadUser(internal, "null").join();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public static boolean giveDefaultIfNeeded(User user, boolean save, LuckPermsPlugin plugin) {
|
||||
boolean hasGroup = false;
|
||||
|
||||
if (user.getPrimaryGroup() != null && !user.getPrimaryGroup().isEmpty()) {
|
||||
@@ -96,7 +113,12 @@ public class GenericUserManager extends AbstractManager<UserIdentifier, User> im
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean shouldSave(User user) {
|
||||
/**
|
||||
* Check whether the user's state indicates that they should be persisted to storage.
|
||||
* @param user the user to check
|
||||
* @return true if the user should be saved
|
||||
*/
|
||||
public static boolean shouldSave(User user) {
|
||||
if (user.getNodes().size() != 1) {
|
||||
return true;
|
||||
}
|
||||
@@ -123,29 +145,4 @@ public class GenericUserManager extends AbstractManager<UserIdentifier, User> im
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if the user is online, and if they are not, runs {@link #unload(Identifiable)}
|
||||
* @param user The user to be cleaned up
|
||||
*/
|
||||
public void cleanup(User user) {
|
||||
if (!plugin.isOnline(plugin.getUuidCache().getExternalUUID(user.getUuid()))) {
|
||||
unload(user);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the data of all online users
|
||||
*/
|
||||
public void updateAllUsers() {
|
||||
plugin.doSync(() -> {
|
||||
Set<UUID> players = plugin.getOnlinePlayers();
|
||||
plugin.doAsync(() -> {
|
||||
for (UUID uuid : players) {
|
||||
UUID internal = plugin.getUuidCache().getUUID(uuid);
|
||||
plugin.getStorage().loadUser(internal, "null").join();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ import me.lucko.luckperms.common.core.model.Track;
|
||||
import me.lucko.luckperms.common.core.model.User;
|
||||
import me.lucko.luckperms.common.managers.GroupManager;
|
||||
import me.lucko.luckperms.common.managers.TrackManager;
|
||||
import me.lucko.luckperms.common.managers.impl.GenericUserManager;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
@@ -131,7 +132,7 @@ public class JSONBacking extends FlatfileBacking {
|
||||
return true;
|
||||
});
|
||||
} else {
|
||||
if (plugin.getUserManager().shouldSave(user)) {
|
||||
if (GenericUserManager.shouldSave(user)) {
|
||||
user.clearNodes();
|
||||
user.setPrimaryGroup(null);
|
||||
plugin.getUserManager().giveDefaultIfNeeded(user, false);
|
||||
@@ -151,7 +152,7 @@ public class JSONBacking extends FlatfileBacking {
|
||||
try {
|
||||
return call(() -> {
|
||||
File userFile = new File(usersDir, user.getUuid().toString() + ".json");
|
||||
if (!plugin.getUserManager().shouldSave(user)) {
|
||||
if (!GenericUserManager.shouldSave(user)) {
|
||||
if (userFile.exists()) {
|
||||
userFile.delete();
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@ import me.lucko.luckperms.common.core.model.User;
|
||||
import me.lucko.luckperms.common.data.Log;
|
||||
import me.lucko.luckperms.common.managers.GroupManager;
|
||||
import me.lucko.luckperms.common.managers.TrackManager;
|
||||
import me.lucko.luckperms.common.managers.impl.GenericUserManager;
|
||||
import me.lucko.luckperms.common.storage.DatastoreConfiguration;
|
||||
import org.bson.Document;
|
||||
|
||||
@@ -167,7 +168,7 @@ public class MongoDBBacking extends AbstractBacking {
|
||||
c.replaceOne(new Document("_id", user.getUuid()), fromUser(user));
|
||||
}
|
||||
} else {
|
||||
if (plugin.getUserManager().shouldSave(user)) {
|
||||
if (GenericUserManager.shouldSave(user)) {
|
||||
user.clearNodes();
|
||||
user.setPrimaryGroup(null);
|
||||
plugin.getUserManager().giveDefaultIfNeeded(user, false);
|
||||
@@ -184,7 +185,7 @@ public class MongoDBBacking extends AbstractBacking {
|
||||
|
||||
@Override
|
||||
public boolean saveUser(User user) {
|
||||
if (!plugin.getUserManager().shouldSave(user)) {
|
||||
if (!GenericUserManager.shouldSave(user)) {
|
||||
user.getIoLock().lock();
|
||||
try {
|
||||
return call(() -> {
|
||||
|
||||
@@ -33,6 +33,7 @@ import me.lucko.luckperms.common.core.model.User;
|
||||
import me.lucko.luckperms.common.data.Log;
|
||||
import me.lucko.luckperms.common.managers.GroupManager;
|
||||
import me.lucko.luckperms.common.managers.TrackManager;
|
||||
import me.lucko.luckperms.common.managers.impl.GenericUserManager;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.sql.Connection;
|
||||
@@ -205,7 +206,7 @@ abstract class SQLBacking extends AbstractBacking {
|
||||
}
|
||||
|
||||
} else {
|
||||
if (plugin.getUserManager().shouldSave(user)) {
|
||||
if (GenericUserManager.shouldSave(user)) {
|
||||
user.clearNodes();
|
||||
user.setPrimaryGroup(null);
|
||||
plugin.getUserManager().giveDefaultIfNeeded(user, false);
|
||||
@@ -221,7 +222,7 @@ abstract class SQLBacking extends AbstractBacking {
|
||||
|
||||
@Override
|
||||
public boolean saveUser(User user) {
|
||||
if (!plugin.getUserManager().shouldSave(user)) {
|
||||
if (!GenericUserManager.shouldSave(user)) {
|
||||
user.getIoLock().lock();
|
||||
try {
|
||||
return runQuery(USER_DELETE, preparedStatement -> {
|
||||
|
||||
@@ -30,6 +30,7 @@ import me.lucko.luckperms.common.core.model.Track;
|
||||
import me.lucko.luckperms.common.core.model.User;
|
||||
import me.lucko.luckperms.common.managers.GroupManager;
|
||||
import me.lucko.luckperms.common.managers.TrackManager;
|
||||
import me.lucko.luckperms.common.managers.impl.GenericUserManager;
|
||||
import org.yaml.snakeyaml.DumperOptions;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
|
||||
@@ -113,7 +114,7 @@ public class YAMLBacking extends FlatfileBacking {
|
||||
return true;
|
||||
});
|
||||
} else {
|
||||
if (plugin.getUserManager().shouldSave(user)) {
|
||||
if (GenericUserManager.shouldSave(user)) {
|
||||
user.clearNodes();
|
||||
user.setPrimaryGroup(null);
|
||||
plugin.getUserManager().giveDefaultIfNeeded(user, false);
|
||||
@@ -133,7 +134,7 @@ public class YAMLBacking extends FlatfileBacking {
|
||||
try {
|
||||
return call(() -> {
|
||||
File userFile = new File(usersDir, user.getUuid().toString() + ".yml");
|
||||
if (!plugin.getUserManager().shouldSave(user)) {
|
||||
if (!GenericUserManager.shouldSave(user)) {
|
||||
if (userFile.exists()) {
|
||||
userFile.delete();
|
||||
}
|
||||
|
||||
@@ -22,8 +22,17 @@
|
||||
|
||||
package me.lucko.luckperms.common.utils;
|
||||
|
||||
/**
|
||||
* Interface to represent an identifiable object
|
||||
* @param <T>
|
||||
*/
|
||||
public interface Identifiable<T> {
|
||||
|
||||
/**
|
||||
* Returns the objects identifier.
|
||||
* If the type is a {@link String}, this method must return a {@link String#toLowerCase()} representation
|
||||
* @return the identifier
|
||||
*/
|
||||
T getId();
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user