split event from actual implementation

This commit is contained in:
Flemmli97 2021-06-12 20:24:15 +02:00
parent ccec7937ee
commit c205f5e133
6 changed files with 32 additions and 11 deletions

View File

@ -8,7 +8,6 @@ import com.google.gson.JsonObject;
import com.mojang.authlib.GameProfile;
import io.github.flemmli97.flan.Flan;
import io.github.flemmli97.flan.api.ClaimPermission;
import io.github.flemmli97.flan.api.ClaimPermissionEvent;
import io.github.flemmli97.flan.api.PermissionRegistry;
import io.github.flemmli97.flan.config.Config;
import io.github.flemmli97.flan.config.ConfigHandler;
@ -198,7 +197,7 @@ public class Claim implements IPermissionContainer {
@Override
public boolean canInteract(ServerPlayerEntity player, ClaimPermission perm, BlockPos pos, boolean message) {
ActionResult res = ClaimPermissionEvent.check(player, perm, pos);
ActionResult res = ClaimPermissionCheck.check(player, perm, pos);
if (res != ActionResult.PASS)
return res != ActionResult.FAIL;
if (perm != null) {

View File

@ -1,11 +1,12 @@
package io.github.flemmli97.flan.api;
package io.github.flemmli97.flan.claim;
import io.github.flemmli97.flan.api.ClaimPermission;
import me.shedaniel.architectury.annotations.ExpectPlatform;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.ActionResult;
import net.minecraft.util.math.BlockPos;
public class ClaimPermissionEvent {
public class ClaimPermissionCheck {
@ExpectPlatform
public static ActionResult check(ServerPlayerEntity player, ClaimPermission permission, BlockPos pos) {

View File

@ -7,7 +7,7 @@ import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.ActionResult;
import net.minecraft.util.math.BlockPos;
public class ClaimPermissionEventImpl {
public class PermissionCheckEvent {
public interface PermissionCheck {
@ -36,8 +36,4 @@ public class ClaimPermissionEventImpl {
return ActionResult.PASS;
}
);
public static ActionResult check(ServerPlayerEntity player, ClaimPermission permission, BlockPos pos) {
return CHECK.invoker().check(player, permission, pos);
}
}

View File

@ -0,0 +1,16 @@
package io.github.flemmli97.flan.claim.fabric;
import io.github.flemmli97.flan.api.ClaimPermission;
import io.github.flemmli97.flan.api.fabric.PermissionCheckEvent;
import net.fabricmc.fabric.api.event.Event;
import net.fabricmc.fabric.api.event.EventFactory;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.ActionResult;
import net.minecraft.util.math.BlockPos;
public class ClaimPermissionCheckImpl {
public static ActionResult check(ServerPlayerEntity player, ClaimPermission permission, BlockPos pos) {
return PermissionCheckEvent.CHECK.invoker().check(player, permission, pos);
}
}

View File

@ -13,6 +13,14 @@ public class PermissionCheckEvent extends Event {
public final BlockPos pos;
private ActionResult result = ActionResult.PASS;
/**
* Event for when permissions are checked
*
* @param player The corresponding player. Can be null if the check is e.g. caused by tnt explosions
* @param permission The permission to check
* @param pos The block pos where the action is occuring
* @return ActionResult#PASS to do nothing. ActionResult#FAIL to prevent the action. Else to allow the action
*/
public PermissionCheckEvent(ServerPlayerEntity player, ClaimPermission permission, BlockPos pos) {
this.player = player;
this.permission = permission;

View File

@ -1,12 +1,13 @@
package io.github.flemmli97.flan.api.forge;
package io.github.flemmli97.flan.claim.fabric;
import io.github.flemmli97.flan.api.ClaimPermission;
import io.github.flemmli97.flan.api.forge.PermissionCheckEvent;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.ActionResult;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.common.MinecraftForge;
public class ClaimPermissionEventImpl {
public class ClaimPermissionCheckImpl {
public static ActionResult check(ServerPlayerEntity player, ClaimPermission permission, BlockPos pos) {
PermissionCheckEvent event = new PermissionCheckEvent(player, permission, pos);