Skip to content

Commit 94c5797

Browse files
committed
Fixed an critical issue
1 parent 330ee8b commit 94c5797

File tree

3 files changed

+36
-18
lines changed

3 files changed

+36
-18
lines changed

scarecrow/src/Entities/EntityLittleScareCrow.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public void Event_EntitySpawn(Entity entity)
3737
if (
3838
entity.IsCreature
3939
&& !entity.Code.Path.StartsWith("strawdummy")
40+
&& !entity.Code.Path.StartsWith("scarecrow")
41+
&& !entity.Code.Path.StartsWith("little-scarecrow")
4042
&& !entity.Code.Path.StartsWith("villager-")
4143
&& !entity.Code.Path.StartsWith("armorstand")
4244

@@ -119,12 +121,6 @@ public override void OnInteract(EntityAgent byEntity, ItemSlot slot, Vec3d hitPo
119121
byEntity.World.SpawnItemEntity(itemStack, ServerPos.XYZ, null);
120122
}
121123

122-
if (Api.Side == EnumAppSide.Server)
123-
{
124-
sapi.Event.OnTrySpawnEntity -= SpawnInterceptor;
125-
sapi.Event.OnEntitySpawn -= Event_EntitySpawn;
126-
}
127-
128124
byEntity.World.Logger.Audit("{0} Took 1x {1} at {2}.",
129125
byEntity.GetName(),
130126
itemStack.Collectible.Code,
@@ -165,4 +161,14 @@ public override WorldInteraction[] GetInteractionHelp(IClientWorldAccessor world
165161
});
166162
return interactions.Append(base.GetInteractionHelp(world, es, player));
167163
}
164+
165+
public override void Die(EnumDespawnReason reason = EnumDespawnReason.Death, DamageSource damageSource = null)
166+
{
167+
base.Die(reason, damageSource);
168+
if (sapi != null)
169+
{
170+
sapi.Event.OnTrySpawnEntity -= SpawnInterceptor;
171+
sapi.Event.OnEntitySpawn -= Event_EntitySpawn;
172+
}
173+
}
168174
}

scarecrow/src/Entities/EntitySC_StrawDummy.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ private void Event_EntitySpawn(Entity entity)
3838
if (
3939
entity.IsCreature
4040
&& !entity.Code.Path.StartsWith("strawdummy")
41+
&& !entity.Code.Path.StartsWith("scarecrow")
42+
&& !entity.Code.Path.StartsWith("little-scarecrow")
4143
&& !entity.Code.Path.StartsWith("villager-")
4244
&& !entity.Code.Path.StartsWith("armorstand")
4345

@@ -120,12 +122,6 @@ public override void OnInteract(EntityAgent byEntity, ItemSlot slot, Vec3d hitPo
120122
byEntity.World.SpawnItemEntity(itemStack, ServerPos.XYZ, null);
121123
}
122124

123-
if (Api.Side == EnumAppSide.Server)
124-
{
125-
sapi.Event.OnTrySpawnEntity -= SpawnInterceptor;
126-
sapi.Event.OnEntitySpawn -= Event_EntitySpawn;
127-
}
128-
129125
byEntity.World.Logger.Audit("{0} Took 1x {1} at {2}.",
130126
byEntity.GetName(),
131127
itemStack.Collectible.Code,
@@ -166,4 +162,14 @@ public override WorldInteraction[] GetInteractionHelp(IClientWorldAccessor world
166162
});
167163
return interactions.Append(base.GetInteractionHelp(world, es, player));
168164
}
165+
166+
public override void Die(EnumDespawnReason reason = EnumDespawnReason.Death, DamageSource damageSource = null)
167+
{
168+
base.Die(reason, damageSource);
169+
if (sapi != null)
170+
{
171+
sapi.Event.OnTrySpawnEntity -= SpawnInterceptor;
172+
sapi.Event.OnEntitySpawn -= Event_EntitySpawn;
173+
}
174+
}
169175
}

scarecrow/src/Entities/EntityScareCrow.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ private void Event_EntitySpawn(Entity entity)
3737
if (
3838
entity.IsCreature
3939
&& !entity.Code.Path.StartsWith("strawdummy")
40+
&& !entity.Code.Path.StartsWith("scarecrow")
41+
&& !entity.Code.Path.StartsWith("little-scarecrow")
4042
&& !entity.Code.Path.StartsWith("villager-")
4143
&& !entity.Code.Path.StartsWith("armorstand")
4244

@@ -119,12 +121,6 @@ public override void OnInteract(EntityAgent byEntity, ItemSlot slot, Vec3d hitPo
119121
byEntity.World.SpawnItemEntity(itemStack, ServerPos.XYZ, null);
120122
}
121123

122-
if (Api.Side == EnumAppSide.Server)
123-
{
124-
sapi.Event.OnTrySpawnEntity -= SpawnInterceptor;
125-
sapi.Event.OnEntitySpawn -= Event_EntitySpawn;
126-
}
127-
128124
byEntity.World.Logger.Audit("{0} Took 1x {1} at {2}.",
129125
byEntity.GetName(),
130126
itemStack.Collectible.Code,
@@ -165,4 +161,14 @@ public override WorldInteraction[] GetInteractionHelp(IClientWorldAccessor world
165161
});
166162
return interactions.Append(base.GetInteractionHelp(world, es, player));
167163
}
164+
165+
public override void Die(EnumDespawnReason reason = EnumDespawnReason.Death, DamageSource damageSource = null)
166+
{
167+
base.Die(reason, damageSource);
168+
if (sapi != null)
169+
{
170+
sapi.Event.OnTrySpawnEntity -= SpawnInterceptor;
171+
sapi.Event.OnEntitySpawn -= Event_EntitySpawn;
172+
}
173+
}
168174
}

0 commit comments

Comments
 (0)