Fixed code smells

This commit is contained in:
Florian CUNY 2019-02-22 10:40:05 +01:00
parent 29eb4b0486
commit 587e400287
2 changed files with 38 additions and 40 deletions

View File

@ -1,10 +1,12 @@
package world.bentobox.bentobox.api.user;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
import org.apache.commons.lang.math.NumberUtils;
import org.bukkit.Bukkit;
@ -245,11 +247,8 @@ public class User {
if (sender != null) {
return sender.isOp();
}
if (playerUUID != null) {
OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(playerUUID);
if (offlinePlayer != null) {
return offlinePlayer.isOp();
}
if (playerUUID != null && offlinePlayer != null) {
return offlinePlayer.isOp();
}
return false;
}
@ -262,33 +261,40 @@ public class User {
* @return max value
*/
public int getPermissionValue(String permissionPrefix, int defaultValue) {
int value = defaultValue;
// If there is a dot at the end of the permissionPrefix, remove it
if (permissionPrefix.endsWith(".")) {
permissionPrefix = permissionPrefix.substring(0, permissionPrefix.length()-1);
}
int value = defaultValue;
for (PermissionAttachmentInfo perms : player.getEffectivePermissions()) {
if (perms.getPermission().startsWith(permissionPrefix + ".")) {
// Get the max value should there be more than one
if (perms.getPermission().contains(permissionPrefix + ".*")) {
return value;
} else {
String[] spl = perms.getPermission().split(permissionPrefix + ".");
if (spl.length > 1) {
if (!NumberUtils.isNumber(spl[1])) {
plugin.logError("Player " + player.getName() + " has permission: '" + perms.getPermission() + "' <-- the last part MUST be a number! Ignoring...");
} else {
int v = Integer.parseInt(spl[1]);
if (v < 0) {
return v;
}
value = Math.max(value, v);
final String permPrefix = permissionPrefix + ".";
List<String> permissions = player.getEffectivePermissions().stream()
.map(PermissionAttachmentInfo::getPermission)
.filter(permission -> permission.startsWith(permPrefix))
.collect(Collectors.toList());
for (String permission : permissions) {
if (permission.contains(permPrefix + "*")) {
// 'Star' permission
return value;
} else {
String[] spl = permission.split(permPrefix);
if (spl.length > 1) {
if (!NumberUtils.isNumber(spl[1])) {
plugin.logError("Player " + player.getName() + " has permission: '" + permission + "' <-- the last part MUST be a number! Ignoring...");
} else {
int v = Integer.parseInt(spl[1]);
if (v < 0) {
return v;
}
value = Math.max(value, v);
}
}
}
}
return value;
}

View File

@ -78,8 +78,7 @@ public class JoinLeaveListener implements Listener {
}
// Clear inventory if required
this.clearPlayersInventory(Util.getWorld(event.getPlayer().getWorld()),
User.getInstance(event.getPlayer()));
clearPlayersInventory(Util.getWorld(event.getPlayer().getWorld()), User.getInstance(event.getPlayer()));
}
}
@ -89,11 +88,9 @@ public class JoinLeaveListener implements Listener {
* @param event SwitchWorld event.
*/
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerSwitchWorld(final PlayerChangedWorldEvent event)
{
public void onPlayerSwitchWorld(final PlayerChangedWorldEvent event) {
// Clear inventory if required
this.clearPlayersInventory(Util.getWorld(event.getPlayer().getWorld()),
User.getInstance(event.getPlayer()));
clearPlayersInventory(Util.getWorld(event.getPlayer().getWorld()), User.getInstance(event.getPlayer()));
}
@ -103,26 +100,21 @@ public class JoinLeaveListener implements Listener {
* @param world World where cleaning must occur.
* @param user Targeted user.
*/
private void clearPlayersInventory(World world, User user)
{
private void clearPlayersInventory(World world, @NonNull User user) {
// Clear inventory if required
Players players = this.players.getPlayer(user.getUniqueId());
Players playerData = players.getPlayer(user.getUniqueId());
if (!players.getPendingKicks().isEmpty() &&
players.getPendingKicks().contains(world.getName()))
{
if (plugin.getIWM().isOnLeaveResetEnderChest(world))
{
if (!playerData.getPendingKicks().isEmpty() && playerData.getPendingKicks().contains(world.getName())) {
if (plugin.getIWM().isOnLeaveResetEnderChest(world)) {
user.getPlayer().getEnderChest().clear();
}
if (plugin.getIWM().isOnLeaveResetInventory(world))
{
if (plugin.getIWM().isOnLeaveResetInventory(world)) {
user.getPlayer().getInventory().clear();
}
players.getPendingKicks().remove(world.getName());
this.players.save(user.getUniqueId());
playerData.getPendingKicks().remove(world.getName());
players.save(user.getUniqueId());
}
}