Fixed EntityJoinWorldEvent not being fired when player is added to ServerWorld. #5827

Fixed wrong example path for the access transformer in the MDK build.gradle. #5891
Added getters for mouse x/y velocity and if the middle-mouse button is being held down. #5776
Modify issue template for better clarity. #5874
Fixed grindstone not using ItemStack-sensitive getMaxDamage. #5831
Added ParticleManager.registerFactory to Forge's AT. #5896
Fixed NPE in SidedInvWrapper when side was null. #5787
Moved EndermanEntity.setAttackTarget super call to allow LivingSetAttackTargetEvent the ability to override default behavior. #5778
Added field to make "Looking at" debug info maximum distance configurable #5714
This commit is contained in:
LexManos 2019-07-08 17:49:52 -07:00
parent f720140481
commit 61bea2bfda
10 changed files with 98 additions and 21 deletions

View file

@ -1,8 +1,8 @@
---
name: Bug report
name: Issue report
about: Visit the forum first for issues with crashes.
title: ''
labels: Bug
labels: Triage
assignees: ''
---
@ -16,11 +16,11 @@ assignees: ''
**Forge Version:** {Forge version. *Version number, not latest/rb*}
**Full Log:** {Link to GitHub Gist with full latest.log}
**Logs:** {Link(s) to GitHub Gist with full latest.log and/or crash report}
**Steps to Reproduce:**
1. Do this
2. Then do that
3. ...
**Description of bug:**
**Description of issue:**

View file

@ -7,8 +7,8 @@ Forge is a free, open-source modding API all of your favourite mods use!
| Version | Support |
| ------------- | ------------- |
| 1.14.2 | Active (latest) |
| 1.12.2 | Active (stable) |
| 1.14.x | Active (latest) |
| 1.12.x | Active (stable) |
* [Download]
* [Forum]

View file

@ -28,7 +28,7 @@ minecraft {
mappings channel: '@MAPPING_CHANNEL@', version: '@MAPPING_VERSION@'
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
// accessTransformer = file('build/resources/main/META-INF/accesstransformer.cfg')
// accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
// Default run configurations.
// These can be tweaked, removed, or duplicated as needed.

View file

@ -49,3 +49,29 @@
}, "mouseDragged event handler", iguieventlistener.getClass().getCanonicalName());
}
}
@@ -233,6 +241,10 @@
return this.field_198039_d;
}
+ public boolean isMiddleDown() {
+ return this.field_198038_c;
+ }
+
public double func_198024_e() {
return this.field_198040_e;
}
@@ -241,6 +253,14 @@
return this.field_198041_f;
}
+ public double getXVelocity() {
+ return this.field_198048_m;
+ }
+
+ public double getYVelocity() {
+ return this.field_198049_n;
+ }
+
public void func_198021_g() {
this.field_198043_h = true;
}

View file

@ -1,5 +1,21 @@
--- a/net/minecraft/entity/monster/EndermanEntity.java
+++ b/net/minecraft/entity/monster/EndermanEntity.java
@@ -92,7 +92,6 @@
}
public void func_70624_b(@Nullable LivingEntity p_70624_1_) {
- super.func_70624_b(p_70624_1_);
IAttributeInstance iattributeinstance = this.func_110148_a(SharedMonsterAttributes.field_111263_d);
if (p_70624_1_ == null) {
this.field_184721_by = 0;
@@ -106,6 +105,7 @@
}
}
+ super.func_70624_b(p_70624_1_); //Forge: Moved down to allow event handlers to write data manager values.
}
protected void func_70088_a() {
@@ -226,7 +226,9 @@
if (!this.field_70170_p.func_180495_p(blockpos$mutableblockpos).func_185904_a().func_76230_c()) {
return false;

View file

@ -0,0 +1,17 @@
--- a/net/minecraft/inventory/container/GrindstoneContainer.java
+++ b/net/minecraft/inventory/container/GrindstoneContainer.java
@@ -141,10 +141,10 @@
}
Item item = itemstack.func_77973_b();
- int k = item.func_77612_l() - itemstack.func_77952_i();
- int l = item.func_77612_l() - itemstack1.func_77952_i();
- int i1 = k + l + item.func_77612_l() * 5 / 100;
- i = Math.max(item.func_77612_l() - i1, 0);
+ int k = itemstack.func_77958_k() - itemstack.func_77952_i();
+ int l = itemstack.func_77958_k() - itemstack1.func_77952_i();
+ int i1 = k + l + itemstack.func_77958_k() * 5 / 100;
+ i = Math.max(itemstack.func_77958_k() - i1, 0);
itemstack2 = this.func_217011_b(itemstack, itemstack1);
if (!itemstack2.func_77984_f()) {
if (!ItemStack.func_77989_b(itemstack, itemstack1)) {

View file

@ -189,7 +189,15 @@
if (entityclassification != EntityClassification.MISC && this.func_72863_F().func_223435_b(entity)) {
object2intmap.mergeInt(entityclassification, 1, Integer::sum);
}
@@ -838,6 +857,7 @@
@@ -814,6 +833,7 @@
}
private void func_217448_f(ServerPlayerEntity p_217448_1_) {
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityJoinWorldEvent(p_217448_1_, this))) return;
Entity entity = this.field_175741_N.get(p_217448_1_.func_110124_au());
if (entity != null) {
field_147491_a.warn("Force-added player with duplicate UUID {}", (Object)p_217448_1_.func_110124_au().toString());
@@ -838,6 +858,7 @@
} else if (this.func_217478_l(p_72838_1_)) {
return false;
} else {
@ -197,7 +205,7 @@
IChunk ichunk = this.func_217353_a(MathHelper.func_76128_c(p_72838_1_.field_70165_t / 16.0D), MathHelper.func_76128_c(p_72838_1_.field_70161_v / 16.0D), ChunkStatus.field_222617_m, p_72838_1_.field_98038_p);
if (!(ichunk instanceof Chunk)) {
return false;
@@ -853,6 +873,7 @@
@@ -853,6 +874,7 @@
if (this.func_217478_l(p_217440_1_)) {
return false;
} else {
@ -205,7 +213,7 @@
this.func_217465_m(p_217440_1_);
return true;
}
@@ -889,11 +910,15 @@
@@ -889,11 +911,15 @@
}
public void func_217484_g(Entity p_217484_1_) {
@ -222,7 +230,7 @@
this.field_175741_N.remove(p_217484_1_.func_110124_au());
this.func_72863_F().func_217226_b(p_217484_1_);
@@ -907,6 +932,7 @@
@@ -907,6 +933,7 @@
this.field_217495_I.remove(((MobEntity)p_217484_1_).func_70661_as());
}
@ -230,7 +238,7 @@
}
private void func_217465_m(Entity p_217465_1_) {
@@ -927,9 +953,13 @@
@@ -927,9 +954,13 @@
}
}
@ -244,7 +252,7 @@
if (this.field_217492_a) {
throw new IllegalStateException("Removing entity while ticking!");
} else {
@@ -948,7 +978,10 @@
@@ -948,7 +979,10 @@
}
public void func_217434_e(ServerPlayerEntity p_217434_1_) {
@ -256,7 +264,7 @@
this.func_217467_h(p_217434_1_);
this.func_72854_c();
}
@@ -973,10 +1006,20 @@
@@ -973,10 +1007,20 @@
}
public void func_184148_a(@Nullable PlayerEntity p_184148_1_, double p_184148_2_, double p_184148_4_, double p_184148_6_, SoundEvent p_184148_8_, SoundCategory p_184148_9_, float p_184148_10_, float p_184148_11_) {
@ -277,7 +285,7 @@
this.field_73061_a.func_184103_al().func_148543_a(p_217384_1_, p_217384_2_.field_70165_t, p_217384_2_.field_70163_u, p_217384_2_.field_70161_v, p_217384_5_ > 1.0F ? (double)(16.0F * p_217384_5_) : 16.0D, this.field_73011_w.func_186058_p(), new SSpawnMovingSoundEffectPacket(p_217384_3_, p_217384_4_, p_217384_2_, p_217384_5_, p_217384_6_));
}
@@ -1012,6 +1055,7 @@
@@ -1012,6 +1056,7 @@
public Explosion func_217401_a(@Nullable Entity p_217401_1_, DamageSource p_217401_2_, double p_217401_3_, double p_217401_5_, double p_217401_7_, float p_217401_9_, boolean p_217401_10_, Explosion.Mode p_217401_11_) {
Explosion explosion = new Explosion(this, p_217401_1_, p_217401_3_, p_217401_5_, p_217401_7_, p_217401_9_, p_217401_10_, p_217401_11_);
@ -285,7 +293,7 @@
if (p_217401_2_ != null) {
explosion.func_199592_a(p_217401_2_);
}
@@ -1261,4 +1305,15 @@
@@ -1261,4 +1306,15 @@
public void func_217489_a(IReputationType p_217489_1_, Entity p_217489_2_, IReputationTracking p_217489_3_) {
p_217489_3_.func_213739_a(p_217489_1_, p_217489_2_);
}

View file

@ -88,6 +88,10 @@ public class ForgeIngameGui extends IngameGui
public static int left_height = 39;
public static int right_height = 39;
/*
* If the Euclidian distance to the moused-over block in meters is less than this value, the "Looking at" text will appear on the debug overlay.
*/
public static double rayTraceDistance = 20.0D;
private FontRenderer fontrenderer = null;
private RenderGameOverlayEvent eventParent;
@ -842,8 +846,8 @@ public class ForgeIngameGui extends IngameGui
public void update()
{
Entity entity = this.mc.getRenderViewEntity();
this.rayTraceBlock = entity.func_213324_a(20.0D, 0.0F, false);
this.rayTraceFluid = entity.func_213324_a(20.0D, 0.0F, true);
this.rayTraceBlock = entity.func_213324_a(rayTraceDistance, 0.0F, false);
this.rayTraceFluid = entity.func_213324_a(rayTraceDistance, 0.0F, true);
}
@Override protected void renderDebugInfoLeft(){}
@Override protected void renderDebugInfoRight(){}

View file

@ -27,10 +27,12 @@ import net.minecraftforge.items.IItemHandlerModifiable;
import net.minecraftforge.items.ItemHandlerHelper;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class SidedInvWrapper implements IItemHandlerModifiable
{
protected final ISidedInventory inv;
@Nullable
protected final Direction side;
@SuppressWarnings("unchecked")
@ -43,13 +45,13 @@ public class SidedInvWrapper implements IItemHandlerModifiable
return ret;
}
public SidedInvWrapper(ISidedInventory inv, Direction side)
public SidedInvWrapper(ISidedInventory inv, @Nullable Direction side)
{
this.inv = inv;
this.side = side;
}
public static int getSlot(ISidedInventory inv, int slot, Direction side)
public static int getSlot(ISidedInventory inv, int slot, @Nullable Direction side)
{
int[] slots = inv.getSlotsForFace(side);
if (slot < slots.length)
@ -74,7 +76,7 @@ public class SidedInvWrapper implements IItemHandlerModifiable
public int hashCode()
{
int result = inv.hashCode();
result = 31 * result + side.hashCode();
result = 31 * result + (side == null ? 0 : side.hashCode());
return result;
}

View file

@ -417,3 +417,7 @@ public net.minecraft.world.gen.IChunkGeneratorFactory
#ParticleType ctors
public net.minecraft.particles.ParticleType <init>(ZLnet/minecraft/particles/IParticleData$IDeserializer;)V
public net.minecraft.particles.BasicParticleType <init>(Z)V
# ParticleManager
public net.minecraft.client.particle.ParticleManager func_199283_a(Lnet/minecraft/particles/ParticleType;Lnet/minecraft/client/particle/IParticleFactory;)V # registerFactory
public net.minecraft.client.particle.ParticleManager func_215234_a(Lnet/minecraft/particles/ParticleType;Lnet/minecraft/client/particle/ParticleManager$IParticleMetaFactory;)V # registerFactory