Skip to content
This repository has been archived by the owner on Feb 27, 2024. It is now read-only.

Commit

Permalink
Update for name changes in common.
Browse files Browse the repository at this point in the history
Signed-off-by: Gabriel Harris-Rouquette <[email protected]>
  • Loading branch information
gabizou committed Jun 12, 2019
1 parent bb6a6a4 commit 7612243
Show file tree
Hide file tree
Showing 34 changed files with 156 additions and 203 deletions.
2 changes: 1 addition & 1 deletion SpongeCommon
54 changes: 45 additions & 9 deletions src/main/java/org/spongepowered/mod/SpongeMod.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,13 @@
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.launchwrapper.Launch;
import net.minecraft.network.NetworkManager;
import net.minecraft.server.dedicated.DedicatedServer;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.ForgeChunkManager;
import net.minecraftforge.common.ForgeModContainer;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.event.world.ChunkWatchEvent;
import net.minecraftforge.fml.client.FMLFileResourcePack;
import net.minecraftforge.fml.client.FMLFolderResourcePack;
import net.minecraftforge.fml.common.CertificateHelper;
Expand Down Expand Up @@ -88,16 +90,19 @@
import org.spongepowered.common.SpongeGame;
import org.spongepowered.common.SpongeImpl;
import org.spongepowered.common.SpongeInternalListeners;
import org.spongepowered.common.bridge.entity.EntityBridge;
import org.spongepowered.common.command.MinecraftCommandWrapper;
import org.spongepowered.common.entity.SpongeProfession;
import org.spongepowered.common.entity.ai.SpongeEntityAICommonSuperclass;
import org.spongepowered.common.event.registry.SpongeGameRegistryRegisterEvent;
import org.spongepowered.common.event.tracking.PhaseTracker;
import org.spongepowered.common.inject.SpongeGuice;
import org.spongepowered.common.inject.SpongeModule;
import org.spongepowered.common.interfaces.IMixinChunk;
import org.spongepowered.common.interfaces.IMixinServerCommandManager;
import org.spongepowered.common.interfaces.block.IMixinBlock;
import org.spongepowered.common.bridge.block.BlockBridge;
import org.spongepowered.common.interfaces.world.biome.IMixinBiome;
import org.spongepowered.common.interfaces.world.gen.IMixinChunkProviderServer;
import org.spongepowered.common.item.recipe.crafting.DelegateSpongeCraftingRecipe;
import org.spongepowered.common.item.recipe.crafting.SpongeCraftingRecipeRegistry;
import org.spongepowered.common.registry.type.BlockTypeRegistryModule;
Expand All @@ -108,7 +113,6 @@
import org.spongepowered.common.registry.type.entity.ProfessionRegistryModule;
import org.spongepowered.common.registry.type.item.EnchantmentRegistryModule;
import org.spongepowered.common.registry.type.item.PotionTypeRegistryModule;
import org.spongepowered.common.registry.type.world.gen.BiomeTypeRegistryModule;
import org.spongepowered.common.registry.type.world.gen.PopulatorTypeRegistryModule;
import org.spongepowered.common.scheduler.SpongeScheduler;
import org.spongepowered.common.service.permission.SpongeContextCalculator;
Expand All @@ -117,7 +121,6 @@
import org.spongepowered.common.util.SpongeHooks;
import org.spongepowered.common.world.WorldManager;
import org.spongepowered.common.world.storage.SpongePlayerDataHandler;
import org.spongepowered.mod.event.SpongeEventHooks;
import org.spongepowered.mod.inject.SpongeForgeModule;
import org.spongepowered.mod.interfaces.IMixinVillagerProfession;
import org.spongepowered.mod.network.SpongeModMessageHandler;
Expand All @@ -130,14 +133,14 @@
import org.spongepowered.mod.util.StaticMixinForgeHelper;

import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.cert.Certificate;
import java.util.List;

import javax.annotation.Nullable;

@SuppressWarnings("UnstableApiUsage")
public class SpongeMod extends MetaModContainer {

public static SpongeMod instance;
Expand Down Expand Up @@ -218,7 +221,7 @@ public SpongeMod() throws Exception {
PhaseTracker.SERVER.init(); // Needs to occur after the game registry registers all the builders.
SpongeGameData.addRegistryCallback(ForgeRegistries.BLOCKS, (owner, manager, id, obj, oldObj) -> {
final ResourceLocation key = ForgeRegistries.BLOCKS.getKey(obj);
if (key == null || ((IMixinBlock) obj).isDummy()) {
if (key == null || ((BlockBridge) obj).isDummy()) {
return;
}
BlockTypeRegistryModule.getInstance().registerFromGameData(key.toString(), (BlockType) obj);
Expand Down Expand Up @@ -394,8 +397,6 @@ public void onPreInit(FMLPreInitializationEvent event) {

Preconditions.checkArgument(Class.forName("org.spongepowered.api.entity.ai.task.AbstractAITask").getSuperclass().equals(SpongeEntityAICommonSuperclass.class));

MinecraftForge.EVENT_BUS.register(new SpongeEventHooks());

SpongeInternalListeners.getInstance().registerServiceCallback(PermissionService.class,
input -> input.registerContextCalculator(new SpongeContextCalculator()));

Expand Down Expand Up @@ -457,6 +458,41 @@ public void onEntityRegister(RegistryEvent.Register<EntityEntry> event) {
}
}


@SubscribeEvent
public void onChunkWatchEvent(ChunkWatchEvent event) {
EntityBridge spongeEntity = (EntityBridge) event.getPlayer();

if (spongeEntity.isTeleporting()) {
spongeEntity.getTeleportVehicle().getPassengers().add(event.getPlayer());
spongeEntity.setTeleportVehicle(null);
spongeEntity.setIsTeleporting(false);
}
}

@SubscribeEvent
public void onEntityDeathEvent(LivingDeathEvent event) {
SpongeHooks.logEntityDeath(event.getEntity());
}

@SubscribeEvent
public void onForceChunk(ForgeChunkManager.ForceChunkEvent event) {
final net.minecraft.world.chunk.Chunk chunk = ((IMixinChunkProviderServer) event.getTicket().world.getChunkProvider())
.getLoadedChunkWithoutMarkingActive(event.getLocation().x, event.getLocation().z);
if (chunk != null) {
((IMixinChunk) chunk).setPersistedChunk(true);
}
}

@SubscribeEvent
public void onUnforceChunk(ForgeChunkManager.UnforceChunkEvent event) {
final net.minecraft.world.chunk.Chunk chunk = ((IMixinChunkProviderServer) event.getTicket().world.getChunkProvider())
.getLoadedChunkWithoutMarkingActive(event.getLocation().x, event.getLocation().z);
if (chunk != null) {
((IMixinChunk) chunk).setPersistedChunk(false);
}
}

@Subscribe
public void onInitialization(FMLInitializationEvent event) {
try {
Expand Down Expand Up @@ -528,7 +564,7 @@ public void onServerStarted(FMLServerStartedEvent event) {
}

@Subscribe
public void onServerStopped(FMLServerStoppedEvent event) throws IOException {
public void onServerStopped(FMLServerStoppedEvent event) {
try {
CommandManager service = this.game.getCommandManager();
service.getCommands().stream().filter(mapping -> mapping.getCallable() instanceof MinecraftCommandWrapper)
Expand Down
72 changes: 0 additions & 72 deletions src/main/java/org/spongepowered/mod/event/SpongeEventHooks.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,13 @@
import org.spongepowered.api.world.Location;
import org.spongepowered.api.world.World;
import org.spongepowered.common.SpongeImpl;
import org.spongepowered.common.bridge.world.WorldBridge;
import org.spongepowered.common.entity.EntityUtil;
import org.spongepowered.common.event.tracking.PhaseContext;
import org.spongepowered.common.event.tracking.PhaseTracker;
import org.spongepowered.common.event.tracking.UnwindingPhaseContext;
import org.spongepowered.common.event.tracking.phase.packet.PacketContext;
import org.spongepowered.common.interfaces.entity.IMixinEntityLivingBase;
import org.spongepowered.common.interfaces.world.IMixinWorld;
import org.spongepowered.common.interfaces.world.gen.IMixinChunkProviderServer;
import org.spongepowered.common.item.inventory.util.ItemStackUtil;
import org.spongepowered.common.registry.provider.DirectionFacingProvider;
Expand Down Expand Up @@ -932,14 +932,14 @@ private static boolean createAndPostWorldSaveEvent(SpongeToForgeEventData eventD
WorldEvent.Save forgeEvent = (WorldEvent.Save) eventData.getForgeEvent();
// Since Forge only uses a single save handler, we need to make sure to pass the overworld's handler.
// This makes sure that mods dont attempt to save/read their data from the wrong location.
((IMixinWorld) spongeEvent.getTargetWorld()).setRedirectedWorldInfo(WorldManager.getWorldByDimensionId(0).get().getWorldInfo());
((WorldBridge) spongeEvent.getTargetWorld()).setRedirectedWorldInfo(WorldManager.getWorldByDimensionId(0).get().getWorldInfo());
if (forgeEvent == null) {
forgeEvent = new WorldEvent.Save((net.minecraft.world.World) spongeEvent.getTargetWorld());
eventData.setForgeEvent(forgeEvent);
}

forgeEventBus.post(forgeEvent, true);
((IMixinWorld) spongeEvent.getTargetWorld()).setRedirectedWorldInfo(null);
((WorldBridge) spongeEvent.getTargetWorld()).setRedirectedWorldInfo(null);
return true;
}

Expand All @@ -949,7 +949,7 @@ private static boolean createAndPostWorldLoadEvent(SpongeToForgeEventData eventD
// Since Forge only uses a single save handler, we need to make sure to pass the overworld's handler.
// This makes sure that mods dont attempt to save/read their data from the wrong location.
final net.minecraft.world.World minecraftWorld = (net.minecraft.world.World) spongeEvent.getTargetWorld();
((IMixinWorld) spongeEvent.getTargetWorld()).setRedirectedWorldInfo(WorldManager.getWorldByDimensionId(0).get().getWorldInfo());
((WorldBridge) spongeEvent.getTargetWorld()).setRedirectedWorldInfo(WorldManager.getWorldByDimensionId(0).get().getWorldInfo());
((IMixinChunkProviderServer) minecraftWorld.getChunkProvider()).setForceChunkRequests(true);
if (forgeEvent == null) {
forgeEvent = new WorldEvent.Load(minecraftWorld);
Expand All @@ -958,7 +958,7 @@ private static boolean createAndPostWorldLoadEvent(SpongeToForgeEventData eventD

forgeEventBus.post(forgeEvent, true);
((IMixinChunkProviderServer) minecraftWorld.getChunkProvider()).setForceChunkRequests(false);
((IMixinWorld) minecraftWorld).setRedirectedWorldInfo(null);
((WorldBridge) minecraftWorld).setRedirectedWorldInfo(null);
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package org.spongepowered.mod.mixin.core.item.recipe.crafting;
package org.spongepowered.mod.mixin.core.api.item.recipe.crafting;

import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.ResourceLocation;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public abstract class MixinBlock implements IMixinBlock {
private boolean requiresLocationCheckForOpacity;

@Inject(method = "<init>*", at = @At("RETURN"))
public void onConstructionForge(CallbackInfo ci) {
private void forge$setUpMethodsFromReflection(CallbackInfo ci) {
// Determine which blocks can avoid executing un-needed event logic
// This will allow us to avoid running event logic for blocks that do nothing such as grass collisions
// -- blood
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.common.event.SpongeCommonEventFactory;
import org.spongepowered.common.interfaces.world.IMixinWorldServer;
import org.spongepowered.common.interfaces.world.ServerWorldBridge;
import org.spongepowered.common.mixin.core.block.MixinBlock;

import java.util.Random;
Expand All @@ -50,7 +50,7 @@ private void onCatchFirePreCheck(World world, BlockPos pos, int chance, Random r
// SpongeForge uses the firespread context key, todo verify if we want to use FireSpread or what.
try (CauseStackManager.StackFrame frame = Sponge.getCauseStackManager().pushCauseFrame()) {
frame.addContext(EventContextKeys.FIRE_SPREAD, (org.spongepowered.api.world.World) world);
if (SpongeCommonEventFactory.callChangeBlockEventPre((IMixinWorldServer) world, pos).isCancelled()) {
if (SpongeCommonEventFactory.callChangeBlockEventPre((ServerWorldBridge) world, pos).isCancelled()) {
callbackInfo.cancel();
}
}
Expand All @@ -63,7 +63,7 @@ private void onCatchFirePreCheckOther(World world, BlockPos pos, int chance, Ran
// SpongeForge uses the firespread context key, todo verify if we want to use FireSpread or what.
try (CauseStackManager.StackFrame frame = Sponge.getCauseStackManager().pushCauseFrame()) {
frame.addContext(EventContextKeys.FIRE_SPREAD, (org.spongepowered.api.world.World) world);
if (SpongeCommonEventFactory.callChangeBlockEventPre((IMixinWorldServer) world, pos).isCancelled()) {
if (SpongeCommonEventFactory.callChangeBlockEventPre((ServerWorldBridge) world, pos).isCancelled()) {
callbackInfo.cancel();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import org.spongepowered.api.event.cause.EventContextKeys;
import org.spongepowered.api.util.annotation.NonnullByDefault;
import org.spongepowered.api.world.LocatableBlock;
import org.spongepowered.api.world.Location;
import org.spongepowered.api.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
Expand All @@ -45,7 +44,7 @@
import org.spongepowered.common.event.tracking.PhaseTracker;
import org.spongepowered.common.event.tracking.phase.TrackingPhases;
import org.spongepowered.common.event.tracking.phase.block.BlockPhase;
import org.spongepowered.common.interfaces.world.IMixinWorldServer;
import org.spongepowered.common.interfaces.world.ServerWorldBridge;
import org.spongepowered.common.mixin.core.block.MixinBlock;
import org.spongepowered.common.world.SpongeLocatableBlockBuilder;

Expand Down Expand Up @@ -75,7 +74,7 @@ private void onSpongeBreakBlock(Block block, IBlockState state, net.minecraft.wo
context.buildAndSwitch();
}
frame.addContext(EventContextKeys.LEAVES_DECAY, (World) worldIn);
if (SpongeCommonEventFactory.callChangeBlockEventPre((IMixinWorldServer) worldIn, pos).isCancelled()) {
if (SpongeCommonEventFactory.callChangeBlockEventPre((ServerWorldBridge) worldIn, pos).isCancelled()) {
return;
}
block.beginLeavesDecay(state, worldIn, pos);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import org.spongepowered.api.block.BlockState;
import org.spongepowered.api.util.annotation.NonnullByDefault;
import org.spongepowered.api.world.LocatableBlock;
import org.spongepowered.api.world.Location;
import org.spongepowered.api.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
Expand All @@ -42,7 +41,7 @@
import org.spongepowered.common.event.tracking.PhaseTracker;
import org.spongepowered.common.event.tracking.phase.TrackingPhases;
import org.spongepowered.common.event.tracking.phase.block.BlockPhase;
import org.spongepowered.common.interfaces.world.IMixinWorldServer;
import org.spongepowered.common.interfaces.world.ServerWorldBridge;
import org.spongepowered.common.mixin.core.block.MixinBlock;
import org.spongepowered.common.world.SpongeLocatableBlockBuilder;

Expand All @@ -55,7 +54,7 @@ public abstract class MixinBlockLog extends MixinBlock {
@Redirect(method = "breakBlock", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;beginLeavesDecay(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;)V", remap = false))
private void onSpongeBreakBlock(Block block, IBlockState state, net.minecraft.world.World worldIn, BlockPos pos) {
if (!worldIn.isRemote) {
if (SpongeCommonEventFactory.callChangeBlockEventPre((IMixinWorldServer) worldIn, pos).isCancelled()) {
if (SpongeCommonEventFactory.callChangeBlockEventPre((ServerWorldBridge) worldIn, pos).isCancelled()) {
return;
}
final PhaseTracker phaseTracker = PhaseTracker.getInstance();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.common.entity.PlayerTracker;
import org.spongepowered.common.interfaces.IMixinChunk;
import org.spongepowered.common.bridge.entity.IMixinEntity;
import org.spongepowered.common.bridge.entity.EntityBridge;

import java.util.Optional;

Expand All @@ -44,7 +44,7 @@ public class MixinBlockRailBase {
// Used to transfer tracking information from minecarts to block positions
@Inject(method = "onMinecartPass", at = @At(value = "HEAD"))
public void onMinecartRailPass(World world, net.minecraft.entity.item.EntityMinecart cart, BlockPos pos, CallbackInfo ci) {
IMixinEntity spongeEntity = (IMixinEntity) cart;
EntityBridge spongeEntity = (EntityBridge) cart;
Optional<User> notifier = spongeEntity.getNotifierUser();
Optional<User> owner = spongeEntity.getCreatorUser();
if (owner.isPresent() || notifier.isPresent()) {
Expand Down
Loading

0 comments on commit 7612243

Please sign in to comment.