Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re-enable NeoForge platform #139

Merged
merged 4 commits into from
Nov 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build-logic/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ repositories {
maven("https://repo.spongepowered.org/repository/maven-public/")
maven("https://maven.fabricmc.net/")
maven("https://maven.architectury.dev/")
maven("https://maven.neoforged.net/releases/")
}

dependencies {
Expand Down
1 change: 0 additions & 1 deletion forge/gradle.properties

This file was deleted.

4 changes: 0 additions & 4 deletions forge/src/main/resources/META-INF/accesstransformer.cfg

This file was deleted.

10 changes: 5 additions & 5 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ hangar-publish = { id = "io.papermc.hangar-publish-plugin", version = "0.1.0" }
minecraft = "1.20.2"
checkerQual = "3.40.0"
cloud = "1.8.4"
cloudForge = "1.0.0+1.20-SNAPSHOT"
cloudNeoForge = "1.0.0+1.20.2-SNAPSHOT"
cloudSponge = "1.8.0-SNAPSHOT"
configurate = "4.1.2"
adventure = "4.14.0"
Expand All @@ -20,15 +20,15 @@ fabricApi = "0.89.1+1.20.2"
fabricLoader = "0.14.22"
cardinalComponents = "5.3.0"
guice = "5.1.0"
forge = "1.20.1-47.0.0"
neoforge = "20.2.62-beta"

# buildSrc
indra = "3.1.3"
sponge-gradle = "2.2.0"
shadow = "8.1.1"
vanillaGradle = "0.2.1-SNAPSHOT"
mod-publish-plugin = "0.4.5"
loom = "1.3-SNAPSHOT"
loom = "1.4-SNAPSHOT"
paperweight = "1.5.10"

[libraries]
Expand All @@ -51,7 +51,7 @@ cloudBrigadier = { group = "cloud.commandframework", name = "cloud-brigadier", v
cloudMinecraftExtras = { group = "cloud.commandframework", name = "cloud-minecraft-extras", version.ref = "cloud" }
cloudPaper = { group = "cloud.commandframework", name = "cloud-paper", version.ref = "cloud" }
cloudFabric = { group = "cloud.commandframework", name = "cloud-fabric", version.ref = "cloud" }
cloudForge = { group = "cloud.commandframework", name = "cloud-forge", version.ref = "cloudForge" }
cloudNeoForge = { group = "cloud.commandframework", name = "cloud-neoforge", version.ref = "cloudNeoForge" }
cloudSponge = { group = "cloud.commandframework", name = "cloud-sponge", version.ref = "cloudSponge" }

configurateBom = { group = "org.spongepowered", name = "configurate-bom", version.ref = "configurate" }
Expand All @@ -78,7 +78,7 @@ minecraft = { group = "com.mojang", name = "minecraft", version.ref = "minecraft
cardinalComponentsBase = { group = "dev.onyxstudios.cardinal-components-api", name = "cardinal-components-base", version.ref = "cardinalComponents" }
cardinalComponentsEntity = { group = "dev.onyxstudios.cardinal-components-api", name = "cardinal-components-entity", version.ref = "cardinalComponents" }

forge = { group = "net.minecraftforge", name = "forge", version.ref = "forge" }
neoforge = { group = "net.neoforged", name = "neoforge", version.ref = "neoforge" }

# buildSrc
indraCommon = { group = "net.kyori", name = "indra-common", version.ref = "indra" }
Expand Down
26 changes: 22 additions & 4 deletions forge/build.gradle.kts → neoforge/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,13 +1,26 @@
import org.gradlex.javaecosystem.capabilities.rules.GuavaListenableFutureRule

plugins {
id("loom-platform-conventions")
}

loom.forge.mixinConfig("squaremap-forge.mixins.json")
repositories {
maven("https://maven.neoforged.net/releases/")
}

dependencies {
components.withModule(GuavaListenableFutureRule.MODULES[0]) {
// Ad-hoc rule to revert the effect of 'GuavaListenableFutureRule' (NeoForge has broken dependencies)
allVariants {
withCapabilities {
removeCapability(GuavaListenableFutureRule.CAPABILITY_GROUP, GuavaListenableFutureRule.CAPABILITY_NAME)
}
}
}

minecraft(libs.minecraft)
mappings(loom.officialMojangMappings())
forge(libs.forge)
neoForge(libs.neoforge)

squaremap(projects.squaremapCommon) {
exclude("cloud.commandframework", "cloud-core")
Expand All @@ -28,8 +41,8 @@ dependencies {
include(libs.adventureTextSerializerJson)
include(libs.adventureTextSerializerPlain)

modImplementation(libs.cloudForge)
include(libs.cloudForge)
modImplementation(libs.cloudNeoForge)
include(libs.cloudNeoForge)

implementation(libs.cloudMinecraftExtras) {
isTransitive = false // we depend on adventure separately
Expand Down Expand Up @@ -57,3 +70,8 @@ configurations.include {
}
}
}

publishMods.modrinth {
minecraftVersions.add(libs.versions.minecraft)
modLoaders.add("neoforge")
}
1 change: 1 addition & 0 deletions neoforge/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
loom.platform=neoforge
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.LiquidBlock;
import net.minecraft.world.level.material.Fluid;
import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions;
import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.IFluidBlock;
import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions;
import net.neoforged.neoforge.fluids.FluidType;
import net.neoforged.neoforge.fluids.IFluidBlock;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.checkerframework.framework.qual.DefaultQualifier;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.Entity;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.CapabilityManager;
import net.minecraftforge.common.capabilities.CapabilityToken;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import net.minecraftforge.common.capabilities.ICapabilitySerializable;
import net.minecraftforge.common.capabilities.RegisterCapabilitiesEvent;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.event.AttachCapabilitiesEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.common.capabilities.Capability;
import net.neoforged.neoforge.common.capabilities.CapabilityManager;
import net.neoforged.neoforge.common.capabilities.CapabilityToken;
import net.neoforged.neoforge.common.capabilities.ICapabilityProvider;
import net.neoforged.neoforge.common.capabilities.ICapabilitySerializable;
import net.neoforged.neoforge.common.capabilities.RegisterCapabilitiesEvent;
import net.neoforged.neoforge.common.util.LazyOptional;
import net.neoforged.neoforge.event.AttachCapabilitiesEvent;
import net.neoforged.neoforge.event.entity.player.PlayerEvent;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.checkerframework.framework.qual.DefaultQualifier;
Expand Down Expand Up @@ -53,13 +53,13 @@ protected void persistentHidden(final ServerPlayer player, final boolean value)

public void setupCapabilities() {
FMLJavaModLoadingContext.get().getModEventBus().addListener((RegisterCapabilitiesEvent event) -> event.register(SquaremapPlayerCapability.class));
MinecraftForge.EVENT_BUS.addGenericListener(Entity.class, (AttachCapabilitiesEvent<Entity> event) -> {
NeoForge.EVENT_BUS.addGenericListener(Entity.class, (AttachCapabilitiesEvent<Entity> event) -> {
if (!(event.getObject() instanceof ServerPlayer)) {
return;
}
event.addCapability(PLAYER_CAPABILITY_KEY, new SquaremapPlayerCapabilityProvider());
});
MinecraftForge.EVENT_BUS.addListener((PlayerEvent.PlayerRespawnEvent.Clone event) -> {
NeoForge.EVENT_BUS.addListener((PlayerEvent.PlayerRespawnEvent.Clone event) -> {
if ((!(event.getOriginal() instanceof ServerPlayer original) || !(event.getEntity() instanceof ServerPlayer entity))) {
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.google.inject.Inject;
import java.io.IOException;
import java.nio.file.Path;
import net.minecraftforge.fml.ModContainer;
import net.neoforged.fml.ModContainer;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.framework.qual.DefaultQualifier;
import xyz.jpenilla.squaremap.common.util.CheckedConsumer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Consumer;
import net.minecraft.server.level.ServerLevel;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.GameShuttingDownEvent;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.level.LevelEvent;
import net.minecraftforge.event.server.ServerStartedEvent;
import net.minecraftforge.event.server.ServerStartingEvent;
import net.minecraftforge.event.server.ServerStoppedEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.fml.ModContainer;
import net.minecraftforge.fml.common.Mod;
import net.neoforged.bus.api.EventPriority;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.common.Mod;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.event.GameShuttingDownEvent;
import net.neoforged.neoforge.event.TickEvent;
import net.neoforged.neoforge.event.entity.player.PlayerEvent;
import net.neoforged.neoforge.event.level.LevelEvent;
import net.neoforged.neoforge.event.server.ServerStartedEvent;
import net.neoforged.neoforge.event.server.ServerStartingEvent;
import net.neoforged.neoforge.event.server.ServerStoppedEvent;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.checkerframework.framework.qual.DefaultQualifier;
Expand Down Expand Up @@ -64,11 +64,11 @@ public SquaremapForge() {
}

private void registerLifecycleListeners() {
MinecraftForge.EVENT_BUS.addListener((ServerStartingEvent event) -> this.serverAccess.setServer(event.getServer()));
MinecraftForge.EVENT_BUS.addListener((ServerStoppedEvent event) -> this.serverAccess.clearServer());
NeoForge.EVENT_BUS.addListener((ServerStartingEvent event) -> this.serverAccess.setServer(event.getServer()));
NeoForge.EVENT_BUS.addListener((ServerStoppedEvent event) -> this.serverAccess.clearServer());
final AtomicBoolean exportedFluids = new AtomicBoolean(false);
MinecraftForge.EVENT_BUS.addListener((PlayerEvent.PlayerLoggedOutEvent event) -> exportedFluids.set(false));
MinecraftForge.EVENT_BUS.addListener(EventPriority.HIGH, (LevelEvent.Load event) -> {
NeoForge.EVENT_BUS.addListener((PlayerEvent.PlayerLoggedOutEvent event) -> exportedFluids.set(false));
NeoForge.EVENT_BUS.addListener(EventPriority.HIGH, (LevelEvent.Load event) -> {
if (event.getLevel().isClientSide() && !exportedFluids.getAndSet(true)) {
this.injector.getInstance(ForgeFluidColorExporter.class).export(event.getLevel().registryAccess());
}
Expand All @@ -77,15 +77,15 @@ private void registerLifecycleListeners() {
}
this.worldManager.initWorld(serverLevel);
});
MinecraftForge.EVENT_BUS.addListener((LevelEvent.Unload event) -> {
NeoForge.EVENT_BUS.addListener((LevelEvent.Unload event) -> {
if (!(event.getLevel() instanceof ServerLevel serverLevel)) {
return;
}
this.worldManager.worldUnloaded(serverLevel);
});
MinecraftForge.EVENT_BUS.addListener(new TickEndListener());
MinecraftForge.EVENT_BUS.addListener((GameShuttingDownEvent event) -> this.common.shutdown());
MinecraftForge.EVENT_BUS.addListener((ServerStartedEvent event) -> this.common.updateCheck());
NeoForge.EVENT_BUS.addListener(new TickEndListener());
NeoForge.EVENT_BUS.addListener((GameShuttingDownEvent event) -> this.common.shutdown());
NeoForge.EVENT_BUS.addListener((ServerStartedEvent event) -> this.common.updateCheck());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
import net.kyori.adventure.audience.ForwardingAudience;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.server.permission.PermissionAPI;
import net.minecraftforge.server.permission.nodes.PermissionNode;
import net.minecraftforge.server.permission.nodes.PermissionTypes;
import net.neoforged.neoforge.server.permission.PermissionAPI;
import net.neoforged.neoforge.server.permission.nodes.PermissionNode;
import net.neoforged.neoforge.server.permission.nodes.PermissionTypes;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.checkerframework.framework.qual.DefaultQualifier;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import cloud.commandframework.brigadier.argument.WrappedBrigadierParser;
import cloud.commandframework.context.CommandContext;
import cloud.commandframework.execution.CommandExecutionCoordinator;
import cloud.commandframework.forge.ForgeCommandContextKeys;
import cloud.commandframework.forge.ForgeServerCommandManager;
import cloud.commandframework.neoforge.NeoForgeCommandContextKeys;
import cloud.commandframework.neoforge.NeoForgeServerCommandManager;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
Expand Down Expand Up @@ -37,7 +37,7 @@ private ForgeCommands() {

@Override
public CommandManager<Commander> createCommandManager() {
final ForgeServerCommandManager<Commander> mgr = new ForgeServerCommandManager<>(
final NeoForgeServerCommandManager<Commander> mgr = new NeoForgeServerCommandManager<>(
CommandExecutionCoordinator.simpleCoordinator(),
ForgeCommander::from,
commander -> ((ForgeCommander) commander).stack()
Expand Down Expand Up @@ -84,14 +84,14 @@ public ServerPlayer extractPlayer(final String argName, final CommandContext<Com
}

private static <C> ArgumentParseResult<BlockPos> mapToCoordinates(final CommandContext<C> ctx, final Coordinates coordinates) {
return ArgumentParseResult.success(coordinates.getBlockPos(ctx.get(ForgeCommandContextKeys.NATIVE_COMMAND_SOURCE)));
return ArgumentParseResult.success(coordinates.getBlockPos(ctx.get(NeoForgeCommandContextKeys.NATIVE_COMMAND_SOURCE)));
}

public static <C> ArgumentParser<C, ServerPlayer> singlePlayerSelector() {
return new WrappedBrigadierParser<C, EntitySelector>(EntityArgument.player())
.map((ctx, entitySelector) ->
handleCommandSyntaxExceptionAsFailure(() ->
ArgumentParseResult.success(entitySelector.findSinglePlayer(ctx.get(ForgeCommandContextKeys.NATIVE_COMMAND_SOURCE)))));
ArgumentParseResult.success(entitySelector.findSinglePlayer(ctx.get(NeoForgeCommandContextKeys.NATIVE_COMMAND_SOURCE)))));
}

@FunctionalInterface
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
import net.minecraft.world.level.ChunkPos;
import net.minecraft.world.level.block.piston.PistonStructureResolver;
import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.BlockSnapshot;
import net.minecraftforge.event.level.BlockEvent;
import net.minecraftforge.event.level.ChunkEvent;
import net.minecraftforge.event.level.ExplosionEvent;
import net.minecraftforge.event.level.PistonEvent;
import net.minecraftforge.event.level.SaplingGrowTreeEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.neoforged.bus.api.EventPriority;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.common.util.BlockSnapshot;
import net.neoforged.neoforge.event.level.BlockEvent;
import net.neoforged.neoforge.event.level.ChunkEvent;
import net.neoforged.neoforge.event.level.ExplosionEvent;
import net.neoforged.neoforge.event.level.PistonEvent;
import net.neoforged.neoforge.event.level.SaplingGrowTreeEvent;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.framework.qual.DefaultQualifier;
import xyz.jpenilla.squaremap.common.WorldManagerImpl;
Expand All @@ -41,7 +41,7 @@ public void register() {
BlockEvent.FarmlandTrampleEvent.class,
BlockEvent.FluidPlaceBlockEvent.class,
BlockEvent.PortalSpawnEvent.class
).forEach(cls -> MinecraftForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, cls, event -> {
).forEach(cls -> NeoForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, cls, event -> {
if (!(event.getLevel() instanceof ServerLevel level)) {
return;
}
Expand All @@ -51,27 +51,27 @@ public void register() {
}
this.markBlock(level, event.getPos());
}));
MinecraftForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, (BlockEvent.CreateFluidSourceEvent event) -> {
NeoForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, (BlockEvent.CreateFluidSourceEvent event) -> {
if (!(event.getLevel() instanceof ServerLevel level)) {
return;
}
this.markBlock(level, event.getPos());
});
MinecraftForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, (ExplosionEvent.Detonate event) -> {
NeoForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, (ExplosionEvent.Detonate event) -> {
if (!(event.getLevel() instanceof ServerLevel level)) {
return;
}
for (final BlockPos affectedBlock : event.getAffectedBlocks()) {
this.markBlock(level, affectedBlock);
}
});
MinecraftForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, (SaplingGrowTreeEvent event) -> {
NeoForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, (SaplingGrowTreeEvent event) -> {
if (!(event.getLevel() instanceof ServerLevel level)) {
return;
}
this.markBlock(level, event.getPos());
});
MinecraftForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, (PistonEvent.Post event) -> {
NeoForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, (PistonEvent.Post event) -> {
if (!(event.getLevel() instanceof ServerLevel level)) {
return;
}
Expand All @@ -80,7 +80,7 @@ public void register() {
.forEach(pos -> this.markBlock(level, pos));
this.markBlock(level, event.getPos());
});
MinecraftForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, (ChunkEvent.Load event) -> {
NeoForge.EVENT_BUS.addListener(EventPriority.LOWEST, false, (ChunkEvent.Load event) -> {
if (!(event.getLevel() instanceof ServerLevel level) || !event.isNewChunk()) {
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import java.io.File;
import java.nio.file.Path;
import net.kyori.adventure.text.flattener.ComponentFlattener;
import net.minecraftforge.fml.ModContainer;
import net.minecraftforge.fml.ModList;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.ModList;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.framework.qual.DefaultQualifier;
import xyz.jpenilla.squaremap.common.AbstractPlayerManager;
Expand Down
Loading