Skip to content

Commit 80e9ed6

Browse files
committed
Merge remote-tracking branch 'origin/stats' into dev
# Conflicts: # dependencies.gradle
2 parents 2fcb2f8 + b64386b commit 80e9ed6

30 files changed

+621
-35
lines changed

dependencies.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ dependencies {
2828
transformedModCompileOnly("com.github.GTNewHorizons:Railcraft:9.15.14:dev") { exclude group: "thaumcraft", module: "Thaumcraft" }
2929
transformedModCompileOnly("com.github.GTNewHorizons:TinkersConstruct:1.12.9-GTNH:dev")
3030
transformedModCompileOnly(rfg.deobf("curse.maven:bibliocraft-228027:2423369"))
31-
transformedModCompileOnly("curse.maven:biomes-o-plenty-220318:2499612")
31+
transformedModCompileOnly(rfg.deobf("curse.maven:biomes-o-plenty-220318:2499612"))
3232
transformedModCompileOnly("curse.maven:cofh-core-69162:2388751")
3333
transformedModCompileOnly("curse.maven:minefactory-reloaded-66672:2277486")
3434
transformedModCompileOnly(rfg.deobf('curse.maven:damage-indicators-mod-59489:2692129'))

src/main/java/com/mitchej123/hodgepodge/Hodgepodge.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,20 @@
44

55
import com.mitchej123.hodgepodge.client.HodgepodgeClient;
66
import com.mitchej123.hodgepodge.commands.DebugCommand;
7+
import com.mitchej123.hodgepodge.config.TweaksConfig;
78
import com.mitchej123.hodgepodge.net.NetworkHandler;
89
import com.mitchej123.hodgepodge.util.AnchorAlarm;
10+
import com.mitchej123.hodgepodge.util.StatHandler;
911

1012
import cpw.mods.fml.common.FMLCommonHandler;
1113
import cpw.mods.fml.common.ICrashCallable;
1214
import cpw.mods.fml.common.Mod;
1315
import cpw.mods.fml.common.Mod.EventHandler;
1416
import cpw.mods.fml.common.event.FMLInitializationEvent;
17+
import cpw.mods.fml.common.event.FMLModIdMappingEvent;
1518
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
1619
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
20+
import cpw.mods.fml.common.event.FMLServerStartedEvent;
1721
import cpw.mods.fml.common.event.FMLServerStartingEvent;
1822
import cpw.mods.fml.common.network.NetworkCheckHandler;
1923
import cpw.mods.fml.common.versioning.ArtifactVersion;
@@ -90,6 +94,20 @@ public void onServerStarting(FMLServerStartingEvent aEvent) {
9094
EVENT_HANDLER.setAidTriggerDisabled(false);
9195
}
9296

97+
@EventHandler
98+
public void onServerStarted(FMLServerStartedEvent event) {
99+
if (TweaksConfig.addModEntityStats) {
100+
StatHandler.addEntityStats();
101+
}
102+
}
103+
104+
@EventHandler
105+
public void onModIdMapping(FMLModIdMappingEvent event) {
106+
if (TweaksConfig.addModItemStats) {
107+
StatHandler.remap(event.remappedIds);
108+
}
109+
}
110+
93111
/**
94112
* Block any clients older than 2.5.36 from joining servers to ensure the fastBlockPlacingDisableServerSide setting
95113
* is respected

src/main/java/com/mitchej123/hodgepodge/commands/DebugCommand.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,8 @@ private void printHelp(ICommandSender sender) {
4040
"\"randomNbt [bytes]\" - adds a random byte array of the given size to the held item"));
4141
}
4242

43-
@SuppressWarnings({ "unchecked", "rawtypes" })
4443
@Override
45-
public List addTabCompletionOptions(ICommandSender sender, String[] ss) {
44+
public List<String> addTabCompletionOptions(ICommandSender sender, String[] ss) {
4645
List<String> l = new ArrayList<>();
4746
String test = ss.length == 0 ? "" : ss[0].trim();
4847
if (ss.length == 0 || ss.length == 1

src/main/java/com/mitchej123/hodgepodge/config/TweaksConfig.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,25 @@ public class TweaksConfig {
158158
@Config.RequiresMcRestart
159159
public static boolean unbindKeybindsByDefault;
160160

161+
@Config.Comment("Adds non-vanilla blocks/items to the statistics")
162+
@Config.DefaultBoolean(true)
163+
@Config.RequiresMcRestart
164+
public static boolean addModItemStats;
165+
166+
@Config.Comment("Adds non-vanilla entities to the statistics")
167+
@Config.DefaultBoolean(true)
168+
@Config.RequiresMcRestart
169+
public static boolean addModEntityStats;
170+
171+
@Config.Comment("No stats will be registered for these enties (e.g. because another mod already adds them)")
172+
@Config.DefaultStringList({ "Mob", "Monster" })
173+
@Config.RequiresMcRestart
174+
public static String[] entityStatsExclusions;
175+
176+
@Config.Comment("Sort Mob stats lexicographically (Requires addModEntityStats)")
177+
@Config.DefaultBoolean(true)
178+
public static boolean sortEntityStats;
179+
161180
// Automagy
162181

163182
@Config.Comment("Implement container for thirsty tank")

src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,8 @@ public enum Mixins {
200200
FIX_BOGUS_INTEGRATED_SERVER_NPE(new Builder("Fix bogus FMLProxyPacket NPEs on integrated server crashes")
201201
.setPhase(Phase.EARLY).setSide(Side.BOTH)
202202
.addMixinClasses(
203-
"forge.MixinFMLProxyPacket",
204-
"forge.MixinNetworkDispatcher",
203+
"fml.MixinFMLProxyPacket",
204+
"fml.MixinNetworkDispatcher",
205205
"minecraft.NetworkManagerAccessor")
206206
.setApplyIf(() -> FixesConfig.fixBogusIntegratedServerNPEs).addTargetedMod(TargetedMod.VANILLA)),
207207

@@ -277,7 +277,7 @@ public enum Mixins {
277277
.setPhase(Phase.EARLY).addTargetedMod(TargetedMod.VANILLA).setApplyIf(() -> TweaksConfig.enhanceNightVision)
278278
.addMixinClasses("minecraft.MixinEntityRenderer_EnhanceNightVision")),
279279
OPTIMIZE_ASMDATATABLE_INDEX(new Builder("Optimize ASM DataTable Index").setPhase(Phase.EARLY).setSide(Side.BOTH)
280-
.addMixinClasses("forge.MixinASMDataTable").setApplyIf(() -> SpeedupsConfig.optimizeASMDataTable)
280+
.addMixinClasses("fml.MixinASMDataTable").setApplyIf(() -> SpeedupsConfig.optimizeASMDataTable)
281281
.addTargetedMod(TargetedMod.VANILLA)),
282282
SQUASH_BED_ERROR_MESSAGE(new Builder("Stop \"You can only sleep at night\" message filling the chat")
283283
.addMixinClasses("minecraft.MixinNetHandlerPlayClient").addTargetedMod(TargetedMod.VANILLA)
@@ -297,7 +297,7 @@ public enum Mixins {
297297
.addMixinClasses("forge.MixinGuiIngameForge_CrosshairInvertColors").setSide(Side.CLIENT)
298298
.setApplyIf(() -> TweaksConfig.dontInvertCrosshairColor).addTargetedMod(TargetedMod.VANILLA)),
299299
FIX_OPENGUIHANDLER_WINDOWID(new Builder("Fix OpenGuiHandler").setPhase(Phase.EARLY).setSide(Side.BOTH)
300-
.addMixinClasses("forge.MixinOpenGuiHandler").setApplyIf(() -> FixesConfig.fixForgeOpenGuiHandlerWindowId)
300+
.addMixinClasses("fml.MixinOpenGuiHandler").setApplyIf(() -> FixesConfig.fixForgeOpenGuiHandlerWindowId)
301301
.addTargetedMod(TargetedMod.VANILLA)),
302302
FIX_KEYBIND_CONFLICTS(new Builder("Trigger all conflicting keybinds").setPhase(Phase.EARLY).setSide(Side.CLIENT)
303303
.addMixinClasses("minecraft.MixinKeyBinding", "minecraft.MixinMinecraft_UpdateKeys")
@@ -398,6 +398,19 @@ public enum Mixins {
398398
.addMixinClasses("minecraft.MixinMinecraft_FixDuplicateSounds")
399399
.setApplyIf(() -> FixesConfig.fixDuplicateSounds)),
400400

401+
ADD_MOD_ITEM_STATS(new Builder("Add stats for modded items").addMixinClasses("fml.MixinGameRegistry")
402+
.addTargetedMod(TargetedMod.VANILLA).setApplyIf(() -> TweaksConfig.addModItemStats).setPhase(Phase.EARLY)
403+
.setSide(Side.BOTH)),
404+
405+
ADD_MOD_ENTITY_STATS(new Builder("Add stats for modded entities").addMixinClasses("minecraft.MixinStatList")
406+
.addTargetedMod(TargetedMod.VANILLA).setApplyIf(() -> TweaksConfig.addModEntityStats).setPhase(Phase.EARLY)
407+
.setSide(Side.BOTH)),
408+
409+
ADD_MOD_ENTITY_STATS_CLIENT(new Builder("Add stats for modded entities (client side)")
410+
.addMixinClasses("minecraft.MixinStatsMobsList", "minecraft.MixinStatsBlock", "minecraft.MixinStatsItem")
411+
.addTargetedMod(TargetedMod.VANILLA).setApplyIf(() -> TweaksConfig.addModEntityStats).setPhase(Phase.EARLY)
412+
.setSide(Side.CLIENT)),
413+
401414
FIX_SLASH_COMMAND(
402415
new Builder("Fix forge command handler not checking for a / and also not running commands with any case")
403416
.setPhase(Phase.EARLY).setSide(Side.CLIENT).addTargetedMod(TargetedMod.VANILLA)
@@ -453,10 +466,10 @@ public enum Mixins {
453466
"ic2.MixinIC2ArmorSolarHelmet",
454467
"ic2.MixinIC2ArmorStaticBoots")
455468
.setApplyIf(() -> FixesConfig.fixIc2ArmorLag).addTargetedMod(TargetedMod.IC2)),
456-
IC2_RESOURCE_PACK_TRANSLATION_FIX(new Builder("IC2 Resource Pack Translation Fix").setPhase(Phase.EARLY)
457-
.setSide(Side.CLIENT)
458-
.addMixinClasses("forge.MixinLanguageRegistry", "forge.MixinFMLClientHandler", "ic2.MixinLocalization")
459-
.setApplyIf(() -> FixesConfig.fixIc2ResourcePackTranslation).addTargetedMod(TargetedMod.IC2)),
469+
IC2_RESOURCE_PACK_TRANSLATION_FIX(
470+
new Builder("IC2 Resource Pack Translation Fix").setPhase(Phase.EARLY).setSide(Side.CLIENT)
471+
.addMixinClasses("fml.MixinLanguageRegistry", "fml.MixinFMLClientHandler", "ic2.MixinLocalization")
472+
.setApplyIf(() -> FixesConfig.fixIc2ResourcePackTranslation).addTargetedMod(TargetedMod.IC2)),
460473

461474
// Disable update checkers
462475
BIBLIOCRAFT_UPDATE_CHECK(new Builder("Yeet Bibliocraft Update Check").setPhase(Phase.LATE).setSide(Side.CLIENT)

src/main/java/com/mitchej123/hodgepodge/mixins/early/forge/MixinASMDataTable.java renamed to src/main/java/com/mitchej123/hodgepodge/mixins/early/fml/MixinASMDataTable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mitchej123.hodgepodge.mixins.early.forge;
1+
package com.mitchej123.hodgepodge.mixins.early.fml;
22

33
import java.io.File;
44
import java.util.HashMap;

src/main/java/com/mitchej123/hodgepodge/mixins/early/forge/MixinFMLClientHandler.java renamed to src/main/java/com/mitchej123/hodgepodge/mixins/early/fml/MixinFMLClientHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mitchej123.hodgepodge.mixins.early.forge;
1+
package com.mitchej123.hodgepodge.mixins.early.fml;
22

33
import org.spongepowered.asm.mixin.Mixin;
44
import org.spongepowered.asm.mixin.injection.At;

src/main/java/com/mitchej123/hodgepodge/mixins/early/forge/MixinFMLProxyPacket.java renamed to src/main/java/com/mitchej123/hodgepodge/mixins/early/fml/MixinFMLProxyPacket.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mitchej123.hodgepodge.mixins.early.forge;
1+
package com.mitchej123.hodgepodge.mixins.early.fml;
22

33
import net.minecraft.network.Packet;
44

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.mitchej123.hodgepodge.mixins.early.fml;
2+
3+
import net.minecraft.block.Block;
4+
import net.minecraft.item.Item;
5+
import net.minecraft.item.ItemBlock;
6+
import net.minecraft.stats.StatCrafting;
7+
import net.minecraft.stats.StatList;
8+
import net.minecraft.util.ChatComponentTranslation;
9+
10+
import org.spongepowered.asm.mixin.Mixin;
11+
import org.spongepowered.asm.mixin.Unique;
12+
import org.spongepowered.asm.mixin.injection.At;
13+
14+
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
15+
import com.llamalad7.mixinextras.sugar.Local;
16+
import com.mitchej123.hodgepodge.util.ChatComponentItemTranslation;
17+
18+
import cpw.mods.fml.common.registry.GameRegistry;
19+
20+
@Mixin(GameRegistry.class)
21+
public class MixinGameRegistry {
22+
23+
@ModifyExpressionValue(
24+
at = @At(
25+
target = "Lcpw/mods/fml/common/registry/GameData;registerItem(Lnet/minecraft/item/Item;Ljava/lang/String;)I",
26+
value = "INVOKE"),
27+
method = "registerBlock(Lnet/minecraft/block/Block;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Object;)Lnet/minecraft/block/Block;",
28+
remap = false)
29+
private static int hodgepodge$registerBlockStats(int itemId, Block block, Class<? extends ItemBlock> itemclass,
30+
String name, Object[] itemCtorArgs, @Local ItemBlock i) {
31+
if (block.getEnableStats()) {
32+
StatCrafting statMine = hodgepodge$createAndRegisterStat("stat.mineBlock", i);
33+
StatList.mineBlockStatArray[itemId] = statMine;
34+
StatList.objectMineStats.add(statMine);
35+
}
36+
StatList.objectUseStats[itemId] = hodgepodge$createAndRegisterStat("stat.useItem", i);
37+
StatList.objectCraftStats[itemId] = hodgepodge$createAndRegisterStat("stat.craftItem", i);
38+
return itemId;
39+
}
40+
41+
@ModifyExpressionValue(
42+
at = @At(
43+
target = "Lcpw/mods/fml/common/registry/GameData;registerItem(Lnet/minecraft/item/Item;Ljava/lang/String;)I",
44+
value = "INVOKE"),
45+
method = "registerItem(Lnet/minecraft/item/Item;Ljava/lang/String;Ljava/lang/String;)Lnet/minecraft/item/Item;",
46+
remap = false)
47+
private static int hodgepodge$registerItemStats(int itemId, Item item, String name, String modId) {
48+
if (item.isDamageable()) {
49+
StatList.objectBreakStats[itemId] = hodgepodge$createAndRegisterStat("stat.breakItem", item);
50+
}
51+
StatCrafting statCraft = hodgepodge$createAndRegisterStat("stat.useItem", item);
52+
StatList.objectUseStats[itemId] = statCraft;
53+
if (!(item instanceof ItemBlock)) {
54+
StatList.itemStats.add(statCraft);
55+
}
56+
StatList.objectCraftStats[itemId] = hodgepodge$createAndRegisterStat("stat.craftItem", item);
57+
return itemId;
58+
}
59+
60+
@Unique
61+
private static StatCrafting hodgepodge$createAndRegisterStat(String key, Item item) {
62+
StatCrafting stat = new StatCrafting(
63+
key + ".autogen." + item.delegate.name(),
64+
new ChatComponentTranslation(key, new ChatComponentItemTranslation(item)),
65+
item);
66+
stat.registerStat();
67+
return stat;
68+
}
69+
}

src/main/java/com/mitchej123/hodgepodge/mixins/early/forge/MixinLanguageRegistry.java renamed to src/main/java/com/mitchej123/hodgepodge/mixins/early/fml/MixinLanguageRegistry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mitchej123.hodgepodge.mixins.early.forge;
1+
package com.mitchej123.hodgepodge.mixins.early.fml;
22

33
import java.io.File;
44
import java.io.IOException;

src/main/java/com/mitchej123/hodgepodge/mixins/early/forge/MixinNetworkDispatcher.java renamed to src/main/java/com/mitchej123/hodgepodge/mixins/early/fml/MixinNetworkDispatcher.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mitchej123.hodgepodge.mixins.early.forge;
1+
package com.mitchej123.hodgepodge.mixins.early.fml;
22

33
import java.lang.ref.WeakReference;
44

src/main/java/com/mitchej123/hodgepodge/mixins/early/forge/MixinOpenGuiHandler.java renamed to src/main/java/com/mitchej123/hodgepodge/mixins/early/fml/MixinOpenGuiHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mitchej123.hodgepodge.mixins.early.forge;
1+
package com.mitchej123.hodgepodge.mixins.early.fml;
22

33
import static org.objectweb.asm.Opcodes.PUTFIELD;
44

@@ -21,7 +21,7 @@
2121
import cpw.mods.fml.common.network.internal.OpenGuiHandler;
2222
import io.netty.channel.SimpleChannelInboundHandler;
2323

24-
@Mixin(value = { OpenGuiHandler.class })
24+
@Mixin(value = OpenGuiHandler.class)
2525
public abstract class MixinOpenGuiHandler extends SimpleChannelInboundHandler<FMLMessage.OpenGui> {
2626

2727
/*

src/main/java/com/mitchej123/hodgepodge/mixins/early/forge/MixinGuiIngameForge_CrosshairInvertColors.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import org.spongepowered.asm.mixin.Mixin;
66
import org.spongepowered.asm.mixin.injection.At;
77

8-
import com.llamalad7.mixinextras.injector.WrapWithCondition;
8+
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
99

1010
@Mixin(GuiIngameForge.class)
1111
public class MixinGuiIngameForge_CrosshairInvertColors {

src/main/java/com/mitchej123/hodgepodge/mixins/early/ic2/MixinLocalization.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
import org.spongepowered.asm.mixin.injection.At;
99
import org.spongepowered.asm.mixin.injection.Redirect;
1010

11+
import com.mitchej123.hodgepodge.mixins.early.fml.MixinLanguageRegistry;
12+
import com.mitchej123.hodgepodge.mixins.hooks.IC2ResourcePack;
13+
1114
import cpw.mods.fml.common.registry.LanguageRegistry;
1215
import ic2.core.init.Localization;
1316

@@ -17,8 +20,8 @@ public class MixinLocalization {
1720
/**
1821
* Translations are delegated to vanilla lang system
1922
*
20-
* @see com.mitchej123.hodgepodge.mixins.early.forge.MixinLanguageRegistry
21-
* @see com.mitchej123.hodgepodge.mixins.hooks.IC2ResourcePack
23+
* @see MixinLanguageRegistry
24+
* @see IC2ResourcePack
2225
*/
2326
@Redirect(
2427
method = "postInit",
@@ -32,8 +35,8 @@ public class MixinLocalization {
3235
/**
3336
* @author miozune
3437
* @reason Translations are delegated to vanilla lang system
35-
* @see com.mitchej123.hodgepodge.mixins.early.forge.MixinLanguageRegistry
36-
* @see com.mitchej123.hodgepodge.mixins.hooks.IC2ResourcePack
38+
* @see MixinLanguageRegistry
39+
* @see IC2ResourcePack
3740
*/
3841
@Overwrite(remap = false)
3942
protected static Map<String, String> getStringTranslateMap() {

src/main/java/com/mitchej123/hodgepodge/mixins/early/minecraft/MixinEntityLivingBase_HidePotionParticles.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import org.spongepowered.asm.mixin.Mixin;
88
import org.spongepowered.asm.mixin.injection.At;
99

10-
import com.llamalad7.mixinextras.injector.WrapWithCondition;
10+
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
1111
import com.mitchej123.hodgepodge.config.TweaksConfig;
1212

1313
/**

src/main/java/com/mitchej123/hodgepodge/mixins/early/minecraft/MixinEntityPlayerMP.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ public abstract class MixinEntityPlayerMP extends EntityLivingBase {
3636
ServersideAttributeMap oldAttributeMap = (ServersideAttributeMap) oldPlayer.getAttributeMap();
3737

3838
// Grab the watched attributes
39-
@SuppressWarnings("unchecked")
4039
Collection<IAttributeInstance> watchedAttribs = oldAttributeMap.getWatchedAttributes();
4140

4241
if (!watchedAttribs.isEmpty()) {
@@ -64,7 +63,6 @@ public abstract class MixinEntityPlayerMP extends EntityLivingBase {
6463
}
6564

6665
// Helper method based on 1.12
67-
@SuppressWarnings("unchecked")
6866
@Unique
6967
private Collection<AttributeModifier> getModifiers(ModifiableAttributeInstance attr) {
7068
Set<AttributeModifier> toReturn = Sets.newHashSet();

src/main/java/com/mitchej123/hodgepodge/mixins/early/minecraft/MixinGuiContainerCreative.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1616

1717
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
18-
import com.llamalad7.mixinextras.injector.WrapWithCondition;
18+
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
1919

2020
@Mixin(GuiContainerCreative.class)
2121
public abstract class MixinGuiContainerCreative extends GuiContainer {

src/main/java/com/mitchej123/hodgepodge/mixins/early/minecraft/MixinGuiNewChat_TransparentChat.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import org.spongepowered.asm.mixin.Shadow;
77
import org.spongepowered.asm.mixin.injection.At;
88

9-
import com.llamalad7.mixinextras.injector.WrapWithCondition;
9+
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
1010

1111
@Mixin(GuiNewChat.class)
1212
public abstract class MixinGuiNewChat_TransparentChat {

src/main/java/com/mitchej123/hodgepodge/mixins/early/minecraft/MixinServerConfigurationManager.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ public class MixinServerConfigurationManager {
2929
private void hodgepodge$sendEntityProperties(EntityPlayerMP player, int dimension, Teleporter teleporter,
3030
CallbackInfo ci) {
3131
ServersideAttributeMap attributeMap = (ServersideAttributeMap) player.getAttributeMap();
32-
@SuppressWarnings("unchecked")
3332
Collection<IAttributeInstance> watchedAttribs = attributeMap.getWatchedAttributes();
3433
if (!watchedAttribs.isEmpty()) {
3534
player.playerNetServerHandler
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.mitchej123.hodgepodge.mixins.early.minecraft;
2+
3+
import net.minecraft.entity.EntityList.EntityEggInfo;
4+
import net.minecraft.stats.StatList;
5+
6+
import org.spongepowered.asm.mixin.Mixin;
7+
import org.spongepowered.asm.mixin.injection.At;
8+
9+
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
10+
import com.mitchej123.hodgepodge.util.StatHandler;
11+
import com.mitchej123.hodgepodge.util.StatHandler.EntityInfo;
12+
13+
@Mixin(StatList.class)
14+
public class MixinStatList {
15+
16+
@ModifyExpressionValue(
17+
at = @At(
18+
target = "Lnet/minecraft/entity/EntityList;getStringFromID(I)Ljava/lang/String;",
19+
value = "INVOKE"),
20+
method = { "func_151182_a", "func_151176_b" }) // these methods create and register the stats for
21+
// killing/being killed by the specified entity
22+
private static String hodgepodge$getEntityName(String original, EntityEggInfo info) {
23+
if (info instanceof EntityInfo) {
24+
return StatHandler.currentEntityName;
25+
}
26+
return original;
27+
}
28+
29+
}

0 commit comments

Comments
 (0)