mirror of
https://github.com/BentoBoxWorld/Level.git
synced 2025-01-10 18:38:20 +01:00
Fixed sonar cloud code smells.
This commit is contained in:
parent
45577e446f
commit
ad69385607
@ -192,7 +192,6 @@ public class Level extends Addon implements Listener {
|
|||||||
// Disable
|
// Disable
|
||||||
logError("Level blockconfig.yml settings could not load! Addon disabled.");
|
logError("Level blockconfig.yml settings could not load! Addon disabled.");
|
||||||
setState(State.DISABLED);
|
setState(State.DISABLED);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -455,7 +455,7 @@ public class LevelsManager {
|
|||||||
* @param owner - owner of the island
|
* @param owner - owner of the island
|
||||||
* @param r - results of the calculation
|
* @param r - results of the calculation
|
||||||
*/
|
*/
|
||||||
private void setIslandResults(World world, @Nullable UUID owner, Results r) {
|
private void setIslandResults(World world, @NonNull UUID owner, Results r) {
|
||||||
LevelsData ld = levelsCache.computeIfAbsent(owner, LevelsData::new);
|
LevelsData ld = levelsCache.computeIfAbsent(owner, LevelsData::new);
|
||||||
ld.setLevel(world, r.getLevel());
|
ld.setLevel(world, r.getLevel());
|
||||||
ld.setUwCount(world, r.getUwCount());
|
ld.setUwCount(world, r.getUwCount());
|
||||||
|
@ -3,6 +3,7 @@ package world.bentobox.level.config;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.EnumMap;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -15,67 +16,93 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
|||||||
|
|
||||||
import world.bentobox.level.Level;
|
import world.bentobox.level.Level;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains all the block values, limits and world differences
|
||||||
|
* @author tastybento
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class BlockConfig {
|
public class BlockConfig {
|
||||||
|
|
||||||
private Map<Material, Integer> blockLimits = new HashMap<>();
|
private Map<Material, Integer> blockLimits = new EnumMap<>(Material.class);
|
||||||
private Map<Material, Integer> blockValues = new HashMap<>();
|
private Map<Material, Integer> blockValues = new EnumMap<>(Material.class);
|
||||||
private final Map<World, Map<Material, Integer>> worldBlockValues = new HashMap<>();
|
private final Map<World, Map<Material, Integer>> worldBlockValues = new HashMap<>();
|
||||||
|
private Level addon;
|
||||||
|
|
||||||
public BlockConfig(Level level, YamlConfiguration blockValues, File file) throws IOException {
|
/**
|
||||||
|
* Loads block limits, values and world settings and then saves them again
|
||||||
|
* @param addon - addon
|
||||||
|
* @param blockValues - yaml configuration file containing the block values
|
||||||
|
* @param file - the file representing the yaml config. Will be saved after readong.
|
||||||
|
* @throws IOException - if there is an error
|
||||||
|
*/
|
||||||
|
public BlockConfig(Level addon, YamlConfiguration blockValues, File file) throws IOException {
|
||||||
|
this.addon = addon;
|
||||||
if (blockValues.isConfigurationSection("limits")) {
|
if (blockValues.isConfigurationSection("limits")) {
|
||||||
HashMap<Material, Integer> bl = new HashMap<>();
|
setBlockLimits(loadBlockLimits(blockValues));
|
||||||
ConfigurationSection limits = Objects.requireNonNull(blockValues.getConfigurationSection("limits"));
|
|
||||||
for (String material : limits.getKeys(false)) {
|
|
||||||
try {
|
|
||||||
Material mat = Material.valueOf(material);
|
|
||||||
bl.put(mat, limits.getInt(material, 0));
|
|
||||||
} catch (Exception e) {
|
|
||||||
level.logWarning("Unknown material (" + material + ") in blockconfig.yml Limits section. Skipping...");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
setBlockLimits(bl);
|
|
||||||
}
|
}
|
||||||
if (blockValues.isConfigurationSection("blocks")) {
|
if (blockValues.isConfigurationSection("blocks")) {
|
||||||
ConfigurationSection blocks = Objects.requireNonNull(blockValues.getConfigurationSection("blocks"));
|
setBlockValues(loadBlockValues(blockValues));
|
||||||
Map<Material, Integer> bv = new HashMap<>();
|
|
||||||
// Update blockvalues to latest settings
|
|
||||||
Arrays.stream(Material.values()).filter(Material::isBlock)
|
|
||||||
.filter(m -> !m.name().startsWith("LEGACY_"))
|
|
||||||
.filter(m -> !m.isAir())
|
|
||||||
.filter(m -> !m.equals(Material.WATER))
|
|
||||||
.forEach(m -> {
|
|
||||||
if (!blocks.contains(m.name(), true)) {
|
|
||||||
blocks.set(m.name(), 1);
|
|
||||||
}
|
|
||||||
bv.put(m, blocks.getInt(m.name(), 1));
|
|
||||||
});
|
|
||||||
setBlockValues(bv);
|
|
||||||
} else {
|
} else {
|
||||||
level.logWarning("No block values in blockconfig.yml! All island levels will be zero!");
|
addon.logWarning("No block values in blockconfig.yml! All island levels will be zero!");
|
||||||
}
|
}
|
||||||
// Worlds
|
// Worlds
|
||||||
if (blockValues.isConfigurationSection("worlds")) {
|
if (blockValues.isConfigurationSection("worlds")) {
|
||||||
ConfigurationSection worlds = Objects.requireNonNull(blockValues.getConfigurationSection("worlds"));
|
loadWorlds(blockValues);
|
||||||
for (String world : Objects.requireNonNull(worlds).getKeys(false)) {
|
|
||||||
World bWorld = Bukkit.getWorld(world);
|
|
||||||
if (bWorld != null) {
|
|
||||||
ConfigurationSection worldValues = worlds.getConfigurationSection(world);
|
|
||||||
for (String material : Objects.requireNonNull(worldValues).getKeys(false)) {
|
|
||||||
Material mat = Material.valueOf(material);
|
|
||||||
Map<Material, Integer> values = worldBlockValues.getOrDefault(bWorld, new HashMap<>());
|
|
||||||
values.put(mat, worldValues.getInt(material));
|
|
||||||
worldBlockValues.put(bWorld, values);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
level.logWarning("Level Addon: No such world in blockconfig.yml : " + world);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// All done
|
// All done
|
||||||
blockValues.save(file);
|
blockValues.save(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void loadWorlds(YamlConfiguration blockValues2) {
|
||||||
|
ConfigurationSection worlds = Objects.requireNonNull(blockValues2.getConfigurationSection("worlds"));
|
||||||
|
for (String world : Objects.requireNonNull(worlds).getKeys(false)) {
|
||||||
|
World bWorld = Bukkit.getWorld(world);
|
||||||
|
if (bWorld != null) {
|
||||||
|
ConfigurationSection worldValues = worlds.getConfigurationSection(world);
|
||||||
|
for (String material : Objects.requireNonNull(worldValues).getKeys(false)) {
|
||||||
|
Material mat = Material.valueOf(material);
|
||||||
|
Map<Material, Integer> values = worldBlockValues.getOrDefault(bWorld, new EnumMap<>(Material.class));
|
||||||
|
values.put(mat, worldValues.getInt(material));
|
||||||
|
worldBlockValues.put(bWorld, values);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
addon.logWarning("Level Addon: No such world in blockconfig.yml : " + world);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<Material, Integer> loadBlockValues(YamlConfiguration blockValues2) {
|
||||||
|
ConfigurationSection blocks = Objects.requireNonNull(blockValues2.getConfigurationSection("blocks"));
|
||||||
|
Map<Material, Integer> bv = new EnumMap<>(Material.class);
|
||||||
|
// Update blockvalues to latest settings
|
||||||
|
Arrays.stream(Material.values()).filter(Material::isBlock)
|
||||||
|
.filter(m -> !m.name().startsWith("LEGACY_"))
|
||||||
|
.filter(m -> !m.isAir())
|
||||||
|
.filter(m -> !m.equals(Material.WATER))
|
||||||
|
.forEach(m -> {
|
||||||
|
if (!blocks.contains(m.name(), true)) {
|
||||||
|
blocks.set(m.name(), 1);
|
||||||
|
}
|
||||||
|
bv.put(m, blocks.getInt(m.name(), 1));
|
||||||
|
});
|
||||||
|
return bv;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<Material, Integer> loadBlockLimits(YamlConfiguration blockValues2) {
|
||||||
|
Map<Material, Integer> bl = new EnumMap<>(Material.class);
|
||||||
|
ConfigurationSection limits = Objects.requireNonNull(blockValues2.getConfigurationSection("limits"));
|
||||||
|
for (String material : limits.getKeys(false)) {
|
||||||
|
try {
|
||||||
|
Material mat = Material.valueOf(material);
|
||||||
|
bl.put(mat, limits.getInt(material, 0));
|
||||||
|
} catch (Exception e) {
|
||||||
|
addon.logWarning("Unknown material (" + material + ") in blockconfig.yml Limits section. Skipping...");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return bl;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the blockLimits
|
* @return the blockLimits
|
||||||
*/
|
*/
|
||||||
@ -83,10 +110,10 @@ public class BlockConfig {
|
|||||||
return blockLimits;
|
return blockLimits;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @param blockLimits2 the blockLimits to set
|
* @param bl the blockLimits to set
|
||||||
*/
|
*/
|
||||||
private void setBlockLimits(HashMap<Material, Integer> blockLimits2) {
|
private void setBlockLimits(Map<Material, Integer> bl) {
|
||||||
this.blockLimits = blockLimits2;
|
this.blockLimits = bl;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @return the blockValues
|
* @return the blockValues
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package world.bentobox.level.objects;
|
package world.bentobox.level.objects;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.EnumMap;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -213,7 +214,7 @@ public class LevelsData implements DataObject {
|
|||||||
*/
|
*/
|
||||||
public void setUwCount(World world, Multiset<Material> uwCount) {
|
public void setUwCount(World world, Multiset<Material> uwCount) {
|
||||||
if (this.uwCount == null) this.uwCount = new HashMap<>();
|
if (this.uwCount == null) this.uwCount = new HashMap<>();
|
||||||
Map<Material, Integer> count = new HashMap<>();
|
Map<Material, Integer> count = new EnumMap<>(Material.class);
|
||||||
uwCount.forEach(m -> count.put(m, uwCount.count(m)));
|
uwCount.forEach(m -> count.put(m, uwCount.count(m)));
|
||||||
|
|
||||||
this.uwCount.put(world.getName(), count);
|
this.uwCount.put(world.getName(), count);
|
||||||
@ -224,7 +225,7 @@ public class LevelsData implements DataObject {
|
|||||||
*/
|
*/
|
||||||
public void setMdCount(World world, Multiset<Material> mdCount) {
|
public void setMdCount(World world, Multiset<Material> mdCount) {
|
||||||
if (this.mdCount == null) this.mdCount = new HashMap<>();
|
if (this.mdCount == null) this.mdCount = new HashMap<>();
|
||||||
Map<Material, Integer> count = new HashMap<>();
|
Map<Material, Integer> count = new EnumMap<>(Material.class);
|
||||||
mdCount.forEach(m -> count.put(m, mdCount.count(m)));
|
mdCount.forEach(m -> count.put(m, mdCount.count(m)));
|
||||||
|
|
||||||
this.mdCount.put(world.getName(), count);
|
this.mdCount.put(world.getName(), count);
|
||||||
|
@ -5,7 +5,7 @@ package world.bentobox.level.panels;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.EnumMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ public class DetailsGUITab implements Tab, ClickHandler {
|
|||||||
*/
|
*/
|
||||||
private static final Map<Material, Material> M2I;
|
private static final Map<Material, Material> M2I;
|
||||||
static {
|
static {
|
||||||
Map<Material, Material> m2i = new HashMap<>();
|
Map<Material, Material> m2i = new EnumMap<>(Material.class);
|
||||||
m2i.put(Material.WATER, Material.WATER_BUCKET);
|
m2i.put(Material.WATER, Material.WATER_BUCKET);
|
||||||
m2i.put(Material.LAVA, Material.LAVA_BUCKET);
|
m2i.put(Material.LAVA, Material.LAVA_BUCKET);
|
||||||
m2i.put(Material.AIR, Material.BLACK_STAINED_GLASS_PANE);
|
m2i.put(Material.AIR, Material.BLACK_STAINED_GLASS_PANE);
|
||||||
@ -133,7 +133,7 @@ public class DetailsGUITab implements Tab, ClickHandler {
|
|||||||
items = new ArrayList<>();
|
items = new ArrayList<>();
|
||||||
LevelsData ld = addon.getManager().getLevelsData(island.getOwner());
|
LevelsData ld = addon.getManager().getLevelsData(island.getOwner());
|
||||||
// Get the items from the report
|
// Get the items from the report
|
||||||
Map<Material, Integer> sumTotal = new HashMap<>();
|
Map<Material, Integer> sumTotal = new EnumMap<>(Material.class);
|
||||||
sumTotal.putAll(ld.getMdCount(world));
|
sumTotal.putAll(ld.getMdCount(world));
|
||||||
sumTotal.putAll(ld.getUwCount(world));
|
sumTotal.putAll(ld.getUwCount(world));
|
||||||
switch(type) {
|
switch(type) {
|
||||||
|
@ -10,6 +10,8 @@ import world.bentobox.level.Level;
|
|||||||
|
|
||||||
public class LevelRequestHandler extends AddonRequestHandler {
|
public class LevelRequestHandler extends AddonRequestHandler {
|
||||||
|
|
||||||
|
private static final Object WORLD_NAME = "world-name";
|
||||||
|
private static final Object PLAYER = "player";
|
||||||
private final Level addon;
|
private final Level addon;
|
||||||
|
|
||||||
public LevelRequestHandler(Level addon) {
|
public LevelRequestHandler(Level addon) {
|
||||||
@ -32,12 +34,12 @@ public class LevelRequestHandler extends AddonRequestHandler {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (map == null || map.isEmpty()
|
if (map == null || map.isEmpty()
|
||||||
|| map.get("world-name") == null || !(map.get("world-name") instanceof String)
|
|| map.get(WORLD_NAME) == null || !(map.get(WORLD_NAME) instanceof String)
|
||||||
|| map.get("player") == null || !(map.get("player") instanceof UUID)
|
|| map.get(PLAYER) == null || !(map.get(PLAYER) instanceof UUID)
|
||||||
|| Bukkit.getWorld((String) map.get("world-name")) == null) {
|
|| Bukkit.getWorld((String) map.get(WORLD_NAME)) == null) {
|
||||||
return 0L;
|
return 0L;
|
||||||
}
|
}
|
||||||
|
|
||||||
return addon.getManager().getIslandLevel(Bukkit.getWorld((String) map.get("world-name")), (UUID) map.get("player"));
|
return addon.getManager().getIslandLevel(Bukkit.getWorld((String) map.get(WORLD_NAME)), (UUID) map.get(PLAYER));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user