mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-19 15:09:25 +00:00
* Unify comment format * More configurable * Remove one extra execute mid-tick task call in level tick when PWT is disabled This may cause extremely rare, weird, strange, magic, mysterious issues with plugins, or potentially more. One example is that it may cause boss mob duplication issue when `ONE MOB ONLY` was enabled in plugin SupremeBosses
50 lines
2.9 KiB
Diff
50 lines
2.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
|
|
Date: Tue, 9 Nov 2077 00:00:00 +0800
|
|
Subject: [PATCH] Use UUID for cure reputation
|
|
|
|
Related MC issue: https://bugs.mojang.com/browse/MC/issues/MC-247647
|
|
|
|
diff --git a/net/minecraft/world/entity/monster/ZombieVillager.java b/net/minecraft/world/entity/monster/ZombieVillager.java
|
|
index 22c1545a0329d56e0ec41ae4da1e1922aa1f9737..e89e4c26c40cbb3ef002022f22886d5faa7869fd 100644
|
|
--- a/net/minecraft/world/entity/monster/ZombieVillager.java
|
|
+++ b/net/minecraft/world/entity/monster/ZombieVillager.java
|
|
@@ -283,9 +283,10 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
|
|
mob.refreshBrain(level);
|
|
if (this.conversionStarter != null) {
|
|
Player playerByUuid = level.getGlobalPlayerByUUID(this.conversionStarter); // Paper - check global player list where appropriate
|
|
+ mob.onReputationEventFromUUID(ReputationEventType.ZOMBIE_VILLAGER_CURED, this.conversionStarter); // Leaf - Use UUID for cure reputation
|
|
if (playerByUuid instanceof ServerPlayer) {
|
|
CriteriaTriggers.CURED_ZOMBIE_VILLAGER.trigger((ServerPlayer)playerByUuid, this, mob);
|
|
- level.onReputationEvent(ReputationEventType.ZOMBIE_VILLAGER_CURED, playerByUuid, mob);
|
|
+ //level.onReputationEvent(ReputationEventType.ZOMBIE_VILLAGER_CURED, playerByUuid, mob); // Leaf - Use UUID for cure reputation - move up
|
|
}
|
|
}
|
|
|
|
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
|
|
index bcce0c38f476966c9789506cb6a83e2e1ce24cc4..dfc959ee560b4c0c6d27067ac34be05a79f275c0 100644
|
|
--- a/net/minecraft/world/entity/npc/Villager.java
|
|
+++ b/net/minecraft/world/entity/npc/Villager.java
|
|
@@ -1100,6 +1100,21 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
|
}
|
|
}
|
|
|
|
+ // Leaf start - Use UUID for cure reputation
|
|
+ public void onReputationEventFromUUID(ReputationEventType type, java.util.UUID target) {
|
|
+ if (type == ReputationEventType.ZOMBIE_VILLAGER_CURED) {
|
|
+ this.gossips.add(target, GossipType.MAJOR_POSITIVE, 20);
|
|
+ this.gossips.add(target, GossipType.MINOR_POSITIVE, 25);
|
|
+ } else if (type == ReputationEventType.TRADE) {
|
|
+ this.gossips.add(target, GossipType.TRADING, 2);
|
|
+ } else if (type == ReputationEventType.VILLAGER_HURT) {
|
|
+ this.gossips.add(target, GossipType.MINOR_NEGATIVE, 25);
|
|
+ } else if (type == ReputationEventType.VILLAGER_KILLED) {
|
|
+ this.gossips.add(target, GossipType.MAJOR_NEGATIVE, 25);
|
|
+ }
|
|
+ }
|
|
+ // Leaf end - Use UUID for cure reputation
|
|
+
|
|
@Override
|
|
public int getVillagerXp() {
|
|
return this.villagerXp;
|