change some collection init
This commit is contained in:
parent
3cfcb19f6d
commit
623a47d877
@ -2,13 +2,14 @@ package com.flemmli97.flan.api;
|
|||||||
|
|
||||||
import com.flemmli97.flan.config.ConfigHandler;
|
import com.flemmli97.flan.config.ConfigHandler;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.Items;
|
import net.minecraft.item.Items;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.village.raid.Raid;
|
import net.minecraft.village.raid.Raid;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -17,12 +18,12 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
public class PermissionRegistry {
|
public class PermissionRegistry {
|
||||||
|
|
||||||
private static final Map<String, ClaimPermission> permissions = Maps.newLinkedHashMap();
|
private static final Map<String, ClaimPermission> permissions = new LinkedHashMap<>();
|
||||||
private static final Map<String, ClaimPermission> globalPermissions = Maps.newLinkedHashMap();
|
private static final Map<String, ClaimPermission> globalPermissions = new LinkedHashMap<>();
|
||||||
|
|
||||||
private static final Map<Identifier, ClaimPermission> interactBlocks = Maps.newHashMap();
|
private static final Map<Identifier, ClaimPermission> interactBlocks = new HashMap<>();
|
||||||
private static final Map<Identifier, ClaimPermission> breakBlocks = Maps.newHashMap();
|
private static final Map<Identifier, ClaimPermission> breakBlocks = new HashMap<>();
|
||||||
private static final Map<Identifier, ClaimPermission> items = Maps.newHashMap();
|
private static final Map<Identifier, ClaimPermission> items = new HashMap<>();
|
||||||
|
|
||||||
private static boolean locked;
|
private static boolean locked;
|
||||||
|
|
||||||
|
@ -7,8 +7,6 @@ import com.flemmli97.flan.config.ConfigHandler;
|
|||||||
import com.flemmli97.flan.player.PlayerClaimData;
|
import com.flemmli97.flan.player.PlayerClaimData;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import com.google.common.collect.Sets;
|
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
@ -22,7 +20,10 @@ import net.minecraft.util.ActionResult;
|
|||||||
import net.minecraft.util.Formatting;
|
import net.minecraft.util.Formatting;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -37,12 +38,12 @@ public class Claim implements IPermissionContainer {
|
|||||||
|
|
||||||
private UUID claimID;
|
private UUID claimID;
|
||||||
private LiteralText claimName;
|
private LiteralText claimName;
|
||||||
private final Map<ClaimPermission, Boolean> globalPerm = Maps.newHashMap();
|
private final Map<ClaimPermission, Boolean> globalPerm = new HashMap<>();
|
||||||
private final Map<String, Map<ClaimPermission, Boolean>> permissions = Maps.newHashMap();
|
private final Map<String, Map<ClaimPermission, Boolean>> permissions = new HashMap<>();
|
||||||
|
|
||||||
private final Map<UUID, String> playersGroups = Maps.newHashMap();
|
private final Map<UUID, String> playersGroups = new HashMap<>();
|
||||||
|
|
||||||
private final List<Claim> subClaims = Lists.newArrayList();
|
private final List<Claim> subClaims = new ArrayList<>();
|
||||||
|
|
||||||
private UUID parent;
|
private UUID parent;
|
||||||
private Claim parentClaim;
|
private Claim parentClaim;
|
||||||
@ -72,7 +73,6 @@ public class Claim implements IPermissionContainer {
|
|||||||
this.world = world;
|
this.world = world;
|
||||||
this.setDirty(true);
|
this.setDirty(true);
|
||||||
PermissionRegistry.getPerms().stream().filter(perm -> perm.defaultVal).forEach(perm -> this.globalPerm.put(perm, true));
|
PermissionRegistry.getPerms().stream().filter(perm -> perm.defaultVal).forEach(perm -> this.globalPerm.put(perm, true));
|
||||||
System.out.println(this.globalPerm);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Claim fromJson(JsonObject obj, UUID owner, ServerWorld world) {
|
public static Claim fromJson(JsonObject obj, UUID owner, ServerWorld world) {
|
||||||
@ -275,7 +275,7 @@ public class Claim implements IPermissionContainer {
|
|||||||
public Set<Claim> tryCreateSubClaim(BlockPos pos1, BlockPos pos2) {
|
public Set<Claim> tryCreateSubClaim(BlockPos pos1, BlockPos pos2) {
|
||||||
Claim sub = new Claim(pos1, new BlockPos(pos2.getX(), 0, pos2.getZ()), this.owner, this.world);
|
Claim sub = new Claim(pos1, new BlockPos(pos2.getX(), 0, pos2.getZ()), this.owner, this.world);
|
||||||
sub.setClaimID(this.generateUUID());
|
sub.setClaimID(this.generateUUID());
|
||||||
Set<Claim> conflicts = Sets.newHashSet();
|
Set<Claim> conflicts = new HashSet<>();
|
||||||
for (Claim other : this.subClaims)
|
for (Claim other : this.subClaims)
|
||||||
if (sub.intersects(other)) {
|
if (sub.intersects(other)) {
|
||||||
conflicts.add(other);
|
conflicts.add(other);
|
||||||
@ -318,7 +318,7 @@ public class Claim implements IPermissionContainer {
|
|||||||
int[] dims = claim.getDimensions();
|
int[] dims = claim.getDimensions();
|
||||||
BlockPos opposite = new BlockPos(dims[0] == from.getX() ? dims[1] : dims[0], dims[4], dims[2] == from.getZ() ? dims[3] : dims[2]);
|
BlockPos opposite = new BlockPos(dims[0] == from.getX() ? dims[1] : dims[0], dims[4], dims[2] == from.getZ() ? dims[3] : dims[2]);
|
||||||
Claim newClaim = new Claim(opposite, to, claim.claimID, this.world);
|
Claim newClaim = new Claim(opposite, to, claim.claimID, this.world);
|
||||||
Set<Claim> conflicts = Sets.newHashSet();
|
Set<Claim> conflicts = new HashSet<>();
|
||||||
for (Claim other : this.subClaims)
|
for (Claim other : this.subClaims)
|
||||||
if (!claim.equals(other) && newClaim.intersects(other))
|
if (!claim.equals(other) && newClaim.intersects(other))
|
||||||
conflicts.add(other);
|
conflicts.add(other);
|
||||||
@ -346,12 +346,12 @@ public class Claim implements IPermissionContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<String> playersFromGroup(MinecraftServer server, String group) {
|
public List<String> playersFromGroup(MinecraftServer server, String group) {
|
||||||
List<UUID> l = Lists.newArrayList();
|
List<UUID> l = new ArrayList<>();
|
||||||
this.playersGroups.forEach((uuid, g) -> {
|
this.playersGroups.forEach((uuid, g) -> {
|
||||||
if (g.equals(group))
|
if (g.equals(group))
|
||||||
l.add(uuid);
|
l.add(uuid);
|
||||||
});
|
});
|
||||||
List<String> names = Lists.newArrayList();
|
List<String> names = new ArrayList<>();
|
||||||
l.forEach(uuid -> {
|
l.forEach(uuid -> {
|
||||||
GameProfile prof = server.getUserCache().getByUuid(uuid);
|
GameProfile prof = server.getUserCache().getByUuid(uuid);
|
||||||
if (prof != null)
|
if (prof != null)
|
||||||
@ -391,7 +391,7 @@ public class Claim implements IPermissionContainer {
|
|||||||
if (mode > 1)
|
if (mode > 1)
|
||||||
mode = -1;
|
mode = -1;
|
||||||
boolean has = this.permissions.containsKey(group);
|
boolean has = this.permissions.containsKey(group);
|
||||||
Map<ClaimPermission, Boolean> perms = has ? this.permissions.get(group) : Maps.newHashMap();
|
Map<ClaimPermission, Boolean> perms = has ? this.permissions.get(group) : new HashMap<>();
|
||||||
if (mode == -1)
|
if (mode == -1)
|
||||||
perms.remove(perm);
|
perms.remove(perm);
|
||||||
else
|
else
|
||||||
@ -407,7 +407,7 @@ public class Claim implements IPermissionContainer {
|
|||||||
public boolean removePermGroup(ServerPlayerEntity player, String group) {
|
public boolean removePermGroup(ServerPlayerEntity player, String group) {
|
||||||
if (this.canInteract(player, PermissionRegistry.EDITPERMS, player.getBlockPos())) {
|
if (this.canInteract(player, PermissionRegistry.EDITPERMS, player.getBlockPos())) {
|
||||||
this.permissions.remove(group);
|
this.permissions.remove(group);
|
||||||
List<UUID> toRemove = Lists.newArrayList();
|
List<UUID> toRemove = new ArrayList<>();
|
||||||
this.playersGroups.forEach((uuid, g) -> {
|
this.playersGroups.forEach((uuid, g) -> {
|
||||||
if (g.equals(group))
|
if (g.equals(group))
|
||||||
toRemove.add(uuid);
|
toRemove.add(uuid);
|
||||||
@ -472,7 +472,7 @@ public class Claim implements IPermissionContainer {
|
|||||||
if (obj.has("PermGroup")) {
|
if (obj.has("PermGroup")) {
|
||||||
JsonObject perms = obj.getAsJsonObject("PermGroup");
|
JsonObject perms = obj.getAsJsonObject("PermGroup");
|
||||||
perms.entrySet().forEach(key -> {
|
perms.entrySet().forEach(key -> {
|
||||||
Map<ClaimPermission, Boolean> map = Maps.newHashMap();
|
Map<ClaimPermission, Boolean> map = new HashMap<>();
|
||||||
JsonObject group = key.getValue().getAsJsonObject();
|
JsonObject group = key.getValue().getAsJsonObject();
|
||||||
group.entrySet().forEach(gkey -> map.put(PermissionRegistry.get(gkey.getKey()), gkey.getValue().getAsBoolean()));
|
group.entrySet().forEach(gkey -> map.put(PermissionRegistry.get(gkey.getKey()), gkey.getValue().getAsBoolean()));
|
||||||
this.permissions.put(key.getKey(), map);
|
this.permissions.put(key.getKey(), map);
|
||||||
@ -564,7 +564,7 @@ public class Claim implements IPermissionContainer {
|
|||||||
|
|
||||||
public List<Text> infoString(ServerPlayerEntity player) {
|
public List<Text> infoString(ServerPlayerEntity player) {
|
||||||
boolean perms = this.canInteract(player, PermissionRegistry.EDITPERMS, player.getBlockPos());
|
boolean perms = this.canInteract(player, PermissionRegistry.EDITPERMS, player.getBlockPos());
|
||||||
List<Text> l = Lists.newArrayList();
|
List<Text> l = new ArrayList<>();
|
||||||
l.add(PermHelper.simpleColoredText("=============================================", Formatting.GREEN));
|
l.add(PermHelper.simpleColoredText("=============================================", Formatting.GREEN));
|
||||||
GameProfile prof = this.owner != null ? player.getServer().getUserCache().getByUuid(this.owner) : null;
|
GameProfile prof = this.owner != null ? player.getServer().getUserCache().getByUuid(this.owner) : null;
|
||||||
String ownerName = this.isAdminClaim() ? "Admin" : prof != null ? prof.getName() : "<UNKNOWN>";
|
String ownerName = this.isAdminClaim() ? "Admin" : prof != null ? prof.getName() : "<UNKNOWN>";
|
||||||
@ -575,7 +575,7 @@ public class Claim implements IPermissionContainer {
|
|||||||
if (perms) {
|
if (perms) {
|
||||||
l.add(PermHelper.simpleColoredText(String.format(ConfigHandler.lang.claimInfoPerms, this.globalPerm), Formatting.RED));
|
l.add(PermHelper.simpleColoredText(String.format(ConfigHandler.lang.claimInfoPerms, this.globalPerm), Formatting.RED));
|
||||||
l.add(PermHelper.simpleColoredText(ConfigHandler.lang.claimGroupInfoHeader, Formatting.RED));
|
l.add(PermHelper.simpleColoredText(ConfigHandler.lang.claimGroupInfoHeader, Formatting.RED));
|
||||||
Map<String, List<String>> nameToGroup = Maps.newHashMap();
|
Map<String, List<String>> nameToGroup = new HashMap<>();
|
||||||
for (Map.Entry<UUID, String> e : this.playersGroups.entrySet()) {
|
for (Map.Entry<UUID, String> e : this.playersGroups.entrySet()) {
|
||||||
GameProfile pgroup = player.getServer().getUserCache().getByUuid(e.getKey());
|
GameProfile pgroup = player.getServer().getUserCache().getByUuid(e.getKey());
|
||||||
if (prof != null) {
|
if (prof != null) {
|
||||||
@ -588,7 +588,7 @@ public class Claim implements IPermissionContainer {
|
|||||||
for (Map.Entry<String, Map<ClaimPermission, Boolean>> e : this.permissions.entrySet()) {
|
for (Map.Entry<String, Map<ClaimPermission, Boolean>> e : this.permissions.entrySet()) {
|
||||||
l.add(PermHelper.simpleColoredText(String.format(" %s:", e.getKey()), Formatting.DARK_RED));
|
l.add(PermHelper.simpleColoredText(String.format(" %s:", e.getKey()), Formatting.DARK_RED));
|
||||||
l.add(PermHelper.simpleColoredText(String.format(ConfigHandler.lang.claimGroupPerms, e.getValue()), Formatting.RED));
|
l.add(PermHelper.simpleColoredText(String.format(ConfigHandler.lang.claimGroupPerms, e.getValue()), Formatting.RED));
|
||||||
l.add(PermHelper.simpleColoredText(String.format(ConfigHandler.lang.claimGroupPlayers, nameToGroup.getOrDefault(e.getKey(), Lists.newArrayList())), Formatting.RED));
|
l.add(PermHelper.simpleColoredText(String.format(ConfigHandler.lang.claimGroupPlayers, nameToGroup.getOrDefault(e.getKey(), new ArrayList<>())), Formatting.RED));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
l.add(PermHelper.simpleColoredText("=============================================", Formatting.GREEN));
|
l.add(PermHelper.simpleColoredText("=============================================", Formatting.GREEN));
|
||||||
|
@ -10,7 +10,6 @@ import com.flemmli97.flan.player.EnumEditMode;
|
|||||||
import com.flemmli97.flan.player.PlayerClaimData;
|
import com.flemmli97.flan.player.PlayerClaimData;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
@ -37,7 +36,10 @@ import java.io.File;
|
|||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -47,9 +49,9 @@ public class ClaimStorage {
|
|||||||
|
|
||||||
public static final String adminClaimString = "!AdminClaims";
|
public static final String adminClaimString = "!AdminClaims";
|
||||||
private final Long2ObjectArrayMap<List<Claim>> claims = new Long2ObjectArrayMap<>();
|
private final Long2ObjectArrayMap<List<Claim>> claims = new Long2ObjectArrayMap<>();
|
||||||
private final Map<UUID, Claim> claimUUIDMap = Maps.newHashMap();
|
private final Map<UUID, Claim> claimUUIDMap = new HashMap<>();
|
||||||
private final Map<UUID, Set<Claim>> playerClaimMap = Maps.newHashMap();
|
private final Map<UUID, Set<Claim>> playerClaimMap = new HashMap<>();
|
||||||
private final Set<UUID> dirty = Sets.newHashSet();
|
private final Set<UUID> dirty = new HashSet<>();
|
||||||
private final GlobalClaim globalClaim;
|
private final GlobalClaim globalClaim;
|
||||||
|
|
||||||
public static ClaimStorage get(ServerWorld world) {
|
public static ClaimStorage get(ServerWorld world) {
|
||||||
@ -97,7 +99,7 @@ public class ClaimStorage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Set<Claim> conflicts(Claim claim, Claim except) {
|
private Set<Claim> conflicts(Claim claim, Claim except) {
|
||||||
Set<Claim> conflicted = Sets.newHashSet();
|
Set<Claim> conflicted = new HashSet<>();
|
||||||
int[] chunks = getChunkPos(claim);
|
int[] chunks = getChunkPos(claim);
|
||||||
for (int x = chunks[0]; x <= chunks[1]; x++)
|
for (int x = chunks[0]; x <= chunks[1]; x++)
|
||||||
for (int z = chunks[2]; z <= chunks[3]; z++) {
|
for (int z = chunks[2]; z <= chunks[3]; z++) {
|
||||||
@ -131,7 +133,7 @@ public class ClaimStorage {
|
|||||||
return val.isEmpty() ? null : val;
|
return val.isEmpty() ? null : val;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
this.playerClaimMap.getOrDefault(claim.getOwner(), Sets.newHashSet()).remove(claim);
|
this.playerClaimMap.getOrDefault(claim.getOwner(), new HashSet<>()).remove(claim);
|
||||||
this.dirty.add(claim.getOwner());
|
this.dirty.add(claim.getOwner());
|
||||||
return this.claimUUIDMap.remove(claim.getClaimID()) != null;
|
return this.claimUUIDMap.remove(claim.getClaimID()) != null;
|
||||||
}
|
}
|
||||||
@ -214,7 +216,7 @@ public class ClaimStorage {
|
|||||||
public boolean transferOwner(Claim claim, ServerPlayerEntity player, UUID newOwner) {
|
public boolean transferOwner(Claim claim, ServerPlayerEntity player, UUID newOwner) {
|
||||||
if (!player.getUuid().equals(claim.getOwner()))
|
if (!player.getUuid().equals(claim.getOwner()))
|
||||||
return false;
|
return false;
|
||||||
this.playerClaimMap.merge(claim.getOwner(), Sets.newHashSet(), (old, val) -> {
|
this.playerClaimMap.merge(claim.getOwner(), new HashSet<>(), (old, val) -> {
|
||||||
old.remove(claim);
|
old.remove(claim);
|
||||||
return old;
|
return old;
|
||||||
});
|
});
|
||||||
@ -320,8 +322,8 @@ public class ClaimStorage {
|
|||||||
File griefPrevention = server.getSavePath(WorldSavePath.ROOT).resolve("plugins/GriefPreventionData/ClaimData").toFile();
|
File griefPrevention = server.getSavePath(WorldSavePath.ROOT).resolve("plugins/GriefPreventionData/ClaimData").toFile();
|
||||||
if (!griefPrevention.exists())
|
if (!griefPrevention.exists())
|
||||||
return;
|
return;
|
||||||
Map<File, List<File>> subClaimMap = Maps.newHashMap();
|
Map<File, List<File>> subClaimMap = new HashMap<>();
|
||||||
Map<Integer, File> intFileMap = Maps.newHashMap();
|
Map<Integer, File> intFileMap = new HashMap<>();
|
||||||
|
|
||||||
Set<ClaimPermission> managers = complementOf(PermissionRegistry.EDITCLAIM);
|
Set<ClaimPermission> managers = complementOf(PermissionRegistry.EDITCLAIM);
|
||||||
Set<ClaimPermission> builders = complementOf(PermissionRegistry.EDITPERMS, PermissionRegistry.EDITCLAIM);
|
Set<ClaimPermission> builders = complementOf(PermissionRegistry.EDITPERMS, PermissionRegistry.EDITCLAIM);
|
||||||
@ -335,7 +337,7 @@ public class ClaimStorage {
|
|||||||
PermissionRegistry.LECTERNTAKE, PermissionRegistry.ENDCRYSTALPLACE, PermissionRegistry.PROJECTILES, PermissionRegistry.TRAMPLE, PermissionRegistry.RAID,
|
PermissionRegistry.LECTERNTAKE, PermissionRegistry.ENDCRYSTALPLACE, PermissionRegistry.PROJECTILES, PermissionRegistry.TRAMPLE, PermissionRegistry.RAID,
|
||||||
PermissionRegistry.BUCKET, PermissionRegistry.ANIMALINTERACT, PermissionRegistry.HURTANIMAL, PermissionRegistry.TRADING, PermissionRegistry.ARMORSTAND,
|
PermissionRegistry.BUCKET, PermissionRegistry.ANIMALINTERACT, PermissionRegistry.HURTANIMAL, PermissionRegistry.TRADING, PermissionRegistry.ARMORSTAND,
|
||||||
PermissionRegistry.BREAKNONLIVING);
|
PermissionRegistry.BREAKNONLIVING);
|
||||||
Map<String, Set<ClaimPermission>> perms = Maps.newHashMap();
|
Map<String, Set<ClaimPermission>> perms = new HashMap<>();
|
||||||
perms.put("managers", managers);
|
perms.put("managers", managers);
|
||||||
perms.put("builders", builders);
|
perms.put("builders", builders);
|
||||||
perms.put("containers", containers);
|
perms.put("containers", containers);
|
||||||
@ -479,7 +481,7 @@ public class ClaimStorage {
|
|||||||
Object obj = values.get(key);
|
Object obj = values.get(key);
|
||||||
if (obj instanceof List)
|
if (obj instanceof List)
|
||||||
return (List<T>) obj;
|
return (List<T>) obj;
|
||||||
return Lists.newArrayList();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RegistryKey<World> worldRegFromString(String spigot) {
|
public static RegistryKey<World> worldRegFromString(String spigot) {
|
||||||
|
@ -2,7 +2,6 @@ package com.flemmli97.flan.claim;
|
|||||||
|
|
||||||
import com.flemmli97.flan.api.ClaimPermission;
|
import com.flemmli97.flan.api.ClaimPermission;
|
||||||
import com.flemmli97.flan.api.PermissionRegistry;
|
import com.flemmli97.flan.api.PermissionRegistry;
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import net.minecraft.block.AbstractButtonBlock;
|
import net.minecraft.block.AbstractButtonBlock;
|
||||||
import net.minecraft.block.AbstractPressurePlateBlock;
|
import net.minecraft.block.AbstractPressurePlateBlock;
|
||||||
import net.minecraft.block.AbstractRedstoneGateBlock;
|
import net.minecraft.block.AbstractRedstoneGateBlock;
|
||||||
@ -35,17 +34,18 @@ import net.minecraft.item.Items;
|
|||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class ObjectToPermissionMap {
|
public class ObjectToPermissionMap {
|
||||||
|
|
||||||
private static final Map<Block, ClaimPermission> blockToPermission = Maps.newHashMap();
|
private static final Map<Block, ClaimPermission> blockToPermission = new HashMap<>();
|
||||||
private static final Map<Predicate<Block>, Supplier<ClaimPermission>> blockPermissionBuilder = Maps.newHashMap();
|
private static final Map<Predicate<Block>, Supplier<ClaimPermission>> blockPermissionBuilder = new HashMap<>();
|
||||||
|
|
||||||
private static final Map<Item, ClaimPermission> itemToPermission = Maps.newHashMap();
|
private static final Map<Item, ClaimPermission> itemToPermission = new HashMap<>();
|
||||||
private static final Map<Predicate<Item>, Supplier<ClaimPermission>> itemPermissionBuilder = Maps.newHashMap();
|
private static final Map<Predicate<Item>, Supplier<ClaimPermission>> itemPermissionBuilder = new HashMap<>();
|
||||||
|
|
||||||
public static void reload(MinecraftServer server) {
|
public static void reload(MinecraftServer server) {
|
||||||
blockToPermission.clear();
|
blockToPermission.clear();
|
||||||
|
@ -11,8 +11,6 @@ import com.flemmli97.flan.player.EnumDisplayType;
|
|||||||
import com.flemmli97.flan.player.EnumEditMode;
|
import com.flemmli97.flan.player.EnumEditMode;
|
||||||
import com.flemmli97.flan.player.OfflinePlayerData;
|
import com.flemmli97.flan.player.OfflinePlayerData;
|
||||||
import com.flemmli97.flan.player.PlayerClaimData;
|
import com.flemmli97.flan.player.PlayerClaimData;
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import com.mojang.authlib.GameProfile;
|
import com.mojang.authlib.GameProfile;
|
||||||
import com.mojang.brigadier.Command;
|
import com.mojang.brigadier.Command;
|
||||||
import com.mojang.brigadier.CommandDispatcher;
|
import com.mojang.brigadier.CommandDispatcher;
|
||||||
@ -38,6 +36,7 @@ import net.minecraft.world.World;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -80,7 +79,7 @@ public class CommandClaim {
|
|||||||
.then(CommandManager.literal("remove").then(CommandManager.argument("group", StringArgumentType.word()).suggests(CommandClaim::groupSuggestion)
|
.then(CommandManager.literal("remove").then(CommandManager.argument("group", StringArgumentType.word()).suggests(CommandClaim::groupSuggestion)
|
||||||
.then(CommandManager.argument("players", GameProfileArgumentType.gameProfile()).suggests((context, build) -> {
|
.then(CommandManager.argument("players", GameProfileArgumentType.gameProfile()).suggests((context, build) -> {
|
||||||
ServerPlayerEntity player = context.getSource().getPlayer();
|
ServerPlayerEntity player = context.getSource().getPlayer();
|
||||||
List<String> list = Lists.newArrayList();
|
List<String> list = new ArrayList<>();
|
||||||
ServerCommandSource src = context.getSource();
|
ServerCommandSource src = context.getSource();
|
||||||
ClaimStorage storage = ClaimStorage.get(src.getWorld());
|
ClaimStorage storage = ClaimStorage.get(src.getWorld());
|
||||||
Claim claim = storage.getClaimAt(src.getPlayer().getBlockPos());
|
Claim claim = storage.getClaimAt(src.getPlayer().getBlockPos());
|
||||||
@ -292,7 +291,7 @@ public class CommandClaim {
|
|||||||
private static int listClaimsFromUUID(CommandContext<ServerCommandSource> context, UUID of) throws CommandSyntaxException {
|
private static int listClaimsFromUUID(CommandContext<ServerCommandSource> context, UUID of) throws CommandSyntaxException {
|
||||||
MinecraftServer server = context.getSource().getMinecraftServer();
|
MinecraftServer server = context.getSource().getMinecraftServer();
|
||||||
ServerPlayerEntity player = of == null ? context.getSource().getPlayer() : server.getPlayerManager().getPlayer(of);
|
ServerPlayerEntity player = of == null ? context.getSource().getPlayer() : server.getPlayerManager().getPlayer(of);
|
||||||
Map<World, Collection<Claim>> claims = Maps.newHashMap();
|
Map<World, Collection<Claim>> claims = new HashMap<>();
|
||||||
for (ServerWorld world : server.getWorlds()) {
|
for (ServerWorld world : server.getWorlds()) {
|
||||||
ClaimStorage storage = ClaimStorage.get(world);
|
ClaimStorage storage = ClaimStorage.get(world);
|
||||||
claims.put(world, storage.allClaimsFromPlayer(player != null ? player.getUuid() : of));
|
claims.put(world, storage.allClaimsFromPlayer(player != null ? player.getUuid() : of));
|
||||||
@ -356,7 +355,7 @@ public class CommandClaim {
|
|||||||
return Command.SINGLE_SUCCESS;
|
return Command.SINGLE_SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<String> players = Lists.newArrayList();
|
List<String> players = new ArrayList<>();
|
||||||
for (GameProfile prof : GameProfileArgumentType.getProfileArgument(context, "players")) {
|
for (GameProfile prof : GameProfileArgumentType.getProfileArgument(context, "players")) {
|
||||||
for (ServerWorld world : src.getWorld().getServer().getWorlds()) {
|
for (ServerWorld world : src.getWorld().getServer().getWorlds()) {
|
||||||
ClaimStorage storage = ClaimStorage.get(world);
|
ClaimStorage storage = ClaimStorage.get(world);
|
||||||
@ -401,7 +400,7 @@ public class CommandClaim {
|
|||||||
|
|
||||||
private static int giveClaimBlocks(CommandContext<ServerCommandSource> context) throws CommandSyntaxException {
|
private static int giveClaimBlocks(CommandContext<ServerCommandSource> context) throws CommandSyntaxException {
|
||||||
ServerCommandSource src = context.getSource();
|
ServerCommandSource src = context.getSource();
|
||||||
List<String> players = Lists.newArrayList();
|
List<String> players = new ArrayList<>();
|
||||||
int amount = IntegerArgumentType.getInteger(context, "amount");
|
int amount = IntegerArgumentType.getInteger(context, "amount");
|
||||||
for (GameProfile prof : GameProfileArgumentType.getProfileArgument(context, "players")) {
|
for (GameProfile prof : GameProfileArgumentType.getProfileArgument(context, "players")) {
|
||||||
ServerPlayerEntity player = src.getMinecraftServer().getPlayerManager().getPlayer(prof.getId());
|
ServerPlayerEntity player = src.getMinecraftServer().getPlayerManager().getPlayer(prof.getId());
|
||||||
@ -420,7 +419,7 @@ public class CommandClaim {
|
|||||||
|
|
||||||
private static CompletableFuture<Suggestions> groupSuggestion(CommandContext<ServerCommandSource> context, SuggestionsBuilder build) throws CommandSyntaxException {
|
private static CompletableFuture<Suggestions> groupSuggestion(CommandContext<ServerCommandSource> context, SuggestionsBuilder build) throws CommandSyntaxException {
|
||||||
ServerPlayerEntity player = context.getSource().getPlayer();
|
ServerPlayerEntity player = context.getSource().getPlayer();
|
||||||
List<String> list = Lists.newArrayList();
|
List<String> list = new ArrayList<>();
|
||||||
ClaimStorage storage = ClaimStorage.get(player.getServerWorld());
|
ClaimStorage storage = ClaimStorage.get(player.getServerWorld());
|
||||||
Claim claim = storage.getClaimAt(player.getBlockPos());
|
Claim claim = storage.getClaimAt(player.getBlockPos());
|
||||||
if (claim != null && claim.canInteract(player, PermissionRegistry.EDITPERMS, player.getBlockPos())) {
|
if (claim != null && claim.canInteract(player, PermissionRegistry.EDITPERMS, player.getBlockPos())) {
|
||||||
@ -499,7 +498,7 @@ public class CommandClaim {
|
|||||||
PermHelper.genericNoPermMessage(player);
|
PermHelper.genericNoPermMessage(player);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
List<String> modified = Lists.newArrayList();
|
List<String> modified = new ArrayList<>();
|
||||||
for (GameProfile prof : GameProfileArgumentType.getProfileArgument(context, "players")) {
|
for (GameProfile prof : GameProfileArgumentType.getProfileArgument(context, "players")) {
|
||||||
if (claim.setPlayerGroup(prof.getId(), group, force))
|
if (claim.setPlayerGroup(prof.getId(), group, force))
|
||||||
modified.add(prof.getName());
|
modified.add(prof.getName());
|
||||||
|
@ -3,7 +3,6 @@ package com.flemmli97.flan.config;
|
|||||||
import com.flemmli97.flan.Flan;
|
import com.flemmli97.flan.Flan;
|
||||||
import com.flemmli97.flan.api.ClaimPermission;
|
import com.flemmli97.flan.api.ClaimPermission;
|
||||||
import com.flemmli97.flan.api.PermissionRegistry;
|
import com.flemmli97.flan.api.PermissionRegistry;
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import net.fabricmc.loader.api.FabricLoader;
|
import net.fabricmc.loader.api.FabricLoader;
|
||||||
@ -19,6 +18,7 @@ import java.io.FileReader;
|
|||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ public class Config {
|
|||||||
|
|
||||||
public boolean log;
|
public boolean log;
|
||||||
|
|
||||||
private final Map<String, Map<ClaimPermission, Boolean>> globalDefaultPerms = Maps.newHashMap();
|
private final Map<String, Map<ClaimPermission, Boolean>> globalDefaultPerms = new HashMap<>();
|
||||||
|
|
||||||
public Config(MinecraftServer server) {
|
public Config(MinecraftServer server) {
|
||||||
File configDir = FabricLoader.getInstance().getConfigDir().resolve("flan").toFile();
|
File configDir = FabricLoader.getInstance().getConfigDir().resolve("flan").toFile();
|
||||||
@ -92,7 +92,7 @@ public class Config {
|
|||||||
this.globalDefaultPerms.clear();
|
this.globalDefaultPerms.clear();
|
||||||
JsonObject glob = ConfigHandler.fromJson(obj, "globalDefaultPerms");
|
JsonObject glob = ConfigHandler.fromJson(obj, "globalDefaultPerms");
|
||||||
glob.entrySet().forEach(e -> {
|
glob.entrySet().forEach(e -> {
|
||||||
Map<ClaimPermission, Boolean> perms = Maps.newHashMap();
|
Map<ClaimPermission, Boolean> perms = new HashMap<>();
|
||||||
if (e.getValue().isJsonObject()) {
|
if (e.getValue().isJsonObject()) {
|
||||||
e.getValue().getAsJsonObject().entrySet().forEach(jperm -> {
|
e.getValue().getAsJsonObject().entrySet().forEach(jperm -> {
|
||||||
try {
|
try {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.flemmli97.flan.gui;
|
package com.flemmli97.flan.gui;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
import net.minecraft.inventory.Inventory;
|
import net.minecraft.inventory.Inventory;
|
||||||
@ -14,12 +13,13 @@ import net.minecraft.screen.slot.Slot;
|
|||||||
import net.minecraft.screen.slot.SlotActionType;
|
import net.minecraft.screen.slot.SlotActionType;
|
||||||
import net.minecraft.server.network.ServerPlayerEntity;
|
import net.minecraft.server.network.ServerPlayerEntity;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public abstract class ServerOnlyScreenHandler extends ScreenHandler {
|
public abstract class ServerOnlyScreenHandler extends ScreenHandler {
|
||||||
|
|
||||||
private final Inventory inventory;
|
private final Inventory inventory;
|
||||||
private final List<ScreenHandlerListener> listeners = Lists.newArrayList();
|
private final List<ScreenHandlerListener> listeners = new ArrayList<>();
|
||||||
|
|
||||||
protected ServerOnlyScreenHandler(int syncId, PlayerInventory playerInventory, int rows, Object... additionalData) {
|
protected ServerOnlyScreenHandler(int syncId, PlayerInventory playerInventory, int rows, Object... additionalData) {
|
||||||
super(fromRows(rows), syncId);
|
super(fromRows(rows), syncId);
|
||||||
|
@ -3,7 +3,6 @@ package com.flemmli97.flan.gui;
|
|||||||
import com.flemmli97.flan.claim.Claim;
|
import com.flemmli97.flan.claim.Claim;
|
||||||
import com.flemmli97.flan.claim.PermHelper;
|
import com.flemmli97.flan.claim.PermHelper;
|
||||||
import com.flemmli97.flan.config.ConfigHandler;
|
import com.flemmli97.flan.config.ConfigHandler;
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
@ -18,12 +17,13 @@ import net.minecraft.text.LiteralText;
|
|||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class StringResultScreenHandler extends AnvilScreenHandler {
|
public class StringResultScreenHandler extends AnvilScreenHandler {
|
||||||
|
|
||||||
private final List<ScreenHandlerListener> listeners = Lists.newArrayList();
|
private final List<ScreenHandlerListener> listeners = new ArrayList<>();
|
||||||
|
|
||||||
private final Consumer<String> cons;
|
private final Consumer<String> cons;
|
||||||
private final Runnable ret;
|
private final Runnable ret;
|
||||||
|
@ -3,8 +3,6 @@ package com.flemmli97.flan.player;
|
|||||||
import com.flemmli97.flan.claim.Claim;
|
import com.flemmli97.flan.claim.Claim;
|
||||||
import com.flemmli97.flan.claim.ParticleIndicators;
|
import com.flemmli97.flan.claim.ParticleIndicators;
|
||||||
import com.flemmli97.flan.config.ConfigHandler;
|
import com.flemmli97.flan.config.ConfigHandler;
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import com.google.common.collect.Sets;
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.network.packet.s2c.play.ParticleS2CPacket;
|
import net.minecraft.network.packet.s2c.play.ParticleS2CPacket;
|
||||||
import net.minecraft.particle.DustParticleEffect;
|
import net.minecraft.particle.DustParticleEffect;
|
||||||
@ -13,6 +11,8 @@ import net.minecraft.server.world.ServerWorld;
|
|||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@ -92,12 +92,12 @@ public class ClaimDisplay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static int[][] calculateDisplayPos(ServerWorld world, int[] from, int height) {
|
public static int[][] calculateDisplayPos(ServerWorld world, int[] from, int height) {
|
||||||
List<int[]> l = Lists.newArrayList();
|
List<int[]> l = new ArrayList<>();
|
||||||
Set<Integer> xs = Sets.newHashSet();
|
Set<Integer> xs = new HashSet<>();
|
||||||
addEvenly(from[0], from[1], 10, xs);
|
addEvenly(from[0], from[1], 10, xs);
|
||||||
xs.add(from[0] + 1);
|
xs.add(from[0] + 1);
|
||||||
xs.add(from[1] - 1);
|
xs.add(from[1] - 1);
|
||||||
Set<Integer> zs = Sets.newHashSet();
|
Set<Integer> zs = new HashSet<>();
|
||||||
addEvenly(from[2], from[3], 10, zs);
|
addEvenly(from[2], from[3], 10, zs);
|
||||||
zs.add(from[2] + 1);
|
zs.add(from[2] + 1);
|
||||||
zs.add(from[3] - 1);
|
zs.add(from[3] - 1);
|
||||||
|
@ -8,7 +8,6 @@ import com.flemmli97.flan.claim.IPermissionContainer;
|
|||||||
import com.flemmli97.flan.claim.ParticleIndicators;
|
import com.flemmli97.flan.claim.ParticleIndicators;
|
||||||
import com.flemmli97.flan.claim.PermHelper;
|
import com.flemmli97.flan.claim.PermHelper;
|
||||||
import com.flemmli97.flan.config.ConfigHandler;
|
import com.flemmli97.flan.config.ConfigHandler;
|
||||||
import com.google.common.collect.Sets;
|
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
@ -27,6 +26,7 @@ import java.io.FileReader;
|
|||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -42,8 +42,8 @@ public class PlayerClaimData {
|
|||||||
private BlockPos firstCorner;
|
private BlockPos firstCorner;
|
||||||
private int[] cornerRenderPos;
|
private int[] cornerRenderPos;
|
||||||
|
|
||||||
private final Set<ClaimDisplay> claimDisplayList = Sets.newHashSet();
|
private final Set<ClaimDisplay> claimDisplayList = new HashSet<>();
|
||||||
private final Set<ClaimDisplay> displayToAdd = Sets.newHashSet();
|
private final Set<ClaimDisplay> displayToAdd = new HashSet<>();
|
||||||
|
|
||||||
private final ServerPlayerEntity player;
|
private final ServerPlayerEntity player;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user