improve api and add api jar to build.gradle
This commit is contained in:
parent
63e54bbffc
commit
44a4767612
@ -1,3 +1,9 @@
|
||||
Flan 1.6.0
|
||||
======================
|
||||
- Separate some stuff to make it more api like and to make it into an api jar.
|
||||
Breaks compat with any potential mods using the previous system.
|
||||
|
||||
|
||||
Flan 1.5.4
|
||||
======================
|
||||
- Safe read player data so it doesnt crash when the file is wrong
|
||||
|
@ -1,6 +1,6 @@
|
||||
package io.github.flemmli97.flan;
|
||||
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
|
@ -0,0 +1,42 @@
|
||||
package io.github.flemmli97.flan.api;
|
||||
|
||||
import io.github.flemmli97.flan.api.data.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.api.data.IPermissionStorage;
|
||||
import io.github.flemmli97.flan.api.data.IPlayerData;
|
||||
import io.github.flemmli97.flan.claim.ClaimStorage;
|
||||
import io.github.flemmli97.flan.player.OfflinePlayerData;
|
||||
import io.github.flemmli97.flan.player.PlayerClaimData;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class ClaimHandler {
|
||||
|
||||
/**
|
||||
* Get the permission storage for the world to check for permissions.
|
||||
* You can then use IPermissionContainer#getForPermissionCheck
|
||||
* to return an {@link IPermissionContainer} for which you can then check permissions against
|
||||
*/
|
||||
public static IPermissionStorage getPermissionStorage(ServerWorld world) {
|
||||
return ClaimStorage.get(world);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the claim data for the given player
|
||||
*/
|
||||
public static IPlayerData getPlayerData(ServerPlayerEntity player) {
|
||||
return PlayerClaimData.get(player);
|
||||
}
|
||||
|
||||
/**
|
||||
* Same as the above but with an uuid. Use this if the player is not online.
|
||||
*/
|
||||
public static IPlayerData getPlayerData(MinecraftServer server, UUID uuid) {
|
||||
ServerPlayerEntity player = server.getPlayerManager().getPlayer(uuid);
|
||||
if (player != null)
|
||||
return getPlayerData(player);
|
||||
return new OfflinePlayerData(server, uuid);
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
package io.github.flemmli97.flan.claim;
|
||||
package io.github.flemmli97.flan.api.data;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
||||
@ -10,6 +10,11 @@ public interface IPermissionContainer {
|
||||
return this.canInteract(player, perm, pos, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true of the action for the given ClamPermission is allowed here at the BlockPos
|
||||
*
|
||||
* @param player The player doing the action. Can be null
|
||||
*/
|
||||
boolean canInteract(ServerPlayerEntity player, ClaimPermission perm, BlockPos pos, boolean message);
|
||||
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package io.github.flemmli97.flan.api.data;
|
||||
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
||||
public interface IPermissionStorage {
|
||||
|
||||
IPermissionContainer getForPermissionCheck(BlockPos pos);
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package io.github.flemmli97.flan.api;
|
||||
package io.github.flemmli97.flan.api.data;
|
||||
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
|
||||
@ -10,6 +10,8 @@ public interface IPlayerData {
|
||||
|
||||
int usedClaimBlocks();
|
||||
|
||||
void setAdditionalClaims(int amount);
|
||||
|
||||
default boolean canUseClaimBlocks(int amount) {
|
||||
if (ConfigHandler.config.maxClaimBlocks == -1)
|
||||
return true;
|
@ -1,4 +1,4 @@
|
||||
package io.github.flemmli97.flan.api;
|
||||
package io.github.flemmli97.flan.api.permission;
|
||||
|
||||
import io.github.flemmli97.flan.claim.Claim;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
@ -1,4 +1,4 @@
|
||||
package io.github.flemmli97.flan.api;
|
||||
package io.github.flemmli97.flan.api.permission;
|
||||
|
||||
import io.github.flemmli97.flan.CrossPlatformStuff;
|
||||
import net.minecraft.block.AbstractButtonBlock;
|
@ -1,4 +1,4 @@
|
||||
package io.github.flemmli97.flan.api;
|
||||
package io.github.flemmli97.flan.api.permission;
|
||||
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import net.minecraft.item.ItemStack;
|
@ -8,8 +8,9 @@ import com.google.gson.JsonObject;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
import io.github.flemmli97.flan.CrossPlatformStuff;
|
||||
import io.github.flemmli97.flan.Flan;
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.data.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.config.Config;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import io.github.flemmli97.flan.config.ConfigUpdater;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package io.github.flemmli97.flan.claim;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import me.shedaniel.architectury.annotations.ExpectPlatform;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.util.ActionResult;
|
||||
|
@ -6,9 +6,11 @@ import com.google.common.collect.Sets;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import io.github.flemmli97.flan.Flan;
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.IPlayerData;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.data.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.api.data.IPermissionStorage;
|
||||
import io.github.flemmli97.flan.api.data.IPlayerData;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import io.github.flemmli97.flan.player.EnumDisplayType;
|
||||
import io.github.flemmli97.flan.player.EnumEditMode;
|
||||
@ -46,7 +48,7 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
public class ClaimStorage {
|
||||
public class ClaimStorage implements IPermissionStorage {
|
||||
|
||||
public static final String adminClaimString = "!AdminClaims";
|
||||
private final Long2ObjectArrayMap<List<Claim>> claims = new Long2ObjectArrayMap<>();
|
||||
@ -203,6 +205,7 @@ public class ClaimStorage {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPermissionContainer getForPermissionCheck(BlockPos pos) {
|
||||
Claim claim = this.getClaimAt(pos);
|
||||
if (claim != null)
|
||||
|
@ -1,7 +1,8 @@
|
||||
package io.github.flemmli97.flan.claim;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.data.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.config.Config;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import io.github.flemmli97.flan.player.PlayerClaimData;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package io.github.flemmli97.flan.claim;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.text.LiteralText;
|
||||
|
@ -9,9 +9,9 @@ import com.mojang.brigadier.arguments.StringArgumentType;
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import com.mojang.brigadier.context.CommandContext;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.IPlayerData;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.data.IPlayerData;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.Claim;
|
||||
import io.github.flemmli97.flan.claim.ClaimStorage;
|
||||
import io.github.flemmli97.flan.claim.PermHelper;
|
||||
@ -415,7 +415,7 @@ public class CommandClaim {
|
||||
} else {
|
||||
OfflinePlayerData data = new OfflinePlayerData(server, of);
|
||||
context.getSource().sendFeedback(PermHelper.simpleColoredText(String.format(ConfigHandler.lang.claimBlocksFormat,
|
||||
data.claimBlocks, data.additionalClaimBlocks, data.usedClaimBlocks()), Formatting.GOLD), false);
|
||||
data.claimBlocks, data.getAdditionalClaims(), data.usedClaimBlocks()), Formatting.GOLD), false);
|
||||
}
|
||||
}
|
||||
context.getSource().sendFeedback(PermHelper.simpleColoredText(ConfigHandler.lang.listClaims, Formatting.GOLD), false);
|
||||
|
@ -6,8 +6,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
|
||||
import com.mojang.brigadier.suggestion.Suggestions;
|
||||
import com.mojang.brigadier.suggestion.SuggestionsBuilder;
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.Claim;
|
||||
import io.github.flemmli97.flan.claim.ClaimStorage;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
|
@ -5,8 +5,8 @@ import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import io.github.flemmli97.flan.CrossPlatformStuff;
|
||||
import io.github.flemmli97.flan.Flan;
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
@ -35,6 +35,7 @@ public class Config {
|
||||
public int defaultClaimDepth = 10;
|
||||
public boolean lenientBlockEntityCheck;
|
||||
public List<String> ignoredBlocks = new ArrayList<>();
|
||||
public List<String> ignoredEntityTypes = new ArrayList<>();
|
||||
public List<String> blockEntityTagIgnore = Lists.newArrayList(
|
||||
"IsDeathChest", //vanilla death chest
|
||||
"gunpowder.owner" //gunpowder
|
||||
@ -120,6 +121,8 @@ public class Config {
|
||||
this.lenientBlockEntityCheck = ConfigHandler.fromJson(obj, "lenientBlockEntityCheck", this.lenientBlockEntityCheck);
|
||||
this.ignoredBlocks.clear();
|
||||
ConfigHandler.arryFromJson(obj, "ignoredBlocks").forEach(e -> this.ignoredBlocks.add(e.getAsString()));
|
||||
this.ignoredEntityTypes.clear();
|
||||
ConfigHandler.arryFromJson(obj, "ignoredEntities").forEach(e -> this.ignoredEntityTypes.add(e.getAsString()));
|
||||
this.blockEntityTagIgnore.clear();
|
||||
ConfigHandler.arryFromJson(obj, "blockEntityTagIgnore").forEach(e -> this.blockEntityTagIgnore.add(e.getAsString()));
|
||||
this.entityTagIgnore.clear();
|
||||
@ -195,13 +198,16 @@ public class Config {
|
||||
JsonArray blocks = new JsonArray();
|
||||
this.ignoredBlocks.forEach(blocks::add);
|
||||
obj.add("ignoredBlocks", blocks);
|
||||
JsonArray entities = new JsonArray();
|
||||
this.ignoredEntityTypes.forEach(entities::add);
|
||||
obj.add("ignoredEntities", entities);
|
||||
obj.addProperty("lenientBlockEntityCheck", this.lenientBlockEntityCheck);
|
||||
JsonArray blocksEntities = new JsonArray();
|
||||
this.blockEntityTagIgnore.forEach(blocksEntities::add);
|
||||
obj.add("blockEntityTagIgnore", blocksEntities);
|
||||
JsonArray entities = new JsonArray();
|
||||
this.entityTagIgnore.forEach(entities::add);
|
||||
obj.add("entityTagIgnore", entities);
|
||||
JsonArray entitiesTags = new JsonArray();
|
||||
this.entityTagIgnore.forEach(entitiesTags::add);
|
||||
obj.add("entityTagIgnore", entitiesTags);
|
||||
|
||||
JsonArray arr = new JsonArray();
|
||||
for (String blacklistedWorld : this.blacklistedWorlds)
|
||||
|
@ -5,8 +5,8 @@ import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import io.github.flemmli97.flan.CrossPlatformStuff;
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -1,11 +1,11 @@
|
||||
package io.github.flemmli97.flan.event;
|
||||
|
||||
import io.github.flemmli97.flan.CrossPlatformStuff;
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.ObjectToPermissionMap;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.data.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.ObjectToPermissionMap;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.ClaimStorage;
|
||||
import io.github.flemmli97.flan.claim.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import io.github.flemmli97.flan.gui.LockedLecternScreenHandler;
|
||||
import io.github.flemmli97.flan.player.EnumDisplayType;
|
||||
|
@ -1,11 +1,11 @@
|
||||
package io.github.flemmli97.flan.event;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.ObjectToPermissionMap;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.data.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.ObjectToPermissionMap;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.Claim;
|
||||
import io.github.flemmli97.flan.claim.ClaimStorage;
|
||||
import io.github.flemmli97.flan.claim.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import io.github.flemmli97.flan.mixin.IHungerAccessor;
|
||||
import io.github.flemmli97.flan.mixin.IPersistentProjectileVars;
|
||||
|
@ -2,12 +2,12 @@ package io.github.flemmli97.flan.event;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.ObjectToPermissionMap;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.data.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.ObjectToPermissionMap;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.Claim;
|
||||
import io.github.flemmli97.flan.claim.ClaimStorage;
|
||||
import io.github.flemmli97.flan.claim.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.claim.PermHelper;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import io.github.flemmli97.flan.integration.permissionapi.CommandPermission;
|
||||
|
@ -1,8 +1,8 @@
|
||||
package io.github.flemmli97.flan.event;
|
||||
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.data.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.ClaimStorage;
|
||||
import io.github.flemmli97.flan.claim.IPermissionContainer;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.entity.LightningEntity;
|
||||
import net.minecraft.entity.SpawnGroup;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.github.flemmli97.flan.gui;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.Claim;
|
||||
import io.github.flemmli97.flan.claim.ClaimStorage;
|
||||
import io.github.flemmli97.flan.claim.PermHelper;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package io.github.flemmli97.flan.gui;
|
||||
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.Claim;
|
||||
import io.github.flemmli97.flan.claim.PermHelper;
|
||||
import io.github.flemmli97.flan.gui.inv.SeparateInv;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.github.flemmli97.flan.gui;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.Claim;
|
||||
import io.github.flemmli97.flan.claim.PermHelper;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package io.github.flemmli97.flan.gui;
|
||||
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.PermHelper;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import io.github.flemmli97.flan.gui.inv.SeparateInv;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.github.flemmli97.flan.gui;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.PermHelper;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import io.github.flemmli97.flan.gui.inv.SeparateInv;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package io.github.flemmli97.flan.gui;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.claim.Claim;
|
||||
import io.github.flemmli97.flan.claim.PermHelper;
|
||||
import io.github.flemmli97.flan.config.Config;
|
||||
|
@ -2,7 +2,7 @@ package io.github.flemmli97.flan.player;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import io.github.flemmli97.flan.Flan;
|
||||
import io.github.flemmli97.flan.api.IPlayerData;
|
||||
import io.github.flemmli97.flan.api.data.IPlayerData;
|
||||
import io.github.flemmli97.flan.claim.Claim;
|
||||
import io.github.flemmli97.flan.claim.ClaimStorage;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
@ -14,7 +14,6 @@ import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.time.DateTimeException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
@ -23,13 +22,16 @@ import java.util.UUID;
|
||||
|
||||
public class OfflinePlayerData implements IPlayerData {
|
||||
|
||||
public final int claimBlocks, additionalClaimBlocks;
|
||||
public final int claimBlocks;
|
||||
private int additionalClaimBlocks;
|
||||
public final LocalDateTime lastOnline;
|
||||
public final UUID owner;
|
||||
public final MinecraftServer server;
|
||||
public final File saveFile;
|
||||
|
||||
public OfflinePlayerData(MinecraftServer server, UUID uuid) {
|
||||
File dir = new File(server.getSavePath(WorldSavePath.PLAYERDATA).toFile(), "/claimData/");
|
||||
this.saveFile = new File(dir, uuid + ".json");
|
||||
int claim = ConfigHandler.config.startingBlocks;
|
||||
int add = 0;
|
||||
this.owner = uuid;
|
||||
@ -43,7 +45,7 @@ public class OfflinePlayerData implements IPlayerData {
|
||||
reader.close();
|
||||
claim = ConfigHandler.fromJson(obj, "ClaimBlocks", claim);
|
||||
add = ConfigHandler.fromJson(obj, "AdditionalBlocks", add);
|
||||
if(obj.has("LastSeen")) {
|
||||
if (obj.has("LastSeen")) {
|
||||
try {
|
||||
last = LocalDateTime.parse(obj.get("LastSeen").getAsString(), Flan.onlineTimeFormatter);
|
||||
} catch (RuntimeException e) {
|
||||
@ -62,6 +64,7 @@ public class OfflinePlayerData implements IPlayerData {
|
||||
}
|
||||
|
||||
private OfflinePlayerData(MinecraftServer server, File dataFile, UUID uuid) {
|
||||
this.saveFile = dataFile;
|
||||
int claim = ConfigHandler.config.startingBlocks;
|
||||
int add = 0;
|
||||
LocalDateTime last = LocalDateTime.now();
|
||||
@ -115,6 +118,36 @@ public class OfflinePlayerData implements IPlayerData {
|
||||
return usedClaimsBlocks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAdditionalClaims(int amount) {
|
||||
this.additionalClaimBlocks = amount;
|
||||
try {
|
||||
if (!this.saveFile.getParentFile().exists()) {
|
||||
this.saveFile.getParentFile().mkdirs();
|
||||
this.saveFile.createNewFile();
|
||||
} else if (!this.saveFile.exists())
|
||||
this.saveFile.createNewFile();
|
||||
FileReader reader = new FileReader(this.saveFile);
|
||||
JsonObject obj = ConfigHandler.GSON.fromJson(reader, JsonObject.class);
|
||||
reader.close();
|
||||
if (obj == null) {
|
||||
obj = new JsonObject();
|
||||
obj.addProperty("ClaimBlocks", this.claimBlocks);
|
||||
obj.addProperty("AdditionalBlocks", this.additionalClaimBlocks);
|
||||
obj.addProperty("LastSeen", this.lastOnline.format(Flan.onlineTimeFormatter));
|
||||
JsonObject defPerm = new JsonObject();
|
||||
obj.add("DefaultGroups", defPerm);
|
||||
} else
|
||||
obj.addProperty("AdditionalBlocks", this.additionalClaimBlocks);
|
||||
Flan.debug("Attempting to write following json data {} to file {}", obj, this.saveFile.getName());
|
||||
FileWriter writer = new FileWriter(this.saveFile);
|
||||
ConfigHandler.GSON.toJson(obj, writer);
|
||||
writer.close();
|
||||
} catch (IOException e) {
|
||||
Flan.log("Error adding additional claimblocks to offline player {}", this.owner);
|
||||
}
|
||||
}
|
||||
|
||||
public static Map<UUID, OfflinePlayerData> collectAllPlayerData(MinecraftServer server) {
|
||||
File dir = new File(server.getSavePath(WorldSavePath.PLAYERDATA).toFile(), "/claimData/");
|
||||
Map<UUID, OfflinePlayerData> playerDatas = new HashMap<>();
|
||||
|
@ -2,12 +2,12 @@ package io.github.flemmli97.flan.player;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import io.github.flemmli97.flan.Flan;
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.IPlayerData;
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.data.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.api.data.IPlayerData;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.Claim;
|
||||
import io.github.flemmli97.flan.claim.ClaimStorage;
|
||||
import io.github.flemmli97.flan.claim.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.claim.ParticleIndicators;
|
||||
import io.github.flemmli97.flan.claim.PermHelper;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
@ -102,6 +102,7 @@ public class PlayerClaimData implements IPlayerData {
|
||||
return this.additionalClaimBlocks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAdditionalClaims(int amount) {
|
||||
this.additionalClaimBlocks = Math.max(0, amount);
|
||||
updateScoreFor(this.player, ClaimCriterias.AMOUNT, this.claimBlocks + this.additionalClaimBlocks);
|
||||
|
@ -93,6 +93,26 @@ sourcesJar {
|
||||
classifier "fabric-source"
|
||||
}
|
||||
|
||||
task apiJar(type: Jar, dependsOn: classes) {
|
||||
archiveClassifier.set "fabric-api-source"
|
||||
from project(":common").sourceSets.main.output + sourceSets.main.output
|
||||
include "io/github/flemmli97/flan/api/**"
|
||||
include "fabric.mod_api.json" //Include this so it gets remapped as a dependency
|
||||
rename("fabric.mod_api.json", "fabric.mod.json")
|
||||
}
|
||||
|
||||
task remapApiJar(type: net.fabricmc.loom.task.RemapJarTask){
|
||||
archiveClassifier.set "fabric-api"
|
||||
input.set apiJar.archiveFile
|
||||
addNestedDependencies = false
|
||||
dependsOn apiJar
|
||||
from sourceSets.main.output
|
||||
/* Putting it here doesnt seem to work...
|
||||
include "fabric.mod_api.json" //Include this so it gets remapped as a dependency
|
||||
rename("fabric.mod_api.json", "fabric.mod.json")
|
||||
*/
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
mavenJava(MavenPublication) {
|
||||
@ -103,6 +123,7 @@ publishing {
|
||||
artifact(sourcesJar) {
|
||||
builtBy remapSourcesJar
|
||||
}
|
||||
artifact(remapApiJar)
|
||||
artifactId project.archives_base_name
|
||||
version project.version
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
package io.github.flemmli97.flan;
|
||||
|
||||
import io.github.flemmli97.flan.api.ObjectToPermissionMap;
|
||||
import io.github.flemmli97.flan.api.permission.ObjectToPermissionMap;
|
||||
import io.github.flemmli97.flan.commands.CommandClaim;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import io.github.flemmli97.flan.event.BlockInteractEvents;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package io.github.flemmli97.flan.api.fabric;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.github.flemmli97.flan.claim.fabric;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.fabric.PermissionCheckEvent;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
@ -1,8 +1,8 @@
|
||||
package io.github.flemmli97.flan.integration.playerability;
|
||||
|
||||
import io.github.flemmli97.flan.api.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.api.data.IPermissionContainer;
|
||||
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
|
||||
import io.github.flemmli97.flan.claim.ClaimStorage;
|
||||
import io.github.flemmli97.flan.claim.IPermissionContainer;
|
||||
import io.github.ladysnake.pal.AbilitySource;
|
||||
import io.github.ladysnake.pal.PlayerAbility;
|
||||
import io.github.ladysnake.pal.PlayerAbilityEnableCallback;
|
||||
|
5
fabric/src/main/resources/fabric.mod_api.json
Normal file
5
fabric/src/main/resources/fabric.mod_api.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "flan",
|
||||
"version": "${version}"
|
||||
}
|
@ -66,6 +66,20 @@ sourcesJar {
|
||||
classifier "forge-sources"
|
||||
}
|
||||
|
||||
|
||||
task apiJar(type: Jar, dependsOn: classes) {
|
||||
archiveClassifier.set "forge-api-source"
|
||||
from project(":common").sourceSets.main.output + sourceSets.main.output
|
||||
include "io/github/flemmli97/flan/api/**"
|
||||
}
|
||||
|
||||
task remapApiJar(type: net.fabricmc.loom.task.RemapJarTask){
|
||||
archiveClassifier.set "forge-api"
|
||||
input.set apiJar.archiveFile
|
||||
addNestedDependencies = false
|
||||
dependsOn apiJar
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
mavenJava(MavenPublication) {
|
||||
@ -76,6 +90,7 @@ publishing {
|
||||
artifact(sourcesJar) {
|
||||
builtBy remapSourcesJar
|
||||
}
|
||||
artifact(remapApiJar)
|
||||
artifactId project.archives_base_name
|
||||
version project.version
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
package io.github.flemmli97.flan.api.forge;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.github.flemmli97.flan.claim.forge;
|
||||
|
||||
import io.github.flemmli97.flan.api.ClaimPermission;
|
||||
import io.github.flemmli97.flan.api.forge.PermissionCheckEvent;
|
||||
import io.github.flemmli97.flan.api.permission.ClaimPermission;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.github.flemmli97.flan.forgeevent;
|
||||
|
||||
import io.github.flemmli97.flan.Flan;
|
||||
import io.github.flemmli97.flan.api.ObjectToPermissionMap;
|
||||
import io.github.flemmli97.flan.api.permission.ObjectToPermissionMap;
|
||||
import io.github.flemmli97.flan.commands.CommandClaim;
|
||||
import io.github.flemmli97.flan.config.ConfigHandler;
|
||||
import net.minecraftforge.event.RegisterCommandsEvent;
|
||||
|
@ -8,7 +8,7 @@ minecraft_version=1.16.5
|
||||
yarn_mappings=1.16.5+build.9
|
||||
loader_version=0.11.3
|
||||
# Mod Properties
|
||||
mod_version=1.5.4
|
||||
mod_version=1.6.0
|
||||
maven_group=io.github.flemmli97
|
||||
archives_base_name=flan
|
||||
# Dependencies
|
||||
|
Loading…
Reference in New Issue
Block a user