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

View File

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