Fixes MC-120780

This commit is contained in:
Sotr
2018-06-13 00:52:03 +08:00
parent 8a7ebe839c
commit 01ecfef964
4 changed files with 34 additions and 2 deletions

View File

@@ -12,7 +12,6 @@ import net.minecraft.server.ItemMonsterEgg;
@Mixin(value = ItemMonsterEgg.class, remap = false)
public class MonsterEggGuardian {
@Redirect(method = "a", at = @At(
value = "FIELD",
target = "net/minecraft/server/Blocks.MOB_SPAWNER:Lnet/minecraft/server/Block;",

View File

@@ -0,0 +1,31 @@
package io.akarin.server.mixin.optimization;
import java.util.List;
import org.spongepowered.asm.lib.Opcodes;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.At.Shift;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import io.akarin.api.Akari;
import net.minecraft.server.EntityPlayer;
import net.minecraft.server.PlayerChunk;
@Mixin(value = PlayerChunk.class, remap = false)
public class MixinPlayerChunk {
@Shadow @Final public List<EntityPlayer> c; // PAIL: players
@Inject(method = "b", at = @At(
value = "INVOKE",
target = "net/minecraft/server/PacketPlayOutMapChunk.<init>(Lnet/minecraft/server/Chunk;I)V",
opcode = Opcodes.INVOKESPECIAL,
shift = Shift.BEFORE
))
private void beforeCreateChunkPacket(CallbackInfo ci) {
if (c.isEmpty()) ci.cancel(); // Akarin - Fixes MC-120780
}
}

View File

@@ -21,7 +21,8 @@ import org.bukkit.craftbukkit.util.CraftMagicNumbers; // Paper
/**
* <b>Akarin Changes Note</b><br>
* <br>
* 1) Expose private members<br>
* 1) Add volatile to fields<br>
* 2) Expose private members<br>
* @author cakoyo
*/
public class Chunk {