This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
ScriptCraft/scriptcraft/src/main/java/com/thebrokenrail/scriptcraft/api/bridge/EventBridges.java

25 lines
1.7 KiB
Java
Raw Normal View History

2020-05-04 00:26:57 +00:00
package com.thebrokenrail.scriptcraft.api.bridge;
2020-05-03 23:28:23 +00:00
import com.thebrokenrail.scriptcraft.core.ScriptCraftCore;
2020-06-07 21:58:49 +00:00
import com.thebrokenrail.scriptcraft.api.util.ValueUtil;
2020-05-05 00:36:32 +00:00
import net.fabricmc.fabric.api.event.player.AttackBlockCallback;
import net.fabricmc.fabric.api.event.player.UseBlockCallback;
import net.fabricmc.fabric.api.event.player.UseItemCallback;
2020-05-03 23:28:23 +00:00
import net.fabricmc.fabric.api.event.world.WorldTickCallback;
2020-05-05 00:36:32 +00:00
import net.minecraft.item.ItemStack;
import net.minecraft.util.ActionResult;
import net.minecraft.util.TypedActionResult;
2020-05-03 23:28:23 +00:00
2020-05-04 00:26:57 +00:00
class EventBridges {
static void register() {
2020-05-05 00:36:32 +00:00
WorldTickCallback.EVENT.register(world -> ScriptCraftCore.useBridge("Event.worldTick", world));
2020-06-02 20:01:26 +00:00
AttackBlockCallback.EVENT.register((playerEntity, world, hand, blockPos, direction) -> ValueUtil.getEnumValue(ActionResult.class, (String) ScriptCraftCore.useBridge("Event.attackBlock", playerEntity, world, hand.name(), blockPos.getX(), blockPos.getY(), blockPos.getZ(), direction.name()), ActionResult.PASS));
UseBlockCallback.EVENT.register((playerEntity, world, hand, hitResult) -> ValueUtil.getEnumValue(ActionResult.class, (String) ScriptCraftCore.useBridge("Event.useBlock", playerEntity, world, hand.name(), hitResult.getBlockPos().getX(), hitResult.getBlockPos().getY(), hitResult.getBlockPos().getZ(), hitResult.getSide().name()), ActionResult.PASS));
2020-05-05 00:36:32 +00:00
UseItemCallback.EVENT.register((playerEntity, world, hand) -> {
ActionResult result = ValueUtil.getEnumValue(ActionResult.class, (String) ScriptCraftCore.useBridge("Event.useItem", playerEntity, world, hand.name()), ActionResult.PASS);
ItemStack stack = playerEntity.getStackInHand(hand);
return new TypedActionResult<>(result, stack);
});
2020-05-03 23:28:23 +00:00
}
}