Implement bridge methods (#125)
This commit is contained in:
parent
7cd2907ac1
commit
f052efd30f
@ -17,6 +17,7 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import net.minecraft.world.DimensionType;
|
import net.minecraft.world.DimensionType;
|
||||||
import net.minecraft.world.IWorld;
|
import net.minecraft.world.IWorld;
|
||||||
|
import net.minecraft.world.IWorldWriter;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.border.WorldBorder;
|
import net.minecraft.world.border.WorldBorder;
|
||||||
import net.minecraft.world.chunk.Chunk;
|
import net.minecraft.world.chunk.Chunk;
|
||||||
@ -31,6 +32,7 @@ import org.bukkit.craftbukkit.v.block.CraftBlock;
|
|||||||
import org.bukkit.craftbukkit.v.block.data.CraftBlockData;
|
import org.bukkit.craftbukkit.v.block.data.CraftBlockData;
|
||||||
import org.bukkit.craftbukkit.v.event.CraftEventFactory;
|
import org.bukkit.craftbukkit.v.event.CraftEventFactory;
|
||||||
import org.bukkit.event.block.BlockPhysicsEvent;
|
import org.bukkit.event.block.BlockPhysicsEvent;
|
||||||
|
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||||
import org.bukkit.generator.ChunkGenerator;
|
import org.bukkit.generator.ChunkGenerator;
|
||||||
import org.spigotmc.SpigotWorldConfig;
|
import org.spigotmc.SpigotWorldConfig;
|
||||||
import org.spongepowered.asm.mixin.Final;
|
import org.spongepowered.asm.mixin.Final;
|
||||||
@ -49,7 +51,7 @@ import java.util.Optional;
|
|||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
@Mixin(World.class)
|
@Mixin(World.class)
|
||||||
public abstract class WorldMixin implements WorldBridge {
|
public abstract class WorldMixin implements WorldBridge, IWorldWriter {
|
||||||
|
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
@Shadow @Nullable public TileEntity getTileEntity(BlockPos pos) { return null; }
|
@Shadow @Nullable public TileEntity getTileEntity(BlockPos pos) { return null; }
|
||||||
@ -269,4 +271,34 @@ public abstract class WorldMixin implements WorldBridge {
|
|||||||
public ChunkGenerator bridge$getGenerator() {
|
public ChunkGenerator bridge$getGenerator() {
|
||||||
return generator;
|
return generator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ServerWorld bridge$getMinecraftWorld() {
|
||||||
|
return getWorld().getHandle();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean bridge$addEntity(Entity entity, CreatureSpawnEvent.SpawnReason reason) {
|
||||||
|
if (getWorld().getHandle() != (Object) this) {
|
||||||
|
return ((WorldBridge) getWorld().getHandle()).bridge$addEntity(entity, reason);
|
||||||
|
} else {
|
||||||
|
this.bridge$pushAddEntityReason(reason);
|
||||||
|
return this.addEntity(entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void bridge$pushAddEntityReason(CreatureSpawnEvent.SpawnReason reason) {
|
||||||
|
if (getWorld().getHandle() != (Object) this) {
|
||||||
|
((WorldBridge) getWorld().getHandle()).bridge$pushAddEntityReason(reason);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CreatureSpawnEvent.SpawnReason bridge$getAddEntityReason() {
|
||||||
|
if (getWorld().getHandle() != (Object) this) {
|
||||||
|
return ((WorldBridge) getWorld().getHandle()).bridge$getAddEntityReason();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user