add chorus fruit permission. fix wither permission
This commit is contained in:
parent
b86285bc63
commit
3704988513
@ -1,3 +1,9 @@
|
|||||||
|
Flan 1.2.6
|
||||||
|
======================
|
||||||
|
- Fix giveClaimBlocks not working for players that never joined the server
|
||||||
|
- Add chorus fruit eating permission
|
||||||
|
- Fix wither permission not toggable
|
||||||
|
|
||||||
Flan 1.2.5
|
Flan 1.2.5
|
||||||
======================
|
======================
|
||||||
- Fix inventory desync after closing gui
|
- Fix inventory desync after closing gui
|
||||||
|
@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx2G
|
|||||||
loader_version=0.9.1+build.205
|
loader_version=0.9.1+build.205
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 1.2.5
|
mod_version = 1.2.6
|
||||||
maven_group = com.flemmli97.flan
|
maven_group = com.flemmli97.flan
|
||||||
archives_base_name = flan
|
archives_base_name = flan
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.flemmli97.flan;
|
package com.flemmli97.flan;
|
||||||
|
|
||||||
public interface IClaimData {
|
public interface IClaimData<T> {
|
||||||
|
|
||||||
Object getClaimData();
|
T getClaimData();
|
||||||
}
|
}
|
||||||
|
@ -56,6 +56,7 @@ public class PermissionRegistry {
|
|||||||
public static ClaimPermission MINECART = register(new ClaimPermission("MINECART", () -> new ItemStack(Items.MINECART), "Permission to sit in minecarts"));
|
public static ClaimPermission MINECART = register(new ClaimPermission("MINECART", () -> new ItemStack(Items.MINECART), "Permission to sit in minecarts"));
|
||||||
public static ClaimPermission BUCKET = register(new ClaimPermission("BUCKET", () -> new ItemStack(Items.BUCKET), "Permission to take liquids with buckets"));
|
public static ClaimPermission BUCKET = register(new ClaimPermission("BUCKET", () -> new ItemStack(Items.BUCKET), "Permission to take liquids with buckets"));
|
||||||
public static ClaimPermission ENDERPEARL = register(new ClaimPermission("ENDERPEARL", () -> new ItemStack(Items.ENDER_PEARL), "Permission to use enderpearls"));
|
public static ClaimPermission ENDERPEARL = register(new ClaimPermission("ENDERPEARL", () -> new ItemStack(Items.ENDER_PEARL), "Permission to use enderpearls"));
|
||||||
|
public static ClaimPermission CHORUSFRUIT = register(new ClaimPermission("CHORUSFRUIT", () -> new ItemStack(Items.CHORUS_FRUIT), "Permission to eat chorus fruits"));
|
||||||
public static ClaimPermission ANIMALINTERACT = register(new ClaimPermission("ANIMALINTERACT", () -> new ItemStack(Items.CHICKEN_SPAWN_EGG), "Permission to interact with animals (e.g. shearing sheeps)"));
|
public static ClaimPermission ANIMALINTERACT = register(new ClaimPermission("ANIMALINTERACT", () -> new ItemStack(Items.CHICKEN_SPAWN_EGG), "Permission to interact with animals (e.g. shearing sheeps)"));
|
||||||
public static ClaimPermission HURTANIMAL = register(new ClaimPermission("HURTANIMAL", () -> new ItemStack(Items.BEEF), "Permission to hurt animals"));
|
public static ClaimPermission HURTANIMAL = register(new ClaimPermission("HURTANIMAL", () -> new ItemStack(Items.BEEF), "Permission to hurt animals"));
|
||||||
public static ClaimPermission XP = register(new ClaimPermission("XP", () -> new ItemStack(Items.EXPERIENCE_BOTTLE), "Permission to pick up xp orbs"));
|
public static ClaimPermission XP = register(new ClaimPermission("XP", () -> new ItemStack(Items.EXPERIENCE_BOTTLE), "Permission to pick up xp orbs"));
|
||||||
@ -71,7 +72,7 @@ public class PermissionRegistry {
|
|||||||
public static ClaimPermission WATERBORDER = global(new ClaimPermission("WATERBORDER", () -> new ItemStack(Items.WATER_BUCKET), "Toggle water crossing claim borders"));
|
public static ClaimPermission WATERBORDER = global(new ClaimPermission("WATERBORDER", () -> new ItemStack(Items.WATER_BUCKET), "Toggle water crossing claim borders"));
|
||||||
public static ClaimPermission PISTONBORDER = global(new ClaimPermission("PISTONBORDER", () -> new ItemStack(Items.PISTON), "Toggle piston pull/push across claim borders"));
|
public static ClaimPermission PISTONBORDER = global(new ClaimPermission("PISTONBORDER", () -> new ItemStack(Items.PISTON), "Toggle piston pull/push across claim borders"));
|
||||||
public static ClaimPermission MOBSPAWN = global(new ClaimPermission("MOBSPAWN", () -> new ItemStack(Items.ZOMBIE_SPAWN_EGG), "Prevent hostile mobspawn in claim"));
|
public static ClaimPermission MOBSPAWN = global(new ClaimPermission("MOBSPAWN", () -> new ItemStack(Items.ZOMBIE_SPAWN_EGG), "Prevent hostile mobspawn in claim"));
|
||||||
public static ClaimPermission ANIMALSPAWN = global(new ClaimPermission("MOBSPAWN", () -> new ItemStack(Items.CHICKEN_SPAWN_EGG), "Prevent other spawn in claim"));
|
public static ClaimPermission ANIMALSPAWN = global(new ClaimPermission("ANIMALSPAWN", () -> new ItemStack(Items.CHICKEN_SPAWN_EGG), "Prevent other spawn in claim"));
|
||||||
|
|
||||||
private static ClaimPermission register(ClaimPermission perm) {
|
private static ClaimPermission register(ClaimPermission perm) {
|
||||||
if (locked) {
|
if (locked) {
|
||||||
|
@ -53,7 +53,7 @@ public class ClaimStorage {
|
|||||||
private final GlobalClaim globalClaim;
|
private final GlobalClaim globalClaim;
|
||||||
|
|
||||||
public static ClaimStorage get(ServerWorld world) {
|
public static ClaimStorage get(ServerWorld world) {
|
||||||
return (ClaimStorage) ((IClaimData) world).getClaimData();
|
return ((IClaimData<ClaimStorage>) world).getClaimData();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ClaimStorage(MinecraftServer server, ServerWorld world) {
|
public ClaimStorage(MinecraftServer server, ServerWorld world) {
|
||||||
|
@ -111,5 +111,6 @@ public class ObjectToPermissionMap {
|
|||||||
registerItemPredicateMap(item -> item instanceof EnderPearlItem, () -> PermissionRegistry.ENDERPEARL);
|
registerItemPredicateMap(item -> item instanceof EnderPearlItem, () -> PermissionRegistry.ENDERPEARL);
|
||||||
registerItemPredicateMap(item -> item instanceof BucketItem, () -> PermissionRegistry.BUCKET);
|
registerItemPredicateMap(item -> item instanceof BucketItem, () -> PermissionRegistry.BUCKET);
|
||||||
registerItemPredicateMap(item -> item == Items.END_CRYSTAL, () -> PermissionRegistry.ENDCRYSTALPLACE);
|
registerItemPredicateMap(item -> item == Items.END_CRYSTAL, () -> PermissionRegistry.ENDCRYSTALPLACE);
|
||||||
|
registerItemPredicateMap(item -> item == Items.CHORUS_FRUIT, () -> PermissionRegistry.CHORUSFRUIT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -243,9 +243,11 @@ public class EntityInteractEvents {
|
|||||||
if (wither.world.isClient)
|
if (wither.world.isClient)
|
||||||
return true;
|
return true;
|
||||||
ClaimStorage storage = ClaimStorage.get((ServerWorld) wither.world);
|
ClaimStorage storage = ClaimStorage.get((ServerWorld) wither.world);
|
||||||
|
BlockPos.Mutable pos = wither.getBlockPos().mutableCopy();
|
||||||
for (int x = -1; x <= 1; x++)
|
for (int x = -1; x <= 1; x++)
|
||||||
for (int z = -1; z <= 1; z++) {
|
for (int z = -1; z <= 1; z++) {
|
||||||
if (storage.getForPermissionCheck(wither.getBlockPos().add(x, 0, z)) != null)
|
IPermissionContainer claim = storage.getForPermissionCheck(wither.getBlockPos().add(x, 0, z));
|
||||||
|
if (!claim.canInteract(null, PermissionRegistry.WITHER, pos.set(pos.getX() + x, pos.getY() + 0, pos.getZ() + z), false))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.flemmli97.flan.event;
|
package com.flemmli97.flan.event;
|
||||||
|
|
||||||
import com.flemmli97.flan.api.ClaimPermission;
|
|
||||||
import com.flemmli97.flan.api.PermissionRegistry;
|
import com.flemmli97.flan.api.PermissionRegistry;
|
||||||
import com.flemmli97.flan.claim.ClaimStorage;
|
import com.flemmli97.flan.claim.ClaimStorage;
|
||||||
import com.flemmli97.flan.claim.IPermissionContainer;
|
import com.flemmli97.flan.claim.IPermissionContainer;
|
||||||
@ -8,8 +7,6 @@ import com.flemmli97.flan.config.ConfigHandler;
|
|||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.entity.SpawnGroup;
|
import net.minecraft.entity.SpawnGroup;
|
||||||
import net.minecraft.entity.mob.MobEntity;
|
import net.minecraft.entity.mob.MobEntity;
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.item.Items;
|
|
||||||
import net.minecraft.server.network.ServerPlayerEntity;
|
import net.minecraft.server.network.ServerPlayerEntity;
|
||||||
import net.minecraft.server.world.ServerWorld;
|
import net.minecraft.server.world.ServerWorld;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
@ -78,7 +75,7 @@ public class WorldEvents {
|
|||||||
if (!ConfigHandler.config.allowMobSpawnToggle)
|
if (!ConfigHandler.config.allowMobSpawnToggle)
|
||||||
return false;
|
return false;
|
||||||
IPermissionContainer claim = ClaimStorage.get(world).getForPermissionCheck(entity.getBlockPos());
|
IPermissionContainer claim = ClaimStorage.get(world).getForPermissionCheck(entity.getBlockPos());
|
||||||
if(entity.getType().getSpawnGroup() == SpawnGroup.MONSTER)
|
if (entity.getType().getSpawnGroup() == SpawnGroup.MONSTER)
|
||||||
return claim.canInteract(null, PermissionRegistry.MOBSPAWN, entity.getBlockPos());
|
return claim.canInteract(null, PermissionRegistry.MOBSPAWN, entity.getBlockPos());
|
||||||
return claim.canInteract(null, PermissionRegistry.ANIMALSPAWN, entity.getBlockPos());
|
return claim.canInteract(null, PermissionRegistry.ANIMALSPAWN, entity.getBlockPos());
|
||||||
}
|
}
|
||||||
|
@ -12,9 +12,8 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
|
||||||
@Mixin(ServerPlayerEntity.class)
|
@Mixin(ServerPlayerEntity.class)
|
||||||
public abstract class PlayerClaimMixin implements IClaimData {
|
public abstract class PlayerClaimMixin implements IClaimData<PlayerClaimData> {
|
||||||
|
|
||||||
@Unique
|
@Unique
|
||||||
private PlayerClaimData claimData;
|
private PlayerClaimData claimData;
|
||||||
|
@ -17,7 +17,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
|||||||
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||||
|
|
||||||
@Mixin(ServerWorld.class)
|
@Mixin(ServerWorld.class)
|
||||||
public abstract class ServerWorldMixin implements IClaimData {
|
public abstract class ServerWorldMixin implements IClaimData<ClaimStorage> {
|
||||||
@Unique
|
@Unique
|
||||||
private ClaimStorage claimData;
|
private ClaimStorage claimData;
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ public class PlayerClaimData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static PlayerClaimData get(PlayerEntity player) {
|
public static PlayerClaimData get(PlayerEntity player) {
|
||||||
return (PlayerClaimData) ((IClaimData) player).getClaimData();
|
return ((IClaimData<PlayerClaimData>) player).getClaimData();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getClaimBlocks() {
|
public int getClaimBlocks() {
|
||||||
@ -288,7 +288,6 @@ public class PlayerClaimData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private int calculateUsedClaimBlocks() {
|
private int calculateUsedClaimBlocks() {
|
||||||
int usedClaimsBlocks = 0;
|
int usedClaimsBlocks = 0;
|
||||||
for (ServerWorld world : this.player.getServer().getWorlds()) {
|
for (ServerWorld world : this.player.getServer().getWorlds()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user