Skip to content
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,8 @@ public void setExtraReach(EntityLivingBase entity, float reach) {
super.setExtraReach(entity, reach);
Minecraft mc = Minecraft.getMinecraft();
EntityPlayer player = mc.thePlayer;
if(entity == player) {
// Player object might have changed, need to check the UUID.
if(entity.worldObj.isRemote && entity.getUniqueID().equals(player.getUniqueID())) {
if(!(mc.playerController instanceof IExtendedPlayerController)) {
GameType type = ReflectionHelper.getPrivateValue(PlayerControllerMP.class, mc.playerController, LibObfuscation.CURRENT_GAME_TYPE);
NetHandlerPlayClient net = ReflectionHelper.getPrivateValue(PlayerControllerMP.class, mc.playerController, LibObfuscation.NET_CLIENT_HANDLER);
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
import vazkii.botania.common.core.handler.CommonTickHandler;
import vazkii.botania.common.core.handler.ConfigHandler;
import vazkii.botania.common.core.handler.InternalMethodHandler;
import vazkii.botania.common.core.handler.ItemBaubleHandler;
import vazkii.botania.common.core.handler.ManaNetworkHandler;
import vazkii.botania.common.core.handler.PixieHandler;
import vazkii.botania.common.core.handler.SheddingHandler;
Expand Down Expand Up @@ -146,7 +145,6 @@ public void init(FMLInitializationEvent event) {
MinecraftForge.EVENT_BUS.register(new SkyblockWorldEvents());

FMLCommonHandler.instance().bus().register(new CommonTickHandler());
FMLCommonHandler.instance().bus().register(new ItemBaubleHandler());

FMLInterModComms.sendMessage("ProjectE", "interdictionblacklist", EntityManaBurst.class.getCanonicalName());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@
*/
package vazkii.botania.common.item.equipment.bauble;

import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.UUID;

import baubles.api.BaublesApi;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.StatCollector;
Expand Down Expand Up @@ -45,9 +45,6 @@ public abstract class ItemBauble extends ItemMod implements IBauble, ICosmeticAt
private static final String TAG_COSMETIC_ITEM = "cosmeticItem";
private static final String TAG_PHANTOM_INK = "phantomInk";

private static final HashMap<UUID, UUID> itemToPlayerRemote = new HashMap<>();
private static final HashMap<UUID, UUID> itemToPlayer = new HashMap<>();
private static final HashSet<UUID> toRemoveItems = new HashSet<>();

public ItemBauble(String name) {
super();
Expand Down Expand Up @@ -127,18 +124,12 @@ public boolean canUnequip(ItemStack stack, EntityLivingBase player) {

@Override
public void onWornTick(ItemStack stack, EntityLivingBase player) {
UUID itemUUID = getBaubleUUID(stack);
if(toRemoveItems.contains(itemUUID)) {
// this is done like this because on server worn tick gets called after unequip
// so it would get reapplied
unapplyItem(itemUUID, player.worldObj.isRemote);
toRemoveItems.remove(itemUUID);
return;
}
if(!wasPlayerApplied(itemUUID, player.getUniqueID(), player.worldObj.isRemote)) {
onEquippedOrLoadedIntoWorld(stack, player);
applyToPlayer(itemUUID, player.getUniqueID(), player.worldObj.isRemote);
}
// NO-OP
}

@Override
public void onPlayerLoad(ItemStack stack, EntityLivingBase player) {
onEquippedOrLoadedIntoWorld(stack, player);
}

@Override
Expand All @@ -151,17 +142,16 @@ public void onEquipped(ItemStack stack, EntityLivingBase player) {
((EntityPlayer) player).addStat(ModAchievements.baubleWear, 1);

onEquippedOrLoadedIntoWorld(stack, player);
applyToPlayer(getBaubleUUID(stack), player.getUniqueID(), player.worldObj.isRemote);
}
}

public void onEquippedOrLoadedIntoWorld(ItemStack stack, EntityLivingBase player) {
@Override
public void onUnequipped(ItemStack stack, EntityLivingBase player) {
// NO-OP
}

@Override
public void onUnequipped(ItemStack stack, EntityLivingBase player) {
toRemoveItems.add(getBaubleUUID(stack));
public void onEquippedOrLoadedIntoWorld(ItemStack stack, EntityLivingBase player) {
// NO-OP
}

@Override
Expand Down Expand Up @@ -208,39 +198,6 @@ public static UUID getBaubleUUID(ItemStack stack) {
return new UUID(most, least);
}

public static boolean wasPlayerApplied(UUID itemUUID, UUID playerUUID, boolean remote) {
return playerUUID.equals(remote ? itemToPlayerRemote.get(itemUUID) : itemToPlayer.get(itemUUID));
}

public static void applyToPlayer(UUID itemUUID, UUID playerUUID, boolean remote) {
if(remote) {
itemToPlayerRemote.put(itemUUID, playerUUID);
} else {
itemToPlayer.put(itemUUID, playerUUID);
}
}

public static void unapplyItem(UUID itemUUID, boolean remote) {
if(remote) {
itemToPlayerRemote.remove(itemUUID);
} else {
itemToPlayer.remove(itemUUID);
}
}

public static void removePlayer(UUID playerUUID) {
for(UUID item : itemToPlayerRemote.keySet().toArray(new UUID[0])) {
if(playerUUID.equals(itemToPlayerRemote.get(item))) {
itemToPlayerRemote.remove(item);
}
}
for(UUID item : itemToPlayer.keySet().toArray(new UUID[0])) {
if(playerUUID.equals(itemToPlayer.get(item))) {
itemToPlayer.remove(item);
}
}
}

@Override
public boolean hasPhantomInk(ItemStack stack) {
return ItemNBTHelper.getBoolean(stack, TAG_PHANTOM_INK, false);
Expand Down
Loading