mirror of
https://github.com/architectury/architectury-api.git
synced 2026-03-30 13:05:25 -05:00
Convert to @ExpectPlatform
This commit is contained in:
@@ -16,417 +16,27 @@
|
||||
|
||||
package me.shedaniel.architectury.event.forge;
|
||||
|
||||
import me.shedaniel.architectury.event.EventHandler;
|
||||
import me.shedaniel.architectury.event.events.PlayerEvent;
|
||||
import me.shedaniel.architectury.event.events.TextureStitchEvent;
|
||||
import me.shedaniel.architectury.event.events.*;
|
||||
import me.shedaniel.architectury.forge.ArchitecturyForge;
|
||||
import me.shedaniel.architectury.platform.forge.EventBuses;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.IGuiEventListener;
|
||||
import net.minecraft.client.world.ClientWorld;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.ActionResultType;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.client.event.*;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.CommandEvent;
|
||||
import net.minecraftforge.event.RegisterCommandsEvent;
|
||||
import net.minecraftforge.event.ServerChatEvent;
|
||||
import net.minecraftforge.event.TickEvent.*;
|
||||
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
|
||||
import net.minecraftforge.event.entity.item.ItemTossEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingAttackEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingDeathEvent;
|
||||
import net.minecraftforge.event.entity.player.*;
|
||||
import net.minecraftforge.event.entity.player.PlayerEvent.*;
|
||||
import net.minecraftforge.event.world.ExplosionEvent.Detonate;
|
||||
import net.minecraftforge.event.world.ExplosionEvent.Start;
|
||||
import net.minecraftforge.event.world.WorldEvent;
|
||||
import net.minecraftforge.eventbus.api.Event;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.LogicalSide;
|
||||
import net.minecraftforge.fml.event.server.FMLServerStartedEvent;
|
||||
import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
|
||||
import net.minecraftforge.fml.event.server.FMLServerStoppedEvent;
|
||||
import net.minecraftforge.fml.event.server.FMLServerStoppingEvent;
|
||||
import net.minecraftforge.fml.server.ServerLifecycleHooks;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class EventHandlerImpl implements EventHandler.Impl {
|
||||
@Override
|
||||
public void registerClient() {
|
||||
MinecraftForge.EVENT_BUS.register(Client.class);
|
||||
EventBuses.getModEventBus(ArchitecturyForge.MOD_ID).orElseThrow(() -> new IllegalStateException("Where is architectury?")).register(ModBasedEventHandlerImpl.Client.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCommon() {
|
||||
MinecraftForge.EVENT_BUS.register(Common.class);
|
||||
EventBuses.getModEventBus(ArchitecturyForge.MOD_ID).orElseThrow(() -> new IllegalStateException("Where is architectury?")).register(ModBasedEventHandlerImpl.Common.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerServer() {
|
||||
MinecraftForge.EVENT_BUS.register(Server.class);
|
||||
EventBuses.getModEventBus(ArchitecturyForge.MOD_ID).orElseThrow(() -> new IllegalStateException("Where is architectury?")).register(ModBasedEventHandlerImpl.Server.class);
|
||||
}
|
||||
|
||||
public class EventHandlerImpl {
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public static class Client {
|
||||
@SubscribeEvent
|
||||
public static void event(ItemTooltipEvent event) {
|
||||
TooltipEvent.ITEM.invoker().append(event.getItemStack(), event.getToolTip(), event.getFlags());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientTickEvent event) {
|
||||
if (event.phase == Phase.START)
|
||||
TickEvent.CLIENT_PRE.invoker().tick(Minecraft.getInstance());
|
||||
else if (event.phase == Phase.END)
|
||||
TickEvent.CLIENT_POST.invoker().tick(Minecraft.getInstance());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(RenderGameOverlayEvent.Post event) {
|
||||
if (event.getType() == RenderGameOverlayEvent.ElementType.ALL)
|
||||
GuiEvent.RENDER_HUD.invoker().renderHud(event.getMatrixStack(), event.getPartialTicks());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientPlayerNetworkEvent.LoggedInEvent event) {
|
||||
PlayerEvent.CLIENT_PLAYER_JOIN.invoker().join(event.getPlayer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientPlayerNetworkEvent.LoggedOutEvent event) {
|
||||
PlayerEvent.CLIENT_PLAYER_QUIT.invoker().quit(event.getPlayer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientPlayerNetworkEvent.RespawnEvent event) {
|
||||
PlayerEvent.CLIENT_PLAYER_RESPAWN.invoker().respawn(event.getOldPlayer(), event.getNewPlayer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(GuiScreenEvent.InitGuiEvent.Pre event) {
|
||||
if (GuiEvent.INIT_PRE.invoker().init(event.getGui(), event.getWidgetList(), (List<IGuiEventListener>) event.getGui().children()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(GuiScreenEvent.InitGuiEvent.Post event) {
|
||||
GuiEvent.INIT_POST.invoker().init(event.getGui(), event.getWidgetList(), (List<IGuiEventListener>) event.getGui().children());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(RenderGameOverlayEvent.Text event) {
|
||||
GuiEvent.DEBUG_TEXT_LEFT.invoker().gatherText(event.getLeft());
|
||||
GuiEvent.DEBUG_TEXT_RIGHT.invoker().gatherText(event.getRight());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientChatEvent event) {
|
||||
ActionResult<String> process = ChatEvent.CLIENT.invoker().process(event.getMessage());
|
||||
if (process.getObject() != null)
|
||||
event.setMessage(process.getObject());
|
||||
if (process.getResult() == ActionResultType.FAIL)
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientChatReceivedEvent event) {
|
||||
ActionResult<ITextComponent> process = ChatEvent.CLIENT_RECEIVED.invoker().process(event.getType(), event.getMessage(), event.getSenderUUID());
|
||||
if (process.getObject() != null)
|
||||
event.setMessage(process.getObject());
|
||||
if (process.getResult() == ActionResultType.FAIL)
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(WorldEvent.Save event) {
|
||||
if (event.getWorld() instanceof ClientWorld) {
|
||||
ClientWorld world = (ClientWorld) event.getWorld();
|
||||
LifecycleEvent.CLIENT_WORLD_LOAD.invoker().act(world);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(GuiScreenEvent.DrawScreenEvent.Pre event) {
|
||||
if (GuiEvent.RENDER_PRE.invoker().render(event.getGui(), event.getMatrixStack(), event.getMouseX(), event.getMouseY(), event.getRenderPartialTicks()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(GuiScreenEvent.DrawScreenEvent.Post event) {
|
||||
GuiEvent.RENDER_POST.invoker().render(event.getGui(), event.getMatrixStack(), event.getMouseX(), event.getMouseY(), event.getRenderPartialTicks());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.RightClickEmpty event) {
|
||||
InteractionEvent.CLIENT_RIGHT_CLICK_AIR.invoker().click(event.getPlayer(), event.getHand());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.LeftClickEmpty event) {
|
||||
InteractionEvent.CLIENT_LEFT_CLICK_AIR.invoker().click(event.getPlayer(), event.getHand());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(net.minecraftforge.client.event.TextureStitchEvent.Pre event) {
|
||||
TextureStitchEvent.PRE.invoker().stitch(event.getMap(), event::addSprite);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(net.minecraftforge.client.event.TextureStitchEvent.Post event) {
|
||||
TextureStitchEvent.POST.invoker().stitch(event.getMap());
|
||||
}
|
||||
public static void registerClient() {
|
||||
MinecraftForge.EVENT_BUS.register(EventHandlerImplClient.class);
|
||||
EventBuses.getModEventBus(ArchitecturyForge.MOD_ID).orElseThrow(() -> new IllegalStateException("Where is architectury?")).register(EventHandlerImplClient.ModBasedEventHandler.class);
|
||||
}
|
||||
|
||||
public static class Common {
|
||||
@SubscribeEvent
|
||||
public static void event(ServerTickEvent event) {
|
||||
if (event.phase == Phase.START)
|
||||
TickEvent.SERVER_PRE.invoker().tick(ServerLifecycleHooks.getCurrentServer());
|
||||
else if (event.phase == Phase.END)
|
||||
TickEvent.SERVER_POST.invoker().tick(ServerLifecycleHooks.getCurrentServer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(WorldTickEvent event) {
|
||||
if (event.side == LogicalSide.SERVER) {
|
||||
if (event.phase == Phase.START)
|
||||
TickEvent.SERVER_WORLD_PRE.invoker().tick((ServerWorld) event.world);
|
||||
else if (event.phase == Phase.END)
|
||||
TickEvent.SERVER_WORLD_POST.invoker().tick((ServerWorld) event.world);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(FMLServerStartingEvent event) {
|
||||
LifecycleEvent.SERVER_STARTING.invoker().stateChanged(event.getServer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(FMLServerStartedEvent event) {
|
||||
LifecycleEvent.SERVER_STARTED.invoker().stateChanged(event.getServer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(FMLServerStoppingEvent event) {
|
||||
LifecycleEvent.SERVER_STOPPING.invoker().stateChanged(event.getServer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(FMLServerStoppedEvent event) {
|
||||
LifecycleEvent.SERVER_STOPPED.invoker().stateChanged(event.getServer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(RegisterCommandsEvent event) {
|
||||
CommandRegistrationEvent.EVENT.invoker().register(event.getDispatcher(), event.getEnvironment());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerLoggedInEvent event) {
|
||||
PlayerEvent.PLAYER_JOIN.invoker().join((ServerPlayerEntity) event.getPlayer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerLoggedOutEvent event) {
|
||||
PlayerEvent.PLAYER_QUIT.invoker().quit((ServerPlayerEntity) event.getPlayer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerRespawnEvent event) {
|
||||
PlayerEvent.PLAYER_RESPAWN.invoker().respawn((ServerPlayerEntity) event.getPlayer(), event.isEndConquered());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(CommandEvent event) {
|
||||
CommandPerformEvent performEvent = new CommandPerformEvent(event.getParseResults(), event.getException());
|
||||
if (CommandPerformEvent.EVENT.invoker().act(performEvent) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
event.setParseResults(performEvent.getResults());
|
||||
event.setException(performEvent.getThrowable());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerTickEvent event) {
|
||||
if (event.phase == Phase.START) {
|
||||
TickEvent.PLAYER_PRE.invoker().tick(event.player);
|
||||
} else if (event.phase == Phase.END) {
|
||||
TickEvent.PLAYER_POST.invoker().tick(event.player);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ServerChatEvent event) {
|
||||
ActionResult<ITextComponent> process = ChatEvent.SERVER.invoker().process(event.getPlayer(), event.getMessage(), event.getComponent());
|
||||
if (process.getObject() != null)
|
||||
event.setComponent(process.getObject());
|
||||
if (process.getResult() == ActionResultType.FAIL)
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(WorldEvent.Load event) {
|
||||
if (event.getWorld() instanceof ServerWorld) {
|
||||
ServerWorld world = (ServerWorld) event.getWorld();
|
||||
LifecycleEvent.SERVER_WORLD_LOAD.invoker().act(world);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(WorldEvent.Unload event) {
|
||||
if (event.getWorld() instanceof ServerWorld) {
|
||||
ServerWorld world = (ServerWorld) event.getWorld();
|
||||
LifecycleEvent.SERVER_WORLD_UNLOAD.invoker().act(world);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(WorldEvent.Save event) {
|
||||
if (event.getWorld() instanceof ServerWorld) {
|
||||
ServerWorld world = (ServerWorld) event.getWorld();
|
||||
LifecycleEvent.SERVER_WORLD_SAVE.invoker().act(world);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(LivingDeathEvent event) {
|
||||
if (EntityEvent.LIVING_DEATH.invoker().die(event.getEntityLiving(), event.getSource()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(AdvancementEvent event) {
|
||||
if (event.getPlayer() instanceof ServerPlayerEntity) {
|
||||
PlayerEvent.PLAYER_ADVANCEMENT.invoker().award((ServerPlayerEntity) event.getPlayer(), event.getAdvancement());
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(Clone event) {
|
||||
if (event.getOriginal() instanceof ServerPlayerEntity && event.getPlayer() instanceof ServerPlayerEntity) {
|
||||
PlayerEvent.PLAYER_CLONE.invoker().clone((ServerPlayerEntity) event.getOriginal(), (ServerPlayerEntity) event.getPlayer(), !event.isWasDeath());
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(Start event) {
|
||||
if (ExplosionEvent.PRE.invoker().explode(event.getWorld(), event.getExplosion()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(Detonate event) {
|
||||
ExplosionEvent.DETONATE.invoker().explode(event.getWorld(), event.getExplosion(), event.getAffectedEntities());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(LivingAttackEvent event) {
|
||||
if (EntityEvent.LIVING_ATTACK.invoker().attack(event.getEntityLiving(), event.getSource(), event.getAmount()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(EntityJoinWorldEvent event) {
|
||||
if (EntityEvent.ADD.invoker().add(event.getEntity(), event.getWorld()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ItemCraftedEvent event) {
|
||||
PlayerEvent.CRAFT_ITEM.invoker().craft(event.getPlayer(), event.getCrafting(), event.getInventory());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ItemSmeltedEvent event) {
|
||||
PlayerEvent.SMELT_ITEM.invoker().smelt(event.getPlayer(), event.getSmelting());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(EntityItemPickupEvent event) {
|
||||
PlayerEvent.PICKUP_ITEM_PRE.invoker().canPickup(event.getPlayer(), event.getItem(), event.getItem().getItem());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ItemPickupEvent event) {
|
||||
PlayerEvent.PICKUP_ITEM_POST.invoker().pickup(event.getPlayer(), event.getOriginalEntity(), event.getStack());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ItemTossEvent event) {
|
||||
PlayerEvent.DROP_ITEM.invoker().drop(event.getPlayer(), event.getEntityItem());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerContainerEvent.Open event) {
|
||||
PlayerEvent.OPEN_MENU.invoker().open(event.getPlayer(), event.getContainer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerContainerEvent.Close event) {
|
||||
PlayerEvent.CLOSE_MENU.invoker().close(event.getPlayer(), event.getContainer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.RightClickItem event) {
|
||||
ActionResult<ItemStack> result = InteractionEvent.RIGHT_CLICK_ITEM.invoker().click(event.getPlayer(), event.getHand());
|
||||
if (result.getResult() != ActionResultType.PASS) {
|
||||
event.setCanceled(true);
|
||||
event.setCancellationResult(result.getResult());
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.RightClickBlock event) {
|
||||
ActionResultType result = InteractionEvent.RIGHT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace());
|
||||
if (result != ActionResultType.PASS) {
|
||||
event.setCanceled(true);
|
||||
event.setCancellationResult(result);
|
||||
event.setUseBlock(Event.Result.DENY);
|
||||
event.setUseItem(Event.Result.DENY);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.EntityInteract event) {
|
||||
ActionResultType result = InteractionEvent.INTERACT_ENTITY.invoker().interact(event.getPlayer(), event.getTarget(), event.getHand());
|
||||
if (result != ActionResultType.PASS) {
|
||||
event.setCanceled(true);
|
||||
event.setCancellationResult(result);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.LeftClickBlock event) {
|
||||
ActionResultType result = InteractionEvent.LEFT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace());
|
||||
if (result != ActionResultType.PASS) {
|
||||
event.setCanceled(true);
|
||||
event.setCancellationResult(result);
|
||||
event.setUseBlock(Event.Result.DENY);
|
||||
event.setUseItem(Event.Result.DENY);
|
||||
}
|
||||
}
|
||||
public static void registerCommon() {
|
||||
MinecraftForge.EVENT_BUS.register(EventHandlerImplCommon.class);
|
||||
EventBuses.getModEventBus(ArchitecturyForge.MOD_ID).orElseThrow(() -> new IllegalStateException("Where is architectury?")).register(EventHandlerImplCommon.ModBasedEventHandler.class);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.DEDICATED_SERVER)
|
||||
public static class Server {
|
||||
|
||||
public static void registerServer() {
|
||||
MinecraftForge.EVENT_BUS.register(EventHandlerImplServer.class);
|
||||
EventBuses.getModEventBus(ArchitecturyForge.MOD_ID).orElseThrow(() -> new IllegalStateException("Where is architectury?")).register(EventHandlerImplServer.ModBasedEventHandler.class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
package me.shedaniel.architectury.event.forge;
|
||||
|
||||
import me.shedaniel.architectury.event.events.TextureStitchEvent;
|
||||
import me.shedaniel.architectury.event.events.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.IGuiEventListener;
|
||||
import net.minecraft.client.world.ClientWorld;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.ActionResultType;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.client.event.*;
|
||||
import net.minecraftforge.event.TickEvent.ClientTickEvent;
|
||||
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
|
||||
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
|
||||
import net.minecraftforge.event.world.WorldEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class EventHandlerImplClient {
|
||||
@SubscribeEvent
|
||||
public static void event(ItemTooltipEvent event) {
|
||||
TooltipEvent.ITEM.invoker().append(event.getItemStack(), event.getToolTip(), event.getFlags());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientTickEvent event) {
|
||||
if (event.phase == net.minecraftforge.event.TickEvent.Phase.START)
|
||||
TickEvent.CLIENT_PRE.invoker().tick(Minecraft.getInstance());
|
||||
else if (event.phase == net.minecraftforge.event.TickEvent.Phase.END)
|
||||
TickEvent.CLIENT_POST.invoker().tick(Minecraft.getInstance());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(RenderGameOverlayEvent.Post event) {
|
||||
if (event.getType() == RenderGameOverlayEvent.ElementType.ALL)
|
||||
GuiEvent.RENDER_HUD.invoker().renderHud(event.getMatrixStack(), event.getPartialTicks());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientPlayerNetworkEvent.LoggedInEvent event) {
|
||||
PlayerEvent.CLIENT_PLAYER_JOIN.invoker().join(event.getPlayer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientPlayerNetworkEvent.LoggedOutEvent event) {
|
||||
PlayerEvent.CLIENT_PLAYER_QUIT.invoker().quit(event.getPlayer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientPlayerNetworkEvent.RespawnEvent event) {
|
||||
PlayerEvent.CLIENT_PLAYER_RESPAWN.invoker().respawn(event.getOldPlayer(), event.getNewPlayer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(GuiScreenEvent.InitGuiEvent.Pre event) {
|
||||
if (GuiEvent.INIT_PRE.invoker().init(event.getGui(), event.getWidgetList(), (List<IGuiEventListener>) event.getGui().children()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(GuiScreenEvent.InitGuiEvent.Post event) {
|
||||
GuiEvent.INIT_POST.invoker().init(event.getGui(), event.getWidgetList(), (List<IGuiEventListener>) event.getGui().children());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(RenderGameOverlayEvent.Text event) {
|
||||
GuiEvent.DEBUG_TEXT_LEFT.invoker().gatherText(event.getLeft());
|
||||
GuiEvent.DEBUG_TEXT_RIGHT.invoker().gatherText(event.getRight());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientChatEvent event) {
|
||||
ActionResult<String> process = ChatEvent.CLIENT.invoker().process(event.getMessage());
|
||||
if (process.getObject() != null)
|
||||
event.setMessage(process.getObject());
|
||||
if (process.getResult() == ActionResultType.FAIL)
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ClientChatReceivedEvent event) {
|
||||
ActionResult<ITextComponent> process = ChatEvent.CLIENT_RECEIVED.invoker().process(event.getType(), event.getMessage(), event.getSenderUUID());
|
||||
if (process.getObject() != null)
|
||||
event.setMessage(process.getObject());
|
||||
if (process.getResult() == ActionResultType.FAIL)
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(WorldEvent.Save event) {
|
||||
if (event.getWorld() instanceof ClientWorld) {
|
||||
ClientWorld world = (ClientWorld) event.getWorld();
|
||||
LifecycleEvent.CLIENT_WORLD_LOAD.invoker().act(world);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(GuiScreenEvent.DrawScreenEvent.Pre event) {
|
||||
if (GuiEvent.RENDER_PRE.invoker().render(event.getGui(), event.getMatrixStack(), event.getMouseX(), event.getMouseY(), event.getRenderPartialTicks()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(GuiScreenEvent.DrawScreenEvent.Post event) {
|
||||
GuiEvent.RENDER_POST.invoker().render(event.getGui(), event.getMatrixStack(), event.getMouseX(), event.getMouseY(), event.getRenderPartialTicks());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.RightClickEmpty event) {
|
||||
InteractionEvent.CLIENT_RIGHT_CLICK_AIR.invoker().click(event.getPlayer(), event.getHand());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.LeftClickEmpty event) {
|
||||
InteractionEvent.CLIENT_LEFT_CLICK_AIR.invoker().click(event.getPlayer(), event.getHand());
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public static class ModBasedEventHandler {
|
||||
@SubscribeEvent
|
||||
public static void event(net.minecraftforge.client.event.TextureStitchEvent.Pre event) {
|
||||
TextureStitchEvent.PRE.invoker().stitch(event.getMap(), event::addSprite);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(net.minecraftforge.client.event.TextureStitchEvent.Post event) {
|
||||
TextureStitchEvent.POST.invoker().stitch(event.getMap());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,274 @@
|
||||
package me.shedaniel.architectury.event.forge;
|
||||
|
||||
import me.shedaniel.architectury.event.events.*;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.ActionResultType;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
import net.minecraftforge.event.CommandEvent;
|
||||
import net.minecraftforge.event.RegisterCommandsEvent;
|
||||
import net.minecraftforge.event.ServerChatEvent;
|
||||
import net.minecraftforge.event.TickEvent.Phase;
|
||||
import net.minecraftforge.event.TickEvent.PlayerTickEvent;
|
||||
import net.minecraftforge.event.TickEvent.ServerTickEvent;
|
||||
import net.minecraftforge.event.TickEvent.WorldTickEvent;
|
||||
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
|
||||
import net.minecraftforge.event.entity.item.ItemTossEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingAttackEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingDeathEvent;
|
||||
import net.minecraftforge.event.entity.player.AdvancementEvent;
|
||||
import net.minecraftforge.event.entity.player.EntityItemPickupEvent;
|
||||
import net.minecraftforge.event.entity.player.PlayerContainerEvent;
|
||||
import net.minecraftforge.event.entity.player.PlayerEvent.*;
|
||||
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
|
||||
import net.minecraftforge.event.world.ExplosionEvent.Detonate;
|
||||
import net.minecraftforge.event.world.ExplosionEvent.Start;
|
||||
import net.minecraftforge.event.world.WorldEvent;
|
||||
import net.minecraftforge.eventbus.api.Event;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.LogicalSide;
|
||||
import net.minecraftforge.fml.event.server.FMLServerStartedEvent;
|
||||
import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
|
||||
import net.minecraftforge.fml.event.server.FMLServerStoppedEvent;
|
||||
import net.minecraftforge.fml.event.server.FMLServerStoppingEvent;
|
||||
import net.minecraftforge.fml.server.ServerLifecycleHooks;
|
||||
|
||||
public class EventHandlerImplCommon {
|
||||
@SubscribeEvent
|
||||
public static void event(ServerTickEvent event) {
|
||||
if (event.phase == Phase.START)
|
||||
TickEvent.SERVER_PRE.invoker().tick(ServerLifecycleHooks.getCurrentServer());
|
||||
else if (event.phase == Phase.END)
|
||||
TickEvent.SERVER_POST.invoker().tick(ServerLifecycleHooks.getCurrentServer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(WorldTickEvent event) {
|
||||
if (event.side == LogicalSide.SERVER) {
|
||||
if (event.phase == Phase.START)
|
||||
TickEvent.SERVER_WORLD_PRE.invoker().tick((ServerWorld) event.world);
|
||||
else if (event.phase == Phase.END)
|
||||
TickEvent.SERVER_WORLD_POST.invoker().tick((ServerWorld) event.world);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(FMLServerStartingEvent event) {
|
||||
LifecycleEvent.SERVER_STARTING.invoker().stateChanged(event.getServer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(FMLServerStartedEvent event) {
|
||||
LifecycleEvent.SERVER_STARTED.invoker().stateChanged(event.getServer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(FMLServerStoppingEvent event) {
|
||||
LifecycleEvent.SERVER_STOPPING.invoker().stateChanged(event.getServer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(FMLServerStoppedEvent event) {
|
||||
LifecycleEvent.SERVER_STOPPED.invoker().stateChanged(event.getServer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(RegisterCommandsEvent event) {
|
||||
CommandRegistrationEvent.EVENT.invoker().register(event.getDispatcher(), event.getEnvironment());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerLoggedInEvent event) {
|
||||
PlayerEvent.PLAYER_JOIN.invoker().join((ServerPlayerEntity) event.getPlayer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerLoggedOutEvent event) {
|
||||
PlayerEvent.PLAYER_QUIT.invoker().quit((ServerPlayerEntity) event.getPlayer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerRespawnEvent event) {
|
||||
PlayerEvent.PLAYER_RESPAWN.invoker().respawn((ServerPlayerEntity) event.getPlayer(), event.isEndConquered());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(CommandEvent event) {
|
||||
CommandPerformEvent performEvent = new CommandPerformEvent(event.getParseResults(), event.getException());
|
||||
if (CommandPerformEvent.EVENT.invoker().act(performEvent) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
event.setParseResults(performEvent.getResults());
|
||||
event.setException(performEvent.getThrowable());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerTickEvent event) {
|
||||
if (event.phase == Phase.START) {
|
||||
TickEvent.PLAYER_PRE.invoker().tick(event.player);
|
||||
} else if (event.phase == Phase.END) {
|
||||
TickEvent.PLAYER_POST.invoker().tick(event.player);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ServerChatEvent event) {
|
||||
ActionResult<ITextComponent> process = ChatEvent.SERVER.invoker().process(event.getPlayer(), event.getMessage(), event.getComponent());
|
||||
if (process.getObject() != null)
|
||||
event.setComponent(process.getObject());
|
||||
if (process.getResult() == ActionResultType.FAIL)
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(WorldEvent.Load event) {
|
||||
if (event.getWorld() instanceof ServerWorld) {
|
||||
ServerWorld world = (ServerWorld) event.getWorld();
|
||||
LifecycleEvent.SERVER_WORLD_LOAD.invoker().act(world);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(WorldEvent.Unload event) {
|
||||
if (event.getWorld() instanceof ServerWorld) {
|
||||
ServerWorld world = (ServerWorld) event.getWorld();
|
||||
LifecycleEvent.SERVER_WORLD_UNLOAD.invoker().act(world);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(WorldEvent.Save event) {
|
||||
if (event.getWorld() instanceof ServerWorld) {
|
||||
ServerWorld world = (ServerWorld) event.getWorld();
|
||||
LifecycleEvent.SERVER_WORLD_SAVE.invoker().act(world);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(LivingDeathEvent event) {
|
||||
if (EntityEvent.LIVING_DEATH.invoker().die(event.getEntityLiving(), event.getSource()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(AdvancementEvent event) {
|
||||
if (event.getPlayer() instanceof ServerPlayerEntity) {
|
||||
PlayerEvent.PLAYER_ADVANCEMENT.invoker().award((ServerPlayerEntity) event.getPlayer(), event.getAdvancement());
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(Clone event) {
|
||||
if (event.getOriginal() instanceof ServerPlayerEntity && event.getPlayer() instanceof ServerPlayerEntity) {
|
||||
PlayerEvent.PLAYER_CLONE.invoker().clone((ServerPlayerEntity) event.getOriginal(), (ServerPlayerEntity) event.getPlayer(), !event.isWasDeath());
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(Start event) {
|
||||
if (ExplosionEvent.PRE.invoker().explode(event.getWorld(), event.getExplosion()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(Detonate event) {
|
||||
ExplosionEvent.DETONATE.invoker().explode(event.getWorld(), event.getExplosion(), event.getAffectedEntities());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(LivingAttackEvent event) {
|
||||
if (EntityEvent.LIVING_ATTACK.invoker().attack(event.getEntityLiving(), event.getSource(), event.getAmount()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(EntityJoinWorldEvent event) {
|
||||
if (EntityEvent.ADD.invoker().add(event.getEntity(), event.getWorld()) == ActionResultType.FAIL) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ItemCraftedEvent event) {
|
||||
PlayerEvent.CRAFT_ITEM.invoker().craft(event.getPlayer(), event.getCrafting(), event.getInventory());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ItemSmeltedEvent event) {
|
||||
PlayerEvent.SMELT_ITEM.invoker().smelt(event.getPlayer(), event.getSmelting());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(EntityItemPickupEvent event) {
|
||||
PlayerEvent.PICKUP_ITEM_PRE.invoker().canPickup(event.getPlayer(), event.getItem(), event.getItem().getItem());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ItemPickupEvent event) {
|
||||
PlayerEvent.PICKUP_ITEM_POST.invoker().pickup(event.getPlayer(), event.getOriginalEntity(), event.getStack());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(ItemTossEvent event) {
|
||||
PlayerEvent.DROP_ITEM.invoker().drop(event.getPlayer(), event.getEntityItem());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerContainerEvent.Open event) {
|
||||
PlayerEvent.OPEN_MENU.invoker().open(event.getPlayer(), event.getContainer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerContainerEvent.Close event) {
|
||||
PlayerEvent.CLOSE_MENU.invoker().close(event.getPlayer(), event.getContainer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.RightClickItem event) {
|
||||
ActionResult<ItemStack> result = InteractionEvent.RIGHT_CLICK_ITEM.invoker().click(event.getPlayer(), event.getHand());
|
||||
if (result.getResult() != ActionResultType.PASS) {
|
||||
event.setCanceled(true);
|
||||
event.setCancellationResult(result.getResult());
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.RightClickBlock event) {
|
||||
ActionResultType result = InteractionEvent.RIGHT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace());
|
||||
if (result != ActionResultType.PASS) {
|
||||
event.setCanceled(true);
|
||||
event.setCancellationResult(result);
|
||||
event.setUseBlock(Event.Result.DENY);
|
||||
event.setUseItem(Event.Result.DENY);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.EntityInteract event) {
|
||||
ActionResultType result = InteractionEvent.INTERACT_ENTITY.invoker().interact(event.getPlayer(), event.getTarget(), event.getHand());
|
||||
if (result != ActionResultType.PASS) {
|
||||
event.setCanceled(true);
|
||||
event.setCancellationResult(result);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(PlayerInteractEvent.LeftClickBlock event) {
|
||||
ActionResultType result = InteractionEvent.LEFT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace());
|
||||
if (result != ActionResultType.PASS) {
|
||||
event.setCanceled(true);
|
||||
event.setCancellationResult(result);
|
||||
event.setUseBlock(Event.Result.DENY);
|
||||
event.setUseItem(Event.Result.DENY);
|
||||
}
|
||||
}
|
||||
|
||||
public static class ModBasedEventHandler {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package me.shedaniel.architectury.event.forge;
|
||||
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.DEDICATED_SERVER)
|
||||
public class EventHandlerImplServer {
|
||||
@OnlyIn(Dist.DEDICATED_SERVER)
|
||||
public static class ModBasedEventHandler {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -17,15 +17,21 @@
|
||||
package me.shedaniel.architectury.forge;
|
||||
|
||||
import me.shedaniel.architectury.event.EventHandler;
|
||||
import me.shedaniel.architectury.platform.Platform;
|
||||
import me.shedaniel.architectury.platform.forge.EventBuses;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Mod(ArchitecturyForge.MOD_ID)
|
||||
public class ArchitecturyForge {
|
||||
public static final String MOD_ID = "architectury";
|
||||
|
||||
public ArchitecturyForge() {
|
||||
System.out.println(Platform.getMods().stream()
|
||||
.map(me.shedaniel.architectury.platform.Mod::getModId)
|
||||
.collect(Collectors.joining(", ")));
|
||||
EventBuses.registerModEventBus(ArchitecturyForge.MOD_ID, FMLJavaModLoadingContext.get().getModEventBus());
|
||||
EventHandler.init();
|
||||
}
|
||||
|
||||
@@ -16,12 +16,10 @@
|
||||
|
||||
package me.shedaniel.architectury.hooks.forge;
|
||||
|
||||
import me.shedaniel.architectury.hooks.DyeColorHooks;
|
||||
import net.minecraft.item.DyeColor;
|
||||
|
||||
public class DyeColorHooksImpl implements DyeColorHooks.Impl {
|
||||
@Override
|
||||
public int getColorValue(DyeColor dyeColor) {
|
||||
public class DyeColorHooksImpl {
|
||||
public static int getColorValue(DyeColor dyeColor) {
|
||||
return dyeColor.getColorValue();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,12 +16,10 @@
|
||||
|
||||
package me.shedaniel.architectury.hooks.forge;
|
||||
|
||||
import me.shedaniel.architectury.hooks.EntityHooks;
|
||||
import net.minecraft.entity.Entity;
|
||||
|
||||
public class EntityHooksImpl implements EntityHooks.Impl {
|
||||
@Override
|
||||
public String getEncodeId(Entity entity) {
|
||||
public class EntityHooksImpl {
|
||||
public static String getEncodeId(Entity entity) {
|
||||
return entity.getEncodeId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,29 +16,24 @@
|
||||
|
||||
package me.shedaniel.architectury.hooks.forge;
|
||||
|
||||
import me.shedaniel.architectury.hooks.ExplosionHooks;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.math.vector.Vector3d;
|
||||
import net.minecraft.world.Explosion;
|
||||
|
||||
public class ExplosionHooksImpl implements ExplosionHooks.Impl {
|
||||
@Override
|
||||
public Vector3d getPosition(Explosion explosion) {
|
||||
public class ExplosionHooksImpl {
|
||||
public static Vector3d getPosition(Explosion explosion) {
|
||||
return explosion.getPosition();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Entity getSource(Explosion explosion) {
|
||||
public static Entity getSource(Explosion explosion) {
|
||||
return explosion.getExploder();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getRadius(Explosion explosion) {
|
||||
public static float getRadius(Explosion explosion) {
|
||||
return explosion.radius;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRadius(Explosion explosion, float v) {
|
||||
public static void setRadius(Explosion explosion, float v) {
|
||||
explosion.radius = v;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,13 +16,11 @@
|
||||
|
||||
package me.shedaniel.architectury.hooks.forge;
|
||||
|
||||
import me.shedaniel.architectury.hooks.ItemEntityHooks;
|
||||
import me.shedaniel.architectury.utils.IntValue;
|
||||
import net.minecraft.entity.item.ItemEntity;
|
||||
|
||||
public class ItemEntityHooksImpl implements ItemEntityHooks.Impl {
|
||||
@Override
|
||||
public IntValue lifespan(ItemEntity entity) {
|
||||
public class ItemEntityHooksImpl {
|
||||
public static IntValue lifespan(ItemEntity entity) {
|
||||
return new IntValue() {
|
||||
@Override
|
||||
public void accept(int value) {
|
||||
|
||||
@@ -16,13 +16,11 @@
|
||||
|
||||
package me.shedaniel.architectury.hooks.forge;
|
||||
|
||||
import me.shedaniel.architectury.hooks.PackRepositoryHooks;
|
||||
import net.minecraft.resources.IPackFinder;
|
||||
import net.minecraft.resources.ResourcePackList;
|
||||
|
||||
public class PackRepositoryHooksImpl implements PackRepositoryHooks.Impl{
|
||||
@Override
|
||||
public void addSource(ResourcePackList resourcePackList, IPackFinder iPackFinder) {
|
||||
public class PackRepositoryHooksImpl {
|
||||
public static void addSource(ResourcePackList resourcePackList, IPackFinder iPackFinder) {
|
||||
resourcePackList.addPackFinder(iPackFinder);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,18 +16,15 @@
|
||||
|
||||
package me.shedaniel.architectury.hooks.forge;
|
||||
|
||||
import me.shedaniel.architectury.hooks.PlayerHooks;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraftforge.common.util.FakePlayer;
|
||||
|
||||
public class PlayerHooksImpl implements PlayerHooks.Impl {
|
||||
@Override
|
||||
public boolean isFake(PlayerEntity playerEntity) {
|
||||
public class PlayerHooksImpl {
|
||||
public static boolean isFake(PlayerEntity playerEntity) {
|
||||
return playerEntity instanceof FakePlayer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closeContainer(PlayerEntity playerEntity) {
|
||||
public static void closeContainer(PlayerEntity playerEntity) {
|
||||
playerEntity.closeContainer();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package me.shedaniel.architectury.hooks.forge;
|
||||
|
||||
import me.shedaniel.architectury.hooks.ScreenHooks;
|
||||
import net.minecraft.client.gui.IGuiEventListener;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.widget.Widget;
|
||||
@@ -25,14 +24,12 @@ import net.minecraftforge.fml.common.ObfuscationReflectionHelper;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.List;
|
||||
|
||||
public class ScreenHooksImpl implements ScreenHooks.Impl {
|
||||
@Override
|
||||
public List<Widget> getButtons(Screen screen) {
|
||||
public class ScreenHooksImpl {
|
||||
public static List<Widget> getButtons(Screen screen) {
|
||||
return screen.buttons;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends Widget> T addButton(Screen screen, T t) {
|
||||
public static <T extends Widget> T addButton(Screen screen, T t) {
|
||||
try {
|
||||
return (T) ObfuscationReflectionHelper.findMethod(Screen.class, "func_230480_a_", Widget.class).invoke(screen, t);
|
||||
} catch (IllegalAccessException | InvocationTargetException e) {
|
||||
@@ -40,8 +37,7 @@ public class ScreenHooksImpl implements ScreenHooks.Impl {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends IGuiEventListener> T addChild(Screen screen, T t) {
|
||||
public static <T extends IGuiEventListener> T addChild(Screen screen, T t) {
|
||||
try {
|
||||
return (T) ObfuscationReflectionHelper.findMethod(Screen.class, "func_230481_d_", IGuiEventListener.class).invoke(screen, t);
|
||||
} catch (IllegalAccessException | InvocationTargetException e) {
|
||||
|
||||
@@ -27,18 +27,17 @@ import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.fml.network.NetworkEvent;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import static me.shedaniel.architectury.networking.forge.NetworkManagerImpl.C2S;
|
||||
import static me.shedaniel.architectury.networking.forge.NetworkManagerImpl.SYNC_IDS;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class ClientNetworkingManager {
|
||||
public static Consumer<NetworkManagerImpl> initClient() {
|
||||
public static void initClient() {
|
||||
NetworkManagerImpl.CHANNEL.addListener(NetworkManagerImpl.createPacketHandler(NetworkEvent.ServerCustomPayloadEvent.class, NetworkManagerImpl.S2C));
|
||||
MinecraftForge.EVENT_BUS.<ClientPlayerNetworkEvent.LoggedOutEvent>addListener(event -> NetworkManagerImpl.serverReceivables.clear());
|
||||
|
||||
return impl -> impl.registerS2CReceiver(SYNC_IDS, (buffer, context) -> {
|
||||
NetworkManagerImpl.registerS2CReceiver(SYNC_IDS, (buffer, context) -> {
|
||||
Set<ResourceLocation> receivables = NetworkManagerImpl.serverReceivables;
|
||||
int size = buffer.readInt();
|
||||
receivables.clear();
|
||||
|
||||
@@ -43,9 +43,8 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class NetworkManagerImpl implements NetworkManager.Impl {
|
||||
@Override
|
||||
public void registerReceiver(NetworkManager.Side side, ResourceLocation id, NetworkReceiver receiver) {
|
||||
public class NetworkManagerImpl {
|
||||
public static void registerReceiver(NetworkManager.Side side, ResourceLocation id, NetworkReceiver receiver) {
|
||||
if (side == NetworkManager.Side.C2S) {
|
||||
registerC2SReceiver(id, receiver);
|
||||
} else if (side == NetworkManager.Side.S2C) {
|
||||
@@ -53,8 +52,7 @@ public class NetworkManagerImpl implements NetworkManager.Impl {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPacket<?> toPacket(NetworkManager.Side side, ResourceLocation id, PacketBuffer buffer) {
|
||||
public static IPacket<?> toPacket(NetworkManager.Side side, ResourceLocation id, PacketBuffer buffer) {
|
||||
PacketBuffer packetBuffer = new PacketBuffer(Unpooled.buffer());
|
||||
packetBuffer.writeResourceLocation(id);
|
||||
packetBuffer.writeBytes(buffer);
|
||||
@@ -69,10 +67,10 @@ public class NetworkManagerImpl implements NetworkManager.Impl {
|
||||
static final Set<ResourceLocation> serverReceivables = Sets.newHashSet();
|
||||
private static final Multimap<PlayerEntity, ResourceLocation> clientReceivables = Multimaps.newMultimap(Maps.newHashMap(), Sets::newHashSet);
|
||||
|
||||
public NetworkManagerImpl() {
|
||||
static {
|
||||
CHANNEL.addListener(createPacketHandler(NetworkEvent.ClientCustomPayloadEvent.class, C2S));
|
||||
|
||||
DistExecutor.unsafeCallWhenOn(Dist.CLIENT, () -> ClientNetworkingManager::initClient).accept(this);
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> ClientNetworkingManager::initClient);
|
||||
|
||||
MinecraftForge.EVENT_BUS.<PlayerEvent.PlayerLoggedInEvent>addListener(event -> NetworkManager.sendToPlayer((ServerPlayerEntity) event.getPlayer(), SYNC_IDS, sendSyncPacket(C2S)));
|
||||
MinecraftForge.EVENT_BUS.<PlayerEvent.PlayerLoggedOutEvent>addListener(event -> clientReceivables.removeAll(event.getPlayer()));
|
||||
@@ -123,21 +121,19 @@ public class NetworkManagerImpl implements NetworkManager.Impl {
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void registerS2CReceiver(ResourceLocation id, NetworkReceiver receiver) {
|
||||
public static void registerS2CReceiver(ResourceLocation id, NetworkReceiver receiver) {
|
||||
S2C.put(id, receiver);
|
||||
}
|
||||
|
||||
public void registerC2SReceiver(ResourceLocation id, NetworkReceiver receiver) {
|
||||
public static void registerC2SReceiver(ResourceLocation id, NetworkReceiver receiver) {
|
||||
C2S.put(id, receiver);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canServerReceive(ResourceLocation id) {
|
||||
public static boolean canServerReceive(ResourceLocation id) {
|
||||
return serverReceivables.contains(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayerReceive(ServerPlayerEntity player, ResourceLocation id) {
|
||||
public static boolean canPlayerReceive(ServerPlayerEntity player, ResourceLocation id) {
|
||||
return clientReceivables.get(player).contains(id);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package me.shedaniel.architectury.platform.forge;
|
||||
|
||||
import me.shedaniel.architectury.platform.Mod;
|
||||
import me.shedaniel.architectury.platform.Platform;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.fml.ExtensionPoint;
|
||||
import net.minecraftforge.fml.ModContainer;
|
||||
@@ -35,54 +34,45 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class PlatformImpl implements Platform.Impl {
|
||||
private final Map<String, Mod> mods = new HashMap<>();
|
||||
public class PlatformImpl {
|
||||
private static final Map<String, Mod> mods = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public Path getGameFolder() {
|
||||
public static Path getGameFolder() {
|
||||
return FMLPaths.GAMEDIR.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Path getConfigFolder() {
|
||||
public static Path getConfigFolder() {
|
||||
return FMLPaths.CONFIGDIR.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Path getModsFolder() {
|
||||
public static Path getModsFolder() {
|
||||
return FMLPaths.MODSDIR.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dist getEnv() {
|
||||
public static Dist getEnv() {
|
||||
return FMLEnvironment.dist;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isModLoaded(String id) {
|
||||
public static boolean isModLoaded(String id) {
|
||||
return ModList.get().isLoaded(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mod getMod(String id) {
|
||||
return this.mods.computeIfAbsent(id, ModImpl::new);
|
||||
public static Mod getMod(String id) {
|
||||
return mods.computeIfAbsent(id, ModImpl::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Mod> getMods() {
|
||||
public static Collection<Mod> getMods() {
|
||||
for (IModInfo mod : ModList.get().getMods()) {
|
||||
getMod(mod.getModId());
|
||||
}
|
||||
return this.mods.values();
|
||||
return mods.values();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<String> getModIds() {
|
||||
public static Collection<String> getModIds() {
|
||||
return ModList.get().getMods().stream().map(ModInfo::getModId).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDevelopmentEnvironment() {
|
||||
public static boolean isDevelopmentEnvironment() {
|
||||
return !FMLLoader.isProduction();
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package me.shedaniel.architectury.registry.forge;
|
||||
|
||||
import me.shedaniel.architectury.registry.BlockEntityRenderers;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
@@ -25,9 +24,8 @@ import net.minecraftforge.fml.client.registry.ClientRegistry;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
public class BlockEntityRenderersImpl implements BlockEntityRenderers.Impl {
|
||||
@Override
|
||||
public <T extends TileEntity> void registerRenderer(TileEntityType<T> type, Function<TileEntityRendererDispatcher, TileEntityRenderer<T>> provider) {
|
||||
public class BlockEntityRenderersImpl {
|
||||
public static <T extends TileEntity> void registerRenderer(TileEntityType<T> type, Function<TileEntityRendererDispatcher, TileEntityRenderer<T>> provider) {
|
||||
ClientRegistry.bindTileEntityRenderer(type, provider);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,24 +25,20 @@ import net.minecraft.block.material.MaterialColor;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
public class BlockPropertiesImpl implements BlockProperties.Impl {
|
||||
@Override
|
||||
public BlockProperties of(Material material, MaterialColor materialColor) {
|
||||
public class BlockPropertiesImpl {
|
||||
public static BlockProperties of(Material material, MaterialColor materialColor) {
|
||||
return new Impl(material, (state) -> materialColor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockProperties of(Material material, Function<BlockState, MaterialColor> function) {
|
||||
public static BlockProperties of(Material material, Function<BlockState, MaterialColor> function) {
|
||||
return new Impl(material, function);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockProperties copy(AbstractBlock abstractBlock) {
|
||||
public static BlockProperties copy(AbstractBlock abstractBlock) {
|
||||
return copy(abstractBlock.properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockProperties copy(AbstractBlock.Properties old) {
|
||||
public static BlockProperties copy(AbstractBlock.Properties old) {
|
||||
BlockProperties properties = of(old.material, old.materialColor);
|
||||
properties.material = old.material;
|
||||
properties.destroyTime = old.destroyTime;
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package me.shedaniel.architectury.registry.forge;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import me.shedaniel.architectury.registry.ColorHandlers;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.color.IBlockColor;
|
||||
@@ -29,11 +28,11 @@ import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ColorHandlersImpl implements ColorHandlers.Impl {
|
||||
public class ColorHandlersImpl {
|
||||
private static final List<Pair<IItemColor, IItemProvider[]>> ITEM_COLORS = Lists.newArrayList();
|
||||
private static final List<Pair<IBlockColor, Block[]>> BLOCK_COLORS = Lists.newArrayList();
|
||||
|
||||
public ColorHandlersImpl() {
|
||||
static {
|
||||
MinecraftForge.EVENT_BUS.<ColorHandlerEvent.Item>addListener(event -> {
|
||||
for (Pair<IItemColor, IItemProvider[]> pair : ITEM_COLORS) {
|
||||
event.getItemColors().register(pair.getLeft(), pair.getRight());
|
||||
@@ -46,8 +45,7 @@ public class ColorHandlersImpl implements ColorHandlers.Impl {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerItemColors(IItemColor itemColor, IItemProvider... items) {
|
||||
public static void registerItemColors(IItemColor itemColor, IItemProvider... items) {
|
||||
if (Minecraft.getInstance().getItemColors() == null) {
|
||||
ITEM_COLORS.add(Pair.of(itemColor, items));
|
||||
} else {
|
||||
@@ -55,8 +53,7 @@ public class ColorHandlersImpl implements ColorHandlers.Impl {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlockColors(IBlockColor blockColor, Block... blocks) {
|
||||
public static void registerBlockColors(IBlockColor blockColor, Block... blocks) {
|
||||
if (Minecraft.getInstance().getBlockColors() == null) {
|
||||
BLOCK_COLORS.add(Pair.of(blockColor, blocks));
|
||||
} else {
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package me.shedaniel.architectury.registry.forge;
|
||||
|
||||
import me.shedaniel.architectury.registry.CreativeTabs;
|
||||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
@@ -24,9 +23,8 @@ import net.minecraft.util.ResourceLocation;
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class CreativeTabsImpl implements CreativeTabs.Impl {
|
||||
@Override
|
||||
public ItemGroup create(ResourceLocation resourceLocation, Supplier<ItemStack> supplier) {
|
||||
public class CreativeTabsImpl {
|
||||
public static ItemGroup create(ResourceLocation resourceLocation, Supplier<ItemStack> supplier) {
|
||||
return new ItemGroup(String.format("%s.%s", resourceLocation.getNamespace(), resourceLocation.getPath())) {
|
||||
@Override
|
||||
@Nonnull
|
||||
|
||||
@@ -16,13 +16,11 @@
|
||||
|
||||
package me.shedaniel.architectury.registry.forge;
|
||||
|
||||
import me.shedaniel.architectury.registry.KeyBindings;
|
||||
import net.minecraft.client.settings.KeyBinding;
|
||||
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
||||
|
||||
public class KeyBindingsImpl implements KeyBindings.Impl {
|
||||
@Override
|
||||
public void registerKeyBinding(KeyBinding keyBinding) {
|
||||
public class KeyBindingsImpl {
|
||||
public static void registerKeyBinding(KeyBinding keyBinding) {
|
||||
ClientRegistry.registerKeyBinding(keyBinding);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,21 +40,18 @@ import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class RegistriesImpl implements Registries.Impl {
|
||||
@Override
|
||||
public Registries.RegistryProvider get(String modId) {
|
||||
public class RegistriesImpl {
|
||||
public static Registries.RegistryProvider _get(String modId) {
|
||||
return new RegistryProviderImpl(modId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> ResourceLocation getId(T t, RegistryKey<net.minecraft.util.registry.Registry<T>> registryKey) {
|
||||
public static <T> ResourceLocation getId(T t, RegistryKey<net.minecraft.util.registry.Registry<T>> registryKey) {
|
||||
if (t instanceof IForgeRegistryEntry)
|
||||
return ((IForgeRegistryEntry<?>) t).getRegistryName();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> ResourceLocation getId(T t, net.minecraft.util.registry.Registry<T> registry) {
|
||||
public static <T> ResourceLocation getId(T t, net.minecraft.util.registry.Registry<T> registry) {
|
||||
if (t instanceof IForgeRegistryEntry)
|
||||
return ((IForgeRegistryEntry<?>) t).getRegistryName();
|
||||
return null;
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package me.shedaniel.architectury.registry.forge;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import me.shedaniel.architectury.registry.ReloadListeners;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.IFutureReloadListener;
|
||||
import net.minecraft.resources.IReloadableResourceManager;
|
||||
@@ -29,10 +28,10 @@ import net.minecraftforge.event.AddReloadListenerEvent;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ReloadListenersImpl implements ReloadListeners.Impl {
|
||||
private List<IFutureReloadListener> serverDataReloadListeners = Lists.newArrayList();
|
||||
public class ReloadListenersImpl {
|
||||
private static List<IFutureReloadListener> serverDataReloadListeners = Lists.newArrayList();
|
||||
|
||||
public ReloadListenersImpl() {
|
||||
static {
|
||||
MinecraftForge.EVENT_BUS.<AddReloadListenerEvent>addListener(event -> {
|
||||
for (IFutureReloadListener listener : serverDataReloadListeners) {
|
||||
event.addListener(listener);
|
||||
@@ -40,8 +39,7 @@ public class ReloadListenersImpl implements ReloadListeners.Impl {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerReloadListener(ResourcePackType type, IFutureReloadListener listener) {
|
||||
public static void registerReloadListener(ResourcePackType type, IFutureReloadListener listener) {
|
||||
if (type == ResourcePackType.SERVER_DATA) {
|
||||
serverDataReloadListeners.add(listener);
|
||||
} else if (type == ResourcePackType.CLIENT_RESOURCES) {
|
||||
@@ -50,7 +48,7 @@ public class ReloadListenersImpl implements ReloadListeners.Impl {
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
private void reloadClientReloadListener(IFutureReloadListener listener) {
|
||||
private static void reloadClientReloadListener(IFutureReloadListener listener) {
|
||||
((IReloadableResourceManager) Minecraft.getInstance().getResourceManager()).registerReloadListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,22 +16,19 @@
|
||||
|
||||
package me.shedaniel.architectury.registry.forge;
|
||||
|
||||
import me.shedaniel.architectury.registry.RenderTypes;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.RenderTypeLookup;
|
||||
import net.minecraft.fluid.Fluid;
|
||||
|
||||
public class RenderTypesImpl implements RenderTypes.Impl {
|
||||
@Override
|
||||
public void register(RenderType type, Block... blocks) {
|
||||
public class RenderTypesImpl {
|
||||
public static void register(RenderType type, Block... blocks) {
|
||||
for (Block block : blocks) {
|
||||
RenderTypeLookup.setRenderLayer(block, type);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void register(RenderType type, Fluid... fluids) {
|
||||
public static void register(RenderType type, Fluid... fluids) {
|
||||
for (Fluid fluid : fluids) {
|
||||
RenderTypeLookup.setRenderLayer(fluid, type);
|
||||
}
|
||||
|
||||
@@ -17,28 +17,23 @@
|
||||
package me.shedaniel.architectury.registry.forge;
|
||||
|
||||
|
||||
import me.shedaniel.architectury.registry.ToolType;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tags.ITag;
|
||||
|
||||
public class ToolTypeImpl implements ToolType.Impl {
|
||||
@Override
|
||||
public ITag<Item> pickaxeTag() {
|
||||
public class ToolTypeImpl {
|
||||
public static ITag<Item> pickaxeTag() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ITag<Item> axeTag() {
|
||||
public static ITag<Item> axeTag() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ITag<Item> hoeTag() {
|
||||
public static ITag<Item> hoeTag() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ITag<Item> shovelTag() {
|
||||
public static ITag<Item> shovelTag() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,13 +16,11 @@
|
||||
|
||||
package me.shedaniel.architectury.utils.forge;
|
||||
|
||||
import me.shedaniel.architectury.utils.GameInstance;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraftforge.fml.server.ServerLifecycleHooks;
|
||||
|
||||
public class GameInstanceImpl implements GameInstance.Impl {
|
||||
@Override
|
||||
public MinecraftServer getServer() {
|
||||
public class GameInstanceImpl {
|
||||
public static MinecraftServer getServer() {
|
||||
return ServerLifecycleHooks.getCurrentServer();
|
||||
}
|
||||
}
|
||||
|
||||
6
forge/src/main/resources/pack.mcmeta
Normal file
6
forge/src/main/resources/pack.mcmeta
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"pack": {
|
||||
"description": "Architectury",
|
||||
"pack_format": 6
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user