Merged in fakeplayer-fix-1.16 (pull request #3)
Fix FakePlayer-related crashes Approved-by: Requios
This commit is contained in:
@@ -8,6 +8,7 @@ import net.minecraft.entity.player.ServerPlayerEntity;
|
|||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.util.FakePlayer;
|
||||||
import net.minecraftforge.event.AttachCapabilitiesEvent;
|
import net.minecraftforge.event.AttachCapabilitiesEvent;
|
||||||
import net.minecraftforge.event.entity.player.PlayerEvent;
|
import net.minecraftforge.event.entity.player.PlayerEvent;
|
||||||
import net.minecraftforge.event.world.BlockEvent;
|
import net.minecraftforge.event.world.BlockEvent;
|
||||||
@@ -35,6 +36,7 @@ public class EventHandler {
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void attachCapabilities(AttachCapabilitiesEvent<Entity> event) {
|
public static void attachCapabilities(AttachCapabilitiesEvent<Entity> event) {
|
||||||
|
if (event.getObject() instanceof FakePlayer) return;
|
||||||
if (event.getObject() instanceof PlayerEntity) {
|
if (event.getObject() instanceof PlayerEntity) {
|
||||||
event.addCapability(new ResourceLocation(EffortlessBuilding.MODID, "build_modifier"), new ModifierCapabilityManager.Provider());
|
event.addCapability(new ResourceLocation(EffortlessBuilding.MODID, "build_modifier"), new ModifierCapabilityManager.Provider());
|
||||||
event.addCapability(new ResourceLocation(EffortlessBuilding.MODID, "build_mode"), new ModeCapabilityManager.Provider());
|
event.addCapability(new ResourceLocation(EffortlessBuilding.MODID, "build_mode"), new ModeCapabilityManager.Provider());
|
||||||
@@ -63,6 +65,8 @@ public class EventHandler {
|
|||||||
|
|
||||||
if (!(event.getEntity() instanceof PlayerEntity)) return;
|
if (!(event.getEntity() instanceof PlayerEntity)) return;
|
||||||
|
|
||||||
|
if (event.getEntity() instanceof FakePlayer) return;
|
||||||
|
|
||||||
//Cancel event if necessary
|
//Cancel event if necessary
|
||||||
ServerPlayerEntity player = ((ServerPlayerEntity) event.getEntity());
|
ServerPlayerEntity player = ((ServerPlayerEntity) event.getEntity());
|
||||||
BuildModes.BuildModeEnum buildMode = ModeSettingsManager.getModeSettings(player).getBuildMode();
|
BuildModes.BuildModeEnum buildMode = ModeSettingsManager.getModeSettings(player).getBuildMode();
|
||||||
@@ -94,6 +98,8 @@ public class EventHandler {
|
|||||||
public static void onBlockBroken(BlockEvent.BreakEvent event) {
|
public static void onBlockBroken(BlockEvent.BreakEvent event) {
|
||||||
if (event.getWorld().isRemote()) return;
|
if (event.getWorld().isRemote()) return;
|
||||||
|
|
||||||
|
if (event.getPlayer() instanceof FakePlayer) return;
|
||||||
|
|
||||||
//Cancel event if necessary
|
//Cancel event if necessary
|
||||||
//If cant break far then dont cancel event ever
|
//If cant break far then dont cancel event ever
|
||||||
BuildModes.BuildModeEnum buildMode = ModeSettingsManager.getModeSettings(event.getPlayer()).getBuildMode();
|
BuildModes.BuildModeEnum buildMode = ModeSettingsManager.getModeSettings(event.getPlayer()).getBuildMode();
|
||||||
@@ -115,6 +121,8 @@ public class EventHandler {
|
|||||||
//Disable if config says so
|
//Disable if config says so
|
||||||
if (!BuildConfig.survivalBalancers.increasedMiningTime.get()) return;
|
if (!BuildConfig.survivalBalancers.increasedMiningTime.get()) return;
|
||||||
|
|
||||||
|
if (event.getPlayer() instanceof FakePlayer) return;
|
||||||
|
|
||||||
PlayerEntity player = event.getPlayer();
|
PlayerEntity player = event.getPlayer();
|
||||||
World world = player.world;
|
World world = player.world;
|
||||||
BlockPos pos = event.getPos();
|
BlockPos pos = event.getPos();
|
||||||
@@ -149,6 +157,7 @@ public class EventHandler {
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) {
|
public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) {
|
||||||
|
if (event.getPlayer() instanceof FakePlayer) return;
|
||||||
PlayerEntity player = event.getPlayer();
|
PlayerEntity player = event.getPlayer();
|
||||||
ModifierSettingsManager.handleNewPlayer(player);
|
ModifierSettingsManager.handleNewPlayer(player);
|
||||||
ModeSettingsManager.handleNewPlayer(player);
|
ModeSettingsManager.handleNewPlayer(player);
|
||||||
@@ -156,6 +165,7 @@ public class EventHandler {
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onPlayerLoggedOut(PlayerEvent.PlayerLoggedOutEvent event) {
|
public static void onPlayerLoggedOut(PlayerEvent.PlayerLoggedOutEvent event) {
|
||||||
|
if (event.getPlayer() instanceof FakePlayer) return;
|
||||||
PlayerEntity player = event.getPlayer();
|
PlayerEntity player = event.getPlayer();
|
||||||
if (player.getEntityWorld().isRemote) return;
|
if (player.getEntityWorld().isRemote) return;
|
||||||
|
|
||||||
@@ -165,6 +175,7 @@ public class EventHandler {
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onPlayerRespawn(PlayerEvent.PlayerRespawnEvent event) {
|
public static void onPlayerRespawn(PlayerEvent.PlayerRespawnEvent event) {
|
||||||
|
if (event.getPlayer() instanceof FakePlayer) return;
|
||||||
PlayerEntity player = event.getPlayer();
|
PlayerEntity player = event.getPlayer();
|
||||||
ModifierSettingsManager.handleNewPlayer(player);
|
ModifierSettingsManager.handleNewPlayer(player);
|
||||||
ModeSettingsManager.handleNewPlayer(player);
|
ModeSettingsManager.handleNewPlayer(player);
|
||||||
@@ -172,6 +183,7 @@ public class EventHandler {
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onPlayerChangedDimension(PlayerEvent.PlayerChangedDimensionEvent event) {
|
public static void onPlayerChangedDimension(PlayerEvent.PlayerChangedDimensionEvent event) {
|
||||||
|
if (event.getPlayer() instanceof FakePlayer) return;
|
||||||
PlayerEntity player = event.getPlayer();
|
PlayerEntity player = event.getPlayer();
|
||||||
if (player.getEntityWorld().isRemote) return;
|
if (player.getEntityWorld().isRemote) return;
|
||||||
|
|
||||||
@@ -196,6 +208,7 @@ public class EventHandler {
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onPlayerClone(PlayerEvent.Clone event) {
|
public static void onPlayerClone(PlayerEvent.Clone event) {
|
||||||
|
if (event.getPlayer() instanceof FakePlayer) return;
|
||||||
//Attach capabilities on death, otherwise crash
|
//Attach capabilities on death, otherwise crash
|
||||||
PlayerEntity oldPlayer = event.getOriginal();
|
PlayerEntity oldPlayer = event.getOriginal();
|
||||||
oldPlayer.revive();
|
oldPlayer.revive();
|
||||||
|
|||||||
Reference in New Issue
Block a user