improve api and add api jar to build.gradle

This commit is contained in:
Flemmli97 2021-07-20 22:57:34 +02:00
parent 63e54bbffc
commit 44a4767612
41 changed files with 219 additions and 70 deletions

View File

@ -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

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -0,0 +1,8 @@
package io.github.flemmli97.flan.api.data;
import net.minecraft.util.math.BlockPos;
public interface IPermissionStorage {
IPermissionContainer getForPermissionCheck(BlockPos pos);
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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)

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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)

View File

@ -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;

View 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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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<>();

View File

@ -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);

View File

@ -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
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -0,0 +1,5 @@
{
"schemaVersion": 1,
"id": "flan",
"version": "${version}"
}

View File

@ -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
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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