Update forge to 40.2.1

This commit is contained in:
IzzelAliz 2023-02-26 11:28:57 +08:00
parent e0b6dda5ed
commit 16a5f7413f
No known key found for this signature in database
GPG Key ID: EE50E123A11D8338
3 changed files with 18 additions and 4 deletions

View File

@ -21,6 +21,7 @@ import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.ForgeHooks;
import net.minecraftforge.event.entity.living.LivingChangeTargetEvent;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v.entity.CraftLivingEntity; import org.bukkit.craftbukkit.v.entity.CraftLivingEntity;
import org.bukkit.craftbukkit.v.event.CraftEventFactory; import org.bukkit.craftbukkit.v.event.CraftEventFactory;
@ -135,9 +136,15 @@ public abstract class MobMixin extends LivingEntityMixin implements MobEntityBri
livingEntity = null; livingEntity = null;
} }
} }
this.target = livingEntity; var changeTargetEvent = ForgeHooks.onLivingChangeTarget((Mob) (Object) this, livingEntity, LivingChangeTargetEvent.LivingTargetType.MOB_TARGET);
ForgeHooks.onLivingSetAttackTarget((Mob) (Object) this, this.target); if (changeTargetEvent.isCanceled()) {
arclight$targetSuccess = true; this.target = changeTargetEvent.getNewTarget();
// noinspection removal
ForgeHooks.onLivingSetAttackTarget((Mob) (Object) this, this.target);
arclight$targetSuccess = true;
} else {
arclight$targetSuccess = false;
}
} }
public boolean setTarget(LivingEntity livingEntity, EntityTargetEvent.TargetReason reason, boolean fireEvent) { public boolean setTarget(LivingEntity livingEntity, EntityTargetEvent.TargetReason reason, boolean fireEvent) {

View File

@ -25,7 +25,14 @@ public class StartAttackingMixin<E extends Mob> {
return; return;
} }
livingEntity = ((event.getTarget() != null) ? ((CraftLivingEntity) event.getTarget()).getHandle() : null); livingEntity = ((event.getTarget() != null) ? ((CraftLivingEntity) event.getTarget()).getHandle() : null);
var changeTargetEvent = net.minecraftforge.common.ForgeHooks.onLivingChangeTarget(mob, livingEntity, net.minecraftforge.event.entity.living.LivingChangeTargetEvent.LivingTargetType.BEHAVIOR_TARGET);
if (changeTargetEvent.isCanceled()) {
return;
}
livingEntity = changeTargetEvent.getNewTarget();
mob.getBrain().setMemory(MemoryModuleType.ATTACK_TARGET, livingEntity); mob.getBrain().setMemory(MemoryModuleType.ATTACK_TARGET, livingEntity);
mob.getBrain().eraseMemory(MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE); mob.getBrain().eraseMemory(MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE);
// noinspection removal
net.minecraftforge.common.ForgeHooks.onLivingSetAttackTarget(mob, livingEntity, net.minecraftforge.event.entity.living.LivingChangeTargetEvent.LivingTargetType.BEHAVIOR_TARGET);
} }
} }

View File

@ -14,7 +14,7 @@ allprojects {
ext { ext {
agpVersion = '1.23' agpVersion = '1.23'
minecraftVersion = '1.18.2' minecraftVersion = '1.18.2'
forgeVersion = '40.1.80' forgeVersion = '40.2.1'
apiVersion = '1.4.0' apiVersion = '1.4.0'
toolsVersion = '1.3.+' toolsVersion = '1.3.+'
mixinVersion = '0.8.5' mixinVersion = '0.8.5'