mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
[ci skip] inline fqn imports
This commit is contained in:
@@ -5,18 +5,10 @@ Subject: [PATCH] ChatColor conveniences
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/ChatColor.java b/src/main/java/org/bukkit/ChatColor.java
|
||||
index 918a045165cdcde264bc24082b7afebb407271de..687d11619379aead7f665d4a5f8f8bcc857cb8e9 100644
|
||||
index 918a045165cdcde264bc24082b7afebb407271de..e98d6321c5f2cdde91b54f8a74cbcc045eae75a8 100644
|
||||
--- a/src/main/java/org/bukkit/ChatColor.java
|
||||
+++ b/src/main/java/org/bukkit/ChatColor.java
|
||||
@@ -3,6 +3,7 @@ package org.bukkit;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.Maps;
|
||||
import java.util.Map;
|
||||
+import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -456,4 +457,77 @@ public enum ChatColor {
|
||||
@@ -456,4 +456,77 @@ public enum ChatColor {
|
||||
BY_CHAR.put(color.code, color);
|
||||
}
|
||||
}
|
||||
@@ -31,7 +23,7 @@ index 918a045165cdcde264bc24082b7afebb407271de..687d11619379aead7f665d4a5f8f8bcc
|
||||
+ @NotNull
|
||||
+ public static String toMM(@NotNull String str) {
|
||||
+ StringBuilder sb = new StringBuilder(str);
|
||||
+ Matcher m = STRIP_COLOR_PATTERN.matcher(sb);
|
||||
+ java.util.regex.Matcher m = STRIP_COLOR_PATTERN.matcher(sb);
|
||||
+ while (m.find()) {
|
||||
+ sb.replace(m.start(), m.end(), sb.substring(m.start(), m.end()).toLowerCase());
|
||||
+ }
|
||||
|
||||
@@ -5,18 +5,10 @@ Subject: [PATCH] Add predicate to recipe's ExactChoice ingredient
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/inventory/RecipeChoice.java b/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
||||
index 1cd6601c9d2e86ef850011fcb9e59811207b4af7..5ec7d9dab1935bb743e3264d9f7390795fd9f55c 100644
|
||||
index 1cd6601c9d2e86ef850011fcb9e59811207b4af7..81c563d44c311ea1b49425d93c57f46beb4a2ef9 100644
|
||||
--- a/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
||||
+++ b/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
||||
@@ -10,6 +10,7 @@ import java.util.function.Predicate;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Tag;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
+import org.jetbrains.annotations.Nullable; // Purpur
|
||||
|
||||
/**
|
||||
* Represents a potential item match within a recipe. All choices within a
|
||||
@@ -180,6 +181,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
||||
@@ -180,6 +180,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
||||
public static class ExactChoice implements RecipeChoice {
|
||||
|
||||
private List<ItemStack> choices;
|
||||
@@ -24,7 +16,7 @@ index 1cd6601c9d2e86ef850011fcb9e59811207b4af7..5ec7d9dab1935bb743e3264d9f739079
|
||||
|
||||
public ExactChoice(@NotNull ItemStack stack) {
|
||||
this(Arrays.asList(stack));
|
||||
@@ -229,6 +231,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
||||
@@ -229,6 +230,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
||||
|
||||
@Override
|
||||
public boolean test(@NotNull ItemStack t) {
|
||||
@@ -32,17 +24,17 @@ index 1cd6601c9d2e86ef850011fcb9e59811207b4af7..5ec7d9dab1935bb743e3264d9f739079
|
||||
for (ItemStack match : choices) {
|
||||
if (t.isSimilar(match)) {
|
||||
return true;
|
||||
@@ -238,6 +241,17 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
||||
@@ -238,6 +240,17 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
||||
return false;
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ @Nullable
|
||||
+ @org.jetbrains.annotations.Nullable
|
||||
+ public Predicate<ItemStack> getPredicate() {
|
||||
+ return predicate;
|
||||
+ }
|
||||
+
|
||||
+ public void setPredicate(@Nullable Predicate<ItemStack> predicate) {
|
||||
+ public void setPredicate(@org.jetbrains.annotations.Nullable Predicate<ItemStack> predicate) {
|
||||
+ this.predicate = predicate;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
|
||||
@@ -5,77 +5,42 @@ Subject: [PATCH] Giants AI settings
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
index 9602e59cbebeedc85ea75d2a41d3e74f0ff45b46..3c1217d36522b1fd3d1a099d3a12d99016f34c4b 100644
|
||||
index 9602e59cbebeedc85ea75d2a41d3e74f0ff45b46..ca53c5b45c119dce1c713dbf931251f89c90cb8d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
@@ -1,11 +1,34 @@
|
||||
package net.minecraft.world.entity.monster;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
+import net.minecraft.nbt.CompoundTag;
|
||||
+import net.minecraft.world.Difficulty;
|
||||
+import net.minecraft.world.DifficultyInstance;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
+import net.minecraft.world.entity.EquipmentSlot;
|
||||
+import net.minecraft.world.entity.MobSpawnType;
|
||||
+import net.minecraft.world.entity.SpawnGroupData;
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
+import net.minecraft.world.entity.ai.goal.FloatGoal;
|
||||
+import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal;
|
||||
+import net.minecraft.world.entity.ai.goal.MeleeAttackGoal;
|
||||
+import net.minecraft.world.entity.ai.goal.MoveTowardsRestrictionGoal;
|
||||
+import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal;
|
||||
+import net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal;
|
||||
+import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal;
|
||||
+import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal;
|
||||
+import net.minecraft.world.entity.animal.IronGolem;
|
||||
+import net.minecraft.world.entity.animal.Turtle;
|
||||
+import net.minecraft.world.entity.npc.Villager;
|
||||
+import net.minecraft.world.entity.player.Player;
|
||||
+import net.minecraft.world.item.ItemStack;
|
||||
+import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
+import net.minecraft.world.level.ServerLevelAccessor;
|
||||
+
|
||||
+import javax.annotation.Nullable;
|
||||
|
||||
public class Giant extends Monster {
|
||||
public Giant(EntityType<? extends Giant> type, Level world) {
|
||||
@@ -30,8 +53,23 @@ public class Giant extends Monster {
|
||||
@@ -30,8 +30,23 @@ public class Giant extends Monster {
|
||||
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
- this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
||||
- this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
||||
+ if (level().purpurConfig.giantHaveAI) {
|
||||
+ this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
+ this.goalSelector.addGoal(0, new net.minecraft.world.entity.ai.goal.FloatGoal(this));
|
||||
+ this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
||||
+ this.goalSelector.addGoal(7, new WaterAvoidingRandomStrollGoal(this, 1.0D));
|
||||
+ this.goalSelector.addGoal(8, new LookAtPlayerGoal(this, Player.class, 16.0F));
|
||||
+ this.goalSelector.addGoal(8, new RandomLookAroundGoal(this));
|
||||
+ this.goalSelector.addGoal(5, new MoveTowardsRestrictionGoal(this, 1.0D));
|
||||
+ this.goalSelector.addGoal(7, new net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal(this, 1.0D));
|
||||
+ this.goalSelector.addGoal(8, new net.minecraft.world.entity.ai.goal.LookAtPlayerGoal(this, net.minecraft.world.entity.player.Player.class, 16.0F));
|
||||
+ this.goalSelector.addGoal(8, new net.minecraft.world.entity.ai.goal.RandomLookAroundGoal(this));
|
||||
+ this.goalSelector.addGoal(5, new net.minecraft.world.entity.ai.goal.MoveTowardsRestrictionGoal(this, 1.0D));
|
||||
+ if (level().purpurConfig.giantHaveHostileAI) {
|
||||
+ this.goalSelector.addGoal(2, new MeleeAttackGoal(this, 1.0D, false));
|
||||
+ this.goalSelector.addGoal(2, new net.minecraft.world.entity.ai.goal.MeleeAttackGoal(this, 1.0D, false));
|
||||
+ this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
||||
+ this.targetSelector.addGoal(1, new HurtByTargetGoal(this).setAlertOthers(ZombifiedPiglin.class));
|
||||
+ this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
|
||||
+ this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Villager.class, false));
|
||||
+ this.targetSelector.addGoal(4, new NearestAttackableTargetGoal<>(this, IronGolem.class, true));
|
||||
+ this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, true));
|
||||
+ this.targetSelector.addGoal(1, new net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal(this).setAlertOthers(ZombifiedPiglin.class));
|
||||
+ this.targetSelector.addGoal(2, new net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal<>(this, net.minecraft.world.entity.player.Player.class, true));
|
||||
+ this.targetSelector.addGoal(3, new net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal<>(this, net.minecraft.world.entity.npc.Villager.class, false));
|
||||
+ this.targetSelector.addGoal(4, new net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal<>(this, net.minecraft.world.entity.animal.IronGolem.class, true));
|
||||
+ this.targetSelector.addGoal(5, new net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal<>(this, net.minecraft.world.entity.animal.Turtle.class, true));
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -47,8 +85,34 @@ public class Giant extends Monster {
|
||||
@@ -47,8 +62,34 @@ public class Giant extends Monster {
|
||||
return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 100.0).add(Attributes.MOVEMENT_SPEED, 0.5).add(Attributes.ATTACK_DAMAGE, 50.0);
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData) {
|
||||
+ SpawnGroupData groupData = super.finalizeSpawn(world, difficulty, spawnReason, entityData);
|
||||
+ public net.minecraft.world.entity.SpawnGroupData finalizeSpawn(net.minecraft.world.level.ServerLevelAccessor world, net.minecraft.world.DifficultyInstance difficulty, net.minecraft.world.entity.MobSpawnType spawnReason, @javax.annotation.Nullable net.minecraft.world.entity.SpawnGroupData entityData) {
|
||||
+ net.minecraft.world.entity.SpawnGroupData groupData = super.finalizeSpawn(world, difficulty, spawnReason, entityData);
|
||||
+ if (groupData == null) {
|
||||
+ populateDefaultEquipmentSlots(this.random, difficulty);
|
||||
+ populateDefaultEquipmentEnchantments(this.random, difficulty);
|
||||
@@ -84,11 +49,11 @@ index 9602e59cbebeedc85ea75d2a41d3e74f0ff45b46..3c1217d36522b1fd3d1a099d3a12d990
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected void populateDefaultEquipmentSlots(net.minecraft.util.RandomSource random, DifficultyInstance difficulty) {
|
||||
+ protected void populateDefaultEquipmentSlots(net.minecraft.util.RandomSource random, net.minecraft.world.DifficultyInstance difficulty) {
|
||||
+ super.populateDefaultEquipmentSlots(this.random, difficulty);
|
||||
+ // TODO make configurable
|
||||
+ if (random.nextFloat() < (level().getDifficulty() == Difficulty.HARD ? 0.1F : 0.05F)) {
|
||||
+ this.setItemSlot(EquipmentSlot.MAINHAND, new ItemStack(Items.IRON_SWORD));
|
||||
+ if (random.nextFloat() < (level().getDifficulty() == net.minecraft.world.Difficulty.HARD ? 0.1F : 0.05F)) {
|
||||
+ this.setItemSlot(net.minecraft.world.entity.EquipmentSlot.MAINHAND, new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.IRON_SWORD));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
|
||||
@@ -5,18 +5,10 @@ Subject: [PATCH] Tulips change fox type
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
index 8666d82775570b812d5bdd80336c8e14db6ddf47..d2be8c1c23f291e98b9a31a63ba5fa7d44fc7402 100644
|
||||
index 8666d82775570b812d5bdd80336c8e14db6ddf47..d1866f0f07e4d023241229a45b55031a37cc5c99 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
@@ -37,6 +37,7 @@ import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.util.StringRepresentable;
|
||||
import net.minecraft.world.DifficultyInstance;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
+import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
import net.minecraft.world.entity.AgeableMob;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
@@ -389,6 +390,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -389,6 +389,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
}
|
||||
|
||||
private void setTargetGoals() {
|
||||
@@ -28,7 +20,7 @@ index 8666d82775570b812d5bdd80336c8e14db6ddf47..d2be8c1c23f291e98b9a31a63ba5fa7d
|
||||
if (this.getVariant() == Fox.Type.RED) {
|
||||
this.targetSelector.addGoal(4, this.landTargetGoal);
|
||||
this.targetSelector.addGoal(4, this.turtleEggTargetGoal);
|
||||
@@ -422,6 +428,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -422,6 +427,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
|
||||
public void setVariant(Fox.Type variant) {
|
||||
this.entityData.set(Fox.DATA_TYPE_ID, variant.getId());
|
||||
@@ -36,13 +28,13 @@ index 8666d82775570b812d5bdd80336c8e14db6ddf47..d2be8c1c23f291e98b9a31a63ba5fa7d
|
||||
}
|
||||
|
||||
List<UUID> getTrustedUUIDs() {
|
||||
@@ -762,6 +769,29 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -762,6 +768,29 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
}
|
||||
// Paper end
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public InteractionResult mobInteract(Player player, InteractionHand hand) {
|
||||
+ public net.minecraft.world.InteractionResult mobInteract(Player player, InteractionHand hand) {
|
||||
+ if (level().purpurConfig.foxTypeChangesWithTulips) {
|
||||
+ ItemStack itemstack = player.getItemInHand(hand);
|
||||
+ if (getVariant() == Type.RED && itemstack.getItem() == Items.WHITE_TULIP) {
|
||||
@@ -50,13 +42,13 @@ index 8666d82775570b812d5bdd80336c8e14db6ddf47..d2be8c1c23f291e98b9a31a63ba5fa7d
|
||||
+ if (!player.getAbilities().instabuild) {
|
||||
+ itemstack.shrink(1);
|
||||
+ }
|
||||
+ return InteractionResult.SUCCESS;
|
||||
+ return net.minecraft.world.InteractionResult.SUCCESS;
|
||||
+ } else if (getVariant() == Type.SNOW && itemstack.getItem() == Items.ORANGE_TULIP) {
|
||||
+ setVariant(Type.RED);
|
||||
+ if (!player.getAbilities().instabuild) {
|
||||
+ itemstack.shrink(1);
|
||||
+ }
|
||||
+ return InteractionResult.SUCCESS;
|
||||
+ return net.minecraft.world.InteractionResult.SUCCESS;
|
||||
+ }
|
||||
+ }
|
||||
+ return super.mobInteract(player, hand);
|
||||
|
||||
@@ -5,35 +5,19 @@ Subject: [PATCH] Cows eat mushrooms
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
index 478663c16a5763dda9a6c3edbafc843b8dfe06f2..5710f77389f4dc4c56475d36ac592633486f2ba7 100644
|
||||
index 478663c16a5763dda9a6c3edbafc843b8dfe06f2..bf5935fbd8e3edfb1221dd06ea1e1a2c8fb887fd 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
@@ -2,6 +2,7 @@ package net.minecraft.world.entity.animal;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import net.minecraft.core.BlockPos;
|
||||
+import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
@@ -29,6 +30,7 @@ import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.ItemUtils;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.Level;
|
||||
+import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
// CraftBukkit start
|
||||
import org.bukkit.craftbukkit.event.CraftEventFactory;
|
||||
@@ -73,7 +75,7 @@ public class Cow extends Animal {
|
||||
@@ -73,7 +73,7 @@ public class Cow extends Animal {
|
||||
this.goalSelector.addGoal(1, new PanicGoal(this, 2.0D));
|
||||
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 1.25D, (itemstack) -> {
|
||||
- return itemstack.is(ItemTags.COW_FOOD);
|
||||
+ return level().purpurConfig.cowFeedMushrooms > 0 && (itemstack.is(Blocks.RED_MUSHROOM.asItem()) || itemstack.is(Blocks.BROWN_MUSHROOM.asItem())) || itemstack.is(ItemTags.COW_FOOD); // Purpur
|
||||
+ return level().purpurConfig.cowFeedMushrooms > 0 && (itemstack.is(net.minecraft.world.level.block.Blocks.RED_MUSHROOM.asItem()) || itemstack.is(net.minecraft.world.level.block.Blocks.BROWN_MUSHROOM.asItem())) || itemstack.is(ItemTags.COW_FOOD); // Purpur
|
||||
}, false));
|
||||
this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.25D));
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 1.0D));
|
||||
@@ -135,6 +137,10 @@ public class Cow extends Animal {
|
||||
@@ -135,6 +135,10 @@ public class Cow extends Animal {
|
||||
|
||||
player.setItemInHand(hand, itemstack1);
|
||||
return InteractionResult.sidedSuccess(this.level().isClientSide);
|
||||
@@ -44,7 +28,7 @@ index 478663c16a5763dda9a6c3edbafc843b8dfe06f2..5710f77389f4dc4c56475d36ac592633
|
||||
} else {
|
||||
return super.mobInteract(player, hand);
|
||||
}
|
||||
@@ -150,4 +156,69 @@ public class Cow extends Animal {
|
||||
@@ -150,4 +154,69 @@ public class Cow extends Animal {
|
||||
public EntityDimensions getDefaultDimensions(Pose pose) {
|
||||
return this.isBaby() ? Cow.BABY_DIMENSIONS : super.getDefaultDimensions(pose);
|
||||
}
|
||||
@@ -54,11 +38,11 @@ index 478663c16a5763dda9a6c3edbafc843b8dfe06f2..5710f77389f4dc4c56475d36ac592633
|
||||
+ private int brownMushroomsFed = 0;
|
||||
+
|
||||
+ private boolean isMushroom(ItemStack stack) {
|
||||
+ return stack.getItem() == Blocks.RED_MUSHROOM.asItem() || stack.getItem() == Blocks.BROWN_MUSHROOM.asItem();
|
||||
+ return stack.getItem() == net.minecraft.world.level.block.Blocks.RED_MUSHROOM.asItem() || stack.getItem() == net.minecraft.world.level.block.Blocks.BROWN_MUSHROOM.asItem();
|
||||
+ }
|
||||
+
|
||||
+ private int incrementFeedCount(ItemStack stack) {
|
||||
+ if (stack.getItem() == Blocks.RED_MUSHROOM.asItem()) {
|
||||
+ if (stack.getItem() == net.minecraft.world.level.block.Blocks.RED_MUSHROOM.asItem()) {
|
||||
+ return ++redMushroomsFed;
|
||||
+ } else {
|
||||
+ return ++brownMushroomsFed;
|
||||
@@ -78,7 +62,7 @@ index 478663c16a5763dda9a6c3edbafc843b8dfe06f2..5710f77389f4dc4c56475d36ac592633
|
||||
+ if (mooshroom == null) {
|
||||
+ return InteractionResult.PASS;
|
||||
+ }
|
||||
+ if (stack.getItem() == Blocks.BROWN_MUSHROOM.asItem()) {
|
||||
+ if (stack.getItem() == net.minecraft.world.level.block.Blocks.BROWN_MUSHROOM.asItem()) {
|
||||
+ mooshroom.setVariant(MushroomCow.MushroomType.BROWN);
|
||||
+ } else {
|
||||
+ mooshroom.setVariant(MushroomCow.MushroomType.RED);
|
||||
@@ -106,7 +90,7 @@ index 478663c16a5763dda9a6c3edbafc843b8dfe06f2..5710f77389f4dc4c56475d36ac592633
|
||||
+ stack.shrink(1);
|
||||
+ }
|
||||
+ for (int i = 0; i < 15; ++i) {
|
||||
+ ((ServerLevel) level()).sendParticles(((ServerLevel) level()).players(), null, ParticleTypes.HAPPY_VILLAGER,
|
||||
+ ((ServerLevel) level()).sendParticles(((ServerLevel) level()).players(), null, net.minecraft.core.particles.ParticleTypes.HAPPY_VILLAGER,
|
||||
+ getX() + random.nextFloat(), getY() + (random.nextFloat() * 2), getZ() + random.nextFloat(), 1,
|
||||
+ random.nextGaussian() * 0.05D, random.nextGaussian() * 0.05D, random.nextGaussian() * 0.05D, 0, true);
|
||||
+ }
|
||||
|
||||
@@ -5,24 +5,16 @@ Subject: [PATCH] Dispenser curse of binding protection
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 3d5f08d673f6b95c8f87070345f1fb200b5f4bde..c4392a997061aa4939e5ad7dcacf5e39cbecc55a 100644
|
||||
index a0e0d3ca25bf047a5520a3ed47f93ab97377b8b4..49422ea596125ee669bdc66d88f084b692acaca7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -75,6 +75,7 @@ import net.minecraft.world.item.SpawnEggItem;
|
||||
import net.minecraft.world.item.SwordItem;
|
||||
import net.minecraft.world.item.component.ItemAttributeModifiers;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
+import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.level.GameRules;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
import net.minecraft.world.level.Level;
|
||||
@@ -1309,6 +1310,12 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -1309,6 +1309,12 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ public static @Nullable EquipmentSlot getSlotForDispenser(ItemStack itemstack) {
|
||||
+ return EnchantmentHelper.getItemEnchantmentLevel(Enchantments.BINDING_CURSE, itemstack) > 0 ? null : getEquipmentSlotForItem(itemstack);
|
||||
+ return EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.BINDING_CURSE, itemstack) > 0 ? null : getEquipmentSlotForItem(itemstack);
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index f0ff103977c0a0106df1368755fa99ca1376b83a..2a5b759d50931405f214e2a89d0cca624f0c3705 100644
|
||||
index 1d09fe4cc604e5ccebe32fde9e2f7c008bb10a72..96019786b27e2f017239b765724257bebee73cb9 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2807,6 +2807,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -17,10 +17,10 @@ index f0ff103977c0a0106df1368755fa99ca1376b83a..2a5b759d50931405f214e2a89d0cca62
|
||||
private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit
|
||||
ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index c4392a997061aa4939e5ad7dcacf5e39cbecc55a..e7251ac940b49564c83b4b603e49c3990fc85db1 100644
|
||||
index 49422ea596125ee669bdc66d88f084b692acaca7..6415bc82e44629a08a2ec881acaa5d993e48bb9d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -152,6 +152,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -151,6 +151,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
private BlockPos restrictCenter;
|
||||
private float restrictRadius;
|
||||
|
||||
@@ -28,7 +28,7 @@ index c4392a997061aa4939e5ad7dcacf5e39cbecc55a..e7251ac940b49564c83b4b603e49c399
|
||||
public boolean aware = true; // CraftBukkit
|
||||
|
||||
protected Mob(EntityType<? extends Mob> type, Level world) {
|
||||
@@ -339,6 +340,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -338,6 +339,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
entityliving = null;
|
||||
}
|
||||
}
|
||||
@@ -36,7 +36,7 @@ index c4392a997061aa4939e5ad7dcacf5e39cbecc55a..e7251ac940b49564c83b4b603e49c399
|
||||
this.target = entityliving;
|
||||
return true;
|
||||
// CraftBukkit end
|
||||
@@ -381,8 +383,28 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -380,8 +382,28 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
}
|
||||
|
||||
this.level().getProfiler().pop();
|
||||
@@ -65,7 +65,7 @@ index c4392a997061aa4939e5ad7dcacf5e39cbecc55a..e7251ac940b49564c83b4b603e49c399
|
||||
@Override
|
||||
protected void playHurtSound(DamageSource damageSource) {
|
||||
this.resetAmbientSoundTime();
|
||||
@@ -585,6 +607,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -584,6 +606,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
}
|
||||
|
||||
nbt.putBoolean("Bukkit.Aware", this.aware); // CraftBukkit
|
||||
@@ -73,7 +73,7 @@ index c4392a997061aa4939e5ad7dcacf5e39cbecc55a..e7251ac940b49564c83b4b603e49c399
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -669,6 +692,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -668,6 +691,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
this.aware = nbt.getBoolean("Bukkit.Aware");
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -85,7 +85,7 @@ index c4392a997061aa4939e5ad7dcacf5e39cbecc55a..e7251ac940b49564c83b4b603e49c399
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1848,6 +1876,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -1847,6 +1875,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
this.setLastHurtMob(target);
|
||||
}
|
||||
|
||||
|
||||
@@ -25,22 +25,14 @@ index 98e6faaeeaf8a983f9d730591a9d85c314c112d3..27d279d76fd3632fd023edded3b10630
|
||||
|
||||
public boolean spiderRidable = false;
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index a9a39f0da7b09410d8171172a4219c7d509fdb99..a8fc07e06039e1418e020f7c1ad2cd36b9b94eb4 100644
|
||||
index a9a39f0da7b09410d8171172a4219c7d509fdb99..2ed85c0aa7d3053e338927fa308b86bcbf9eb7b6 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -15,6 +15,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature;
|
||||
import net.minecraft.world.entity.animal.Animal;
|
||||
import net.minecraft.world.entity.animal.Bee;
|
||||
import net.minecraft.world.entity.animal.Sheep;
|
||||
+import net.minecraft.world.entity.animal.Squid;
|
||||
import net.minecraft.world.entity.animal.WaterAnimal;
|
||||
import net.minecraft.world.entity.animal.horse.Llama;
|
||||
import net.minecraft.world.entity.boss.EnderDragonPart;
|
||||
@@ -380,6 +381,7 @@ public class ActivationRange
|
||||
@@ -380,6 +380,7 @@ public class ActivationRange
|
||||
*/
|
||||
public static boolean checkIfActive(Entity entity)
|
||||
{
|
||||
+ if (entity.level().purpurConfig.squidImmuneToEAR && entity instanceof Squid) return true; // Purpur
|
||||
+ if (entity.level().purpurConfig.squidImmuneToEAR && entity instanceof net.minecraft.world.entity.animal.Squid) return true; // Purpur
|
||||
// Never safe to skip fireworks or entities not yet added to chunk
|
||||
if ( entity instanceof FireworkRocketEntity ) {
|
||||
return true;
|
||||
|
||||
@@ -5,18 +5,10 @@ Subject: [PATCH] Furnace uses lava from underneath
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
|
||||
index a99fe191c429bb528209dd0f31b509acf9cccbb5..ce2c424068001eec16032361baa206f6a5aa5332 100644
|
||||
index a99fe191c429bb528209dd0f31b509acf9cccbb5..08ff372334f32b9bfac2e7b7a405e43ecf0df959 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
|
||||
@@ -45,6 +45,7 @@ import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.AbstractFurnaceBlock;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
+import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
// CraftBukkit start
|
||||
import org.bukkit.craftbukkit.block.CraftBlock;
|
||||
@@ -335,6 +336,21 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
|
||||
@@ -335,6 +335,21 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
|
||||
}
|
||||
|
||||
ItemStack itemstack = (ItemStack) blockEntity.items.get(1);
|
||||
@@ -26,7 +18,7 @@ index a99fe191c429bb528209dd0f31b509acf9cccbb5..ce2c424068001eec16032361baa206f6
|
||||
+ BlockPos below = blockEntity.getBlockPos().below();
|
||||
+ BlockState belowState = world.getBlockStateIfLoaded(below);
|
||||
+ if (belowState != null && belowState.is(Blocks.LAVA)) {
|
||||
+ FluidState fluidState = belowState.getFluidState();
|
||||
+ net.minecraft.world.level.material.FluidState fluidState = belowState.getFluidState();
|
||||
+ if (fluidState != null && fluidState.isSource()) {
|
||||
+ world.setBlock(below, Blocks.AIR.defaultBlockState(), 3);
|
||||
+ itemstack = Items.LAVA_BUCKET.getDefaultInstance();
|
||||
@@ -38,7 +30,7 @@ index a99fe191c429bb528209dd0f31b509acf9cccbb5..ce2c424068001eec16032361baa206f6
|
||||
boolean flag2 = !((ItemStack) blockEntity.items.get(0)).isEmpty();
|
||||
boolean flag3 = !itemstack.isEmpty();
|
||||
|
||||
@@ -420,6 +436,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
|
||||
@@ -420,6 +435,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
|
||||
setChanged(world, pos, state);
|
||||
}
|
||||
|
||||
|
||||
@@ -95,10 +95,10 @@ index 14210dac8a4fa8caaf69ec830f83d15525bb1bea..a440e9cc8973d6116652a0871251c421
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
index 5710f77389f4dc4c56475d36ac592633486f2ba7..8cb0d645e7d2f477874d4d55dbf7a3bc75fe15dc 100644
|
||||
index bf5935fbd8e3edfb1221dd06ea1e1a2c8fb887fd..06014b84e99ce2e8c019de921891590e151b2c56 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
@@ -68,6 +68,11 @@ public class Cow extends Animal {
|
||||
@@ -66,6 +66,11 @@ public class Cow extends Animal {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.cowMaxHealth);
|
||||
}
|
||||
|
||||
@@ -111,10 +111,10 @@ index 5710f77389f4dc4c56475d36ac592633486f2ba7..8cb0d645e7d2f477874d4d55dbf7a3bc
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
index d2be8c1c23f291e98b9a31a63ba5fa7d44fc7402..0140dc8a58903bd802ea8ffb029392215e95cdf4 100644
|
||||
index d1866f0f07e4d023241229a45b55031a37cc5c99..0f0171c6b34f58ef98ffeb9409f601ea25bbc662 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
@@ -189,6 +189,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -188,6 +188,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.foxMaxHealth);
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ index d2be8c1c23f291e98b9a31a63ba5fa7d44fc7402..0140dc8a58903bd802ea8ffb02939221
|
||||
@Override
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
@@ -991,8 +996,10 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -990,8 +995,10 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer2, this.animal, this.partner, entityfox);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Changeable Mob Left Handed Chance
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index e7251ac940b49564c83b4b603e49c3990fc85db1..34d00acc43d2541307aa90a77a3c5d19a3057a94 100644
|
||||
index 6415bc82e44629a08a2ec881acaa5d993e48bb9d..24755576d2c0e59fe5ed2d6019dfe33a5d6a64f9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -1438,7 +1438,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -1437,7 +1437,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
RandomSource randomsource = world.getRandom();
|
||||
|
||||
this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", randomsource.triangle(0.0D, 0.11485000000000001D), AttributeModifier.Operation.ADD_MULTIPLIED_BASE));
|
||||
@@ -18,7 +18,7 @@ index e7251ac940b49564c83b4b603e49c3990fc85db1..34d00acc43d2541307aa90a77a3c5d19
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index f87abb5d0572b8d51c91dd90638e7a728c49a69a..4ac5d5469312b5f9e0203551baa085317189553b 100644
|
||||
index 3f3584399f56fd475f1a0baa1e29ecfd188fa469..aba8165029d6b614072f511f45bb16c35988fbfd 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -156,8 +156,10 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -7,19 +7,10 @@ Configurable chance to spawn a wolf that is rabid.
|
||||
Rabid wolves attack all players, mobs, and animals.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index 2267f8da1c27ff54b2ced59ef15eb45357b7075d..74ed226b5037f3258106f07384e14baf087be1c3 100644
|
||||
index 2267f8da1c27ff54b2ced59ef15eb45357b7075d..073014d44a3ccfca9bb5a387843e22917de13bb4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -30,6 +30,8 @@ import net.minecraft.world.DifficultyInstance;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
+import net.minecraft.world.effect.MobEffectInstance;
|
||||
+import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.AgeableMob;
|
||||
import net.minecraft.world.entity.Crackiness;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
@@ -104,6 +106,37 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -104,6 +104,37 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
|
||||
return entitytypes == EntityType.SHEEP || entitytypes == EntityType.RABBIT || entitytypes == EntityType.FOX;
|
||||
};
|
||||
@@ -57,7 +48,7 @@ index 2267f8da1c27ff54b2ced59ef15eb45357b7075d..74ed226b5037f3258106f07384e14baf
|
||||
private static final float START_HEALTH = 8.0F;
|
||||
private static final float TAME_HEALTH = 40.0F;
|
||||
private static final float ARMOR_REPAIR_UNIT = 0.125F;
|
||||
@@ -156,6 +189,30 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -156,6 +187,30 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
return this.level().purpurConfig.wolfBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -77,18 +68,18 @@ index 2267f8da1c27ff54b2ced59ef15eb45357b7075d..74ed226b5037f3258106f07384e14baf
|
||||
+ setOwnerUUID(null);
|
||||
+ setTame(false, true);
|
||||
+ this.targetSelector.addGoal(5, PATHFINDER_RABID);
|
||||
+ if (modifyEffects) this.addEffect(new MobEffectInstance(MobEffects.CONFUSION, 1200));
|
||||
+ if (modifyEffects) this.addEffect(new net.minecraft.world.effect.MobEffectInstance(net.minecraft.world.effect.MobEffects.CONFUSION, 1200));
|
||||
+ } else {
|
||||
+ this.targetSelector.addGoal(5, PATHFINDER_VANILLA);
|
||||
+ this.stopBeingAngry();
|
||||
+ if (modifyEffects) this.removeEffect(MobEffects.CONFUSION);
|
||||
+ if (modifyEffects) this.removeEffect(net.minecraft.world.effect.MobEffects.CONFUSION);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
@@ -163,6 +220,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -163,6 +218,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
this.goalSelector.addGoal(1, new Wolf.WolfPanicGoal(this, 1.5D));
|
||||
this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this));
|
||||
this.goalSelector.addGoal(3, new Wolf.WolfAvoidEntityGoal<>(this, Llama.class, 24.0F, 1.5D, 1.5D));
|
||||
@@ -96,7 +87,7 @@ index 2267f8da1c27ff54b2ced59ef15eb45357b7075d..74ed226b5037f3258106f07384e14baf
|
||||
this.goalSelector.addGoal(4, new LeapAtTargetGoal(this, 0.4F));
|
||||
this.goalSelector.addGoal(5, new MeleeAttackGoal(this, 1.0D, true));
|
||||
this.goalSelector.addGoal(6, new FollowOwnerGoal(this, 1.0D, 10.0F, 2.0F, false));
|
||||
@@ -176,7 +234,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -176,7 +232,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
|
||||
this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers());
|
||||
this.targetSelector.addGoal(4, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::isAngryAt));
|
||||
@@ -105,7 +96,7 @@ index 2267f8da1c27ff54b2ced59ef15eb45357b7075d..74ed226b5037f3258106f07384e14baf
|
||||
this.targetSelector.addGoal(6, new NonTameRandomTargetGoal<>(this, Turtle.class, false, Turtle.BABY_ON_LAND_SELECTOR));
|
||||
this.targetSelector.addGoal(7, new NearestAttackableTargetGoal<>(this, AbstractSkeleton.class, false));
|
||||
this.targetSelector.addGoal(8, new ResetUniversalAngerTargetGoal<>(this, true));
|
||||
@@ -219,6 +277,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -219,6 +275,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
public void addAdditionalSaveData(CompoundTag nbt) {
|
||||
super.addAdditionalSaveData(nbt);
|
||||
nbt.putByte("CollarColor", (byte) this.getCollarColor().getId());
|
||||
@@ -113,7 +104,7 @@ index 2267f8da1c27ff54b2ced59ef15eb45357b7075d..74ed226b5037f3258106f07384e14baf
|
||||
nbt.putString("variant", ((ResourceKey) this.getVariant().unwrapKey().orElse(WolfVariants.PALE)).location().toString());
|
||||
this.addPersistentAngerSaveData(nbt);
|
||||
}
|
||||
@@ -234,6 +293,10 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -234,6 +291,10 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
if (nbt.contains("CollarColor", 99)) {
|
||||
this.setCollarColor(DyeColor.byId(nbt.getInt("CollarColor")));
|
||||
}
|
||||
@@ -124,7 +115,7 @@ index 2267f8da1c27ff54b2ced59ef15eb45357b7075d..74ed226b5037f3258106f07384e14baf
|
||||
|
||||
this.readPersistentAngerSaveData(this.level(), nbt);
|
||||
}
|
||||
@@ -252,6 +315,12 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -252,6 +313,12 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
}
|
||||
|
||||
this.setVariant(holder1);
|
||||
@@ -137,19 +128,19 @@ index 2267f8da1c27ff54b2ced59ef15eb45357b7075d..74ed226b5037f3258106f07384e14baf
|
||||
return super.finalizeSpawn(world, difficulty, spawnReason, (SpawnGroupData) entityData);
|
||||
}
|
||||
|
||||
@@ -295,6 +364,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -295,6 +362,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
public void tick() {
|
||||
super.tick();
|
||||
if (this.isAlive()) {
|
||||
+ // Purpur start
|
||||
+ if (this.age % 300 == 0 && this.isRabid()) {
|
||||
+ this.addEffect(new MobEffectInstance(MobEffects.CONFUSION, 400));
|
||||
+ this.addEffect(new net.minecraft.world.effect.MobEffectInstance(net.minecraft.world.effect.MobEffects.CONFUSION, 400));
|
||||
+ }
|
||||
+ // Purpur end
|
||||
this.interestedAngleO = this.interestedAngle;
|
||||
if (this.isInterested()) {
|
||||
this.interestedAngle += (1.0F - this.interestedAngle) * 0.4F;
|
||||
@@ -541,6 +615,19 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -541,6 +613,19 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
itemstack.consume(1, player);
|
||||
this.tryToTame(player);
|
||||
return InteractionResult.SUCCESS;
|
||||
@@ -191,7 +182,7 @@ index 86574da257731de7646a712ed73384955fe35aa3..e223234dd64b0e41441c3b9f649f0b64
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index d621f330f954a12635d8c87c5ff66dae7448a856..fc0a733df7f0e851681bed1b22bfa6836812272a 100644
|
||||
index 5dfc4f4144feab63ca2244e2e4a20af9fbd8ef02..89cc7b46a2dd15afd7db711f2e01fa8c7035a5bd 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -1938,6 +1938,8 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -26,10 +26,10 @@ index b23d6683bab3d257febb57a6c9c8be4db926af7f..27e448a38377ea3cc2e527dbe48a23d2
|
||||
@Override
|
||||
public Cat getBreedOffspring(ServerLevel world, AgeableMob entity) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index 74ed226b5037f3258106f07384e14baf087be1c3..580bff2b4308f97acf402c9539755aee7aa8b3d8 100644
|
||||
index 073014d44a3ccfca9bb5a387843e22917de13bb4..3b7392852fd8b3c88969b46eeee3aefddde06920 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -213,6 +213,12 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -211,6 +211,12 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ index 74ed226b5037f3258106f07384e14baf087be1c3..580bff2b4308f97acf402c9539755aee
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index fc0a733df7f0e851681bed1b22bfa6836812272a..d73268340e5201181f42084fbe47883a22d062cc 100644
|
||||
index 89cc7b46a2dd15afd7db711f2e01fa8c7035a5bd..ce273c9ae2c6c9a37f288200b32403a9dc7baa49 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -622,6 +622,7 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 2ea60043f3bbf6cce77799f6c74ffe1f4b226374..dc1c7c55fd13cc1a8ade803bfb1b7c385cf29132 100644
|
||||
index 514b977591e987032e3c5ec33adc0275ccd10898..450b289398cb3cccfcddcb4377004358a77d2c45 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1831,7 +1831,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -18,10 +18,10 @@ index 2ea60043f3bbf6cce77799f6c74ffe1f4b226374..dc1c7c55fd13cc1a8ade803bfb1b7c38
|
||||
BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 34d00acc43d2541307aa90a77a3c5d19a3057a94..77cf0d92212d11b9036f9f9cf23b23f71f1d590d 100644
|
||||
index 24755576d2c0e59fe5ed2d6019dfe33a5d6a64f9..d4325d9a55f244d96ad1dded9f62b64834dd56c6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -748,7 +748,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -747,7 +747,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
public void aiStep() {
|
||||
super.aiStep();
|
||||
this.level().getProfiler().push("looting");
|
||||
@@ -92,10 +92,10 @@ index 6634228ef002cbef67980272a26be4a75c954116..a61abba840a55fb4fbc9716a5e05eb27
|
||||
} else if (this.nextStartTick > 0) {
|
||||
--this.nextStartTick;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
index 0140dc8a58903bd802ea8ffb029392215e95cdf4..c246148b9851654d796f472462677a60498c7b8d 100644
|
||||
index 0f0171c6b34f58ef98ffeb9409f601ea25bbc662..63e2f3574b784672688f0c486fa160e5b02b01b3 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
@@ -1385,7 +1385,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -1384,7 +1384,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
}
|
||||
|
||||
protected void onReachedTarget() {
|
||||
@@ -131,7 +131,7 @@ index ee4d4a4fe314ee9bce69c96dd65d84ed1ace0543..cdb6657d30d224709aec3921c5fb8380
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index f751444603e4a1a2ef53e7232b5abfff82c316e8..0478469343c30d2b8d79bda78aef9ff1348de19b 100644
|
||||
index ff2faa3ad719378b21f84a7839b4e0c60ea5f66f..ca26c926a014c985f83cfa376a9e859d0c8b2d6b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -603,7 +603,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -375,7 +375,7 @@ index c7377d04ceac3ea624117439783a443c6d6f6d08..0c732cfbd9ce50198a3f85ae8ef2263d
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 66c4906cb9c3da6f111b96f0ad6be17772764125..51002cc2901b432123dfc6b3c130e26b3c3486a3 100644
|
||||
index 076d26136c46fdf1eba18fde04c0fe8e28efa2bd..aca1e2c31ae757041bbdc12931d1ff0ba6c33b87 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -115,8 +115,11 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -110,10 +110,10 @@ index 3d61c2d5da103de68242c16d85c703813979d179..2343325fa9a771de7b9445cda24a2bcd
|
||||
public ItemStack getBucketItemStack() {
|
||||
return new ItemStack(Items.COD_BUCKET);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
index 8cb0d645e7d2f477874d4d55dbf7a3bc75fe15dc..3950ee673a8fc4aa1edb8e462cfa72fe40dd0062 100644
|
||||
index 06014b84e99ce2e8c019de921891590e151b2c56..c519883f4ed3772378b5563401b8c557dc315ace 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
@@ -73,6 +73,11 @@ public class Cow extends Animal {
|
||||
@@ -71,6 +71,11 @@ public class Cow extends Animal {
|
||||
return this.level().purpurConfig.cowBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -142,10 +142,10 @@ index 366d583926e7e33a8c1e5a803bb75a456b4838d0..38112239035b0c66c429c0762199867e
|
||||
@Override
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
index c246148b9851654d796f472462677a60498c7b8d..ee691437da9571900039f90c1700cd33e31c03bc 100644
|
||||
index 63e2f3574b784672688f0c486fa160e5b02b01b3..5807a498b910ad96d7e6f69db5241c925dcdb97c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
@@ -194,6 +194,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -193,6 +193,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
return this.level().purpurConfig.foxBreedingTicks;
|
||||
}
|
||||
|
||||
@@ -395,10 +395,10 @@ index a577ec78b2f5bca0166277c499da4fa7988d5395..b146ac72584d998cee4279133b3b1905
|
||||
this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos...
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index 580bff2b4308f97acf402c9539755aee7aa8b3d8..db0d71da579752bfb8246f5fa2ec9d360f53c7a8 100644
|
||||
index 3b7392852fd8b3c88969b46eeee3aefddde06920..c0a4a6066f7330974971e93a74f9b35d135166e7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -219,6 +219,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -217,6 +217,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
super.tame(player);
|
||||
}
|
||||
|
||||
@@ -743,10 +743,10 @@ index 4bad5bdce2df5f5233465b30bcd3121b1dff0874..96f7c8fb4e49e7640aaa1adb466d67fc
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
index 3c1217d36522b1fd3d1a099d3a12d99016f34c4b..47e403a5986f77dbb3833acb9a3ea59e5c3740c6 100644
|
||||
index ca53c5b45c119dce1c713dbf931251f89c90cb8d..7ede13f462e2641de63104ba34cdea03d008d33c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
@@ -72,6 +72,11 @@ public class Giant extends Monster {
|
||||
@@ -49,6 +49,11 @@ public class Giant extends Monster {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -46,10 +46,10 @@ index 7b139028ae5c590960e6b8a74b6ba667f3db7f5d..490d7f8ac402f50a2f2f90ca03216978
|
||||
this.level().broadcastEntityEvent(this, (byte) 7);
|
||||
} else {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index db0d71da579752bfb8246f5fa2ec9d360f53c7a8..31b5d874fdc6f7d2eaabe877b32b64d360cb48e3 100644
|
||||
index c0a4a6066f7330974971e93a74f9b35d135166e7..88f34f29f3d18fa0e3ba1ae1d7d983c66609c207 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -646,7 +646,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -644,7 +644,7 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
|
||||
private void tryToTame(Player player) {
|
||||
// CraftBukkit - added event call and isCancelled check.
|
||||
@@ -59,7 +59,7 @@ index db0d71da579752bfb8246f5fa2ec9d360f53c7a8..31b5d874fdc6f7d2eaabe877b32b64d3
|
||||
this.navigation.stop();
|
||||
this.setTarget((LivingEntity) null);
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 7e520532aec1dc38da84dce2dc8679d977a030ea..75c9c93f808b624370a2820a93f625a599093b5c 100644
|
||||
index 56bc524e760de6fa18eab40d1c590f518d42e914..69d34334dc39f413921abb2e6ce672cafed55b24 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -117,6 +117,7 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -92,10 +92,10 @@ index 64642403d6821d149e2acc3a4cac43ef19b4dd3d..753b1220ecf63914920ef85292db47d0
|
||||
|
||||
public boolean isSensitiveToWater() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 3bb977f7b4861c92cf2c036bdf720cf6323964b0..3486c6782f9bbb3477d2fefd1e0a363a5326999f 100644
|
||||
index d4325d9a55f244d96ad1dded9f62b64834dd56c6..2fa19bf199eb7736a97737e0712fd300d04d35fc 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -1881,17 +1881,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -1880,17 +1880,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
}
|
||||
|
||||
public boolean isSunBurnTick() {
|
||||
@@ -361,7 +361,7 @@ index befe3372d5f1550b7bde3b63b5e7aef9035c5379..3c674ecd3b80501047b4593e88720342
|
||||
Preconditions.checkArgument(entity != null, "Unknown entity");
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
index f234cc33ad0e1f308daef6a09e1755bc23497294..fbb1b3672af69306c510f3a629bede548ba7a9fd 100644
|
||||
index 4a46f5b50ed82175bb2efab3acdf279ded173e5e..b95d355ede8689af1f7f5a0424b5274e38839756 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
@@ -1187,5 +1187,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
|
||||
@@ -5,26 +5,18 @@ Subject: [PATCH] Option to make drowned break doors
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
index f037d50f26f7532f11a71790448de7a71644b6ca..2547ac49721e2840da2845076d5e62a1465a4ea3 100644
|
||||
index f037d50f26f7532f11a71790448de7a71644b6ca..b3a79dc4357ad4392101353fbc99aac1b068c172 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
@@ -29,6 +29,7 @@ import net.minecraft.world.entity.ai.goal.MoveToBlockGoal;
|
||||
import net.minecraft.world.entity.ai.goal.RandomStrollGoal;
|
||||
import net.minecraft.world.entity.ai.goal.RangedAttackGoal;
|
||||
import net.minecraft.world.entity.ai.goal.ZombieAttackGoal;
|
||||
+import net.minecraft.world.entity.ai.goal.MoveThroughVillageGoal;
|
||||
import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal;
|
||||
import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal;
|
||||
import net.minecraft.world.entity.ai.navigation.GroundPathNavigation;
|
||||
@@ -125,6 +126,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
@@ -125,6 +125,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
this.goalSelector.addGoal(2, new Drowned.DrownedAttackGoal(this, 1.0D, false));
|
||||
this.goalSelector.addGoal(5, new Drowned.DrownedGoToBeachGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(6, new Drowned.DrownedSwimUpGoal(this, 1.0D, this.level().getSeaLevel()));
|
||||
+ if (level().purpurConfig.drownedBreakDoors) this.goalSelector.addGoal(6, new MoveThroughVillageGoal(this, 1.0D, true, 4, this::canBreakDoors));
|
||||
+ if (level().purpurConfig.drownedBreakDoors) this.goalSelector.addGoal(6, new net.minecraft.world.entity.ai.goal.MoveThroughVillageGoal(this, 1.0D, true, 4, this::canBreakDoors));
|
||||
this.goalSelector.addGoal(7, new RandomStrollGoal(this, 1.0D));
|
||||
this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[]{Drowned.class})).setAlertOthers(ZombifiedPiglin.class));
|
||||
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::okTarget));
|
||||
@@ -174,7 +176,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
@@ -174,7 +175,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
|
||||
@Override
|
||||
public boolean supportsBreakDoorGoal() {
|
||||
@@ -34,7 +26,7 @@ index f037d50f26f7532f11a71790448de7a71644b6ca..2547ac49721e2840da2845076d5e62a1
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 75903da7236f6f57c4978d33cd8ac15a4f7d7a62..b3a999c8ecaaf9e0dae83d0fe10f9f927f592b58 100644
|
||||
index e880950eed7bda56e008c5a365314d175aa8ddb7..a23b90e4beba29adbe36e2dda2f7d85d5fd37693 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -1054,6 +1054,7 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -5,40 +5,22 @@ Subject: [PATCH] Shulker change color with dye
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
index 73063abbd051f1d044a8b2c0530cc8d2a96a6331..687fadf1ef64c5ae7e00c5da15b82245e07d3a39 100644
|
||||
index 796f0a3d8dc8faf202e912fe44afb898d286a895..39b980eeb863fda008259a4b52e39393903b4e9c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
@@ -23,6 +23,8 @@ import net.minecraft.tags.DamageTypeTags;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.Difficulty;
|
||||
import net.minecraft.world.DifficultyInstance;
|
||||
+import net.minecraft.world.InteractionHand;
|
||||
+import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntitySelector;
|
||||
@@ -48,6 +50,8 @@ import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.entity.projectile.AbstractArrow;
|
||||
import net.minecraft.world.entity.projectile.ShulkerBullet;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
+import net.minecraft.world.item.DyeItem;
|
||||
+import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.ServerLevelAccessor;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
@@ -124,6 +128,19 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
|
||||
@@ -124,6 +124,19 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
|
||||
return this.level().purpurConfig.shulkerTakeDamageFromWater;
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ protected InteractionResult mobInteract(Player player, InteractionHand hand) {
|
||||
+ ItemStack itemstack = player.getItemInHand(hand);
|
||||
+ if (player.level().purpurConfig.shulkerChangeColorWithDye && itemstack.getItem() instanceof DyeItem dye && dye.getDyeColor() != this.getColor()) {
|
||||
+ protected net.minecraft.world.InteractionResult mobInteract(Player player, net.minecraft.world.InteractionHand hand) {
|
||||
+ net.minecraft.world.item.ItemStack itemstack = player.getItemInHand(hand);
|
||||
+ if (player.level().purpurConfig.shulkerChangeColorWithDye && itemstack.getItem() instanceof net.minecraft.world.item.DyeItem dye && dye.getDyeColor() != this.getColor()) {
|
||||
+ this.setVariant(Optional.of(dye.getDyeColor()));
|
||||
+ if (!player.getAbilities().instabuild) {
|
||||
+ itemstack.shrink(1);
|
||||
+ }
|
||||
+ return InteractionResult.SUCCESS;
|
||||
+ return net.minecraft.world.InteractionResult.SUCCESS;
|
||||
+ }
|
||||
+ return super.mobInteract(player, hand);
|
||||
+ }
|
||||
@@ -47,7 +29,7 @@ index 73063abbd051f1d044a8b2c0530cc8d2a96a6331..687fadf1ef64c5ae7e00c5da15b82245
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index c5e32e0e1865cdbd81b9077038717dab4db46f4d..aa037b2fb2957be96db3d200294c41e43f6d820f 100644
|
||||
index 70c7596c3a652ec10a7b744ec9b7d3a736281836..eef92b08d29af3e77821da58ab1910f940bba6ae 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -2235,6 +2235,7 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -24,10 +24,10 @@ index 1af7e1548f0648890a1ef2fc0ff4e4c3a56c947c..decea1697c075e7549ccc7501c8e5935
|
||||
} else if (this.isFuel(itemstack1)) {
|
||||
if (!this.moveItemStackTo(itemstack1, 1, 2, false)) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
|
||||
index ce2c424068001eec16032361baa206f6a5aa5332..c02d638b8f117156c815821207a91c55796f00b2 100644
|
||||
index 08ff372334f32b9bfac2e7b7a405e43ecf0df959..d566924cc3f13475769d4c733ea8a77970dde527 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
|
||||
@@ -214,6 +214,22 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
|
||||
@@ -213,6 +213,22 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Cows naturally aggressive to players chance
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
index 8c908891c6c683332d8877ab3fa084a0849b17a9..541cc6c70178a430ac8e3ab8f6a2250b8ea1d964 100644
|
||||
index c519883f4ed3772378b5563401b8c557dc315ace..78f00014c034949b6559ca948b1b78fa90f45334 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
@@ -39,6 +39,7 @@ import org.bukkit.event.player.PlayerBucketFillEvent;
|
||||
@@ -37,6 +37,7 @@ import org.bukkit.event.player.PlayerBucketFillEvent;
|
||||
// CraftBukkit end
|
||||
|
||||
public class Cow extends Animal {
|
||||
@@ -16,7 +16,7 @@ index 8c908891c6c683332d8877ab3fa084a0849b17a9..541cc6c70178a430ac8e3ab8f6a2250b
|
||||
|
||||
private static final EntityDimensions BABY_DIMENSIONS = EntityType.COW.getDimensions().scale(0.5F).withEyeHeight(0.665F);
|
||||
|
||||
@@ -66,6 +67,7 @@ public class Cow extends Animal {
|
||||
@@ -64,6 +65,7 @@ public class Cow extends Animal {
|
||||
@Override
|
||||
public void initAttributes() {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.cowMaxHealth);
|
||||
@@ -24,7 +24,7 @@ index 8c908891c6c683332d8877ab3fa084a0849b17a9..541cc6c70178a430ac8e3ab8f6a2250b
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -78,11 +80,18 @@ public class Cow extends Animal {
|
||||
@@ -76,11 +78,18 @@ public class Cow extends Animal {
|
||||
return this.level().purpurConfig.cowTakeDamageFromWater;
|
||||
}
|
||||
|
||||
@@ -42,8 +42,8 @@ index 8c908891c6c683332d8877ab3fa084a0849b17a9..541cc6c70178a430ac8e3ab8f6a2250b
|
||||
+ this.goalSelector.addGoal(1, new net.minecraft.world.entity.ai.goal.MeleeAttackGoal(this, 1.2000000476837158D, true)); // Purpur
|
||||
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 1.25D, (itemstack) -> {
|
||||
return level().purpurConfig.cowFeedMushrooms > 0 && (itemstack.is(Blocks.RED_MUSHROOM.asItem()) || itemstack.is(Blocks.BROWN_MUSHROOM.asItem())) || itemstack.is(ItemTags.COW_FOOD); // Purpur
|
||||
@@ -91,6 +100,7 @@ public class Cow extends Animal {
|
||||
return level().purpurConfig.cowFeedMushrooms > 0 && (itemstack.is(net.minecraft.world.level.block.Blocks.RED_MUSHROOM.asItem()) || itemstack.is(net.minecraft.world.level.block.Blocks.BROWN_MUSHROOM.asItem())) || itemstack.is(ItemTags.COW_FOOD); // Purpur
|
||||
@@ -89,6 +98,7 @@ public class Cow extends Animal {
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
|
||||
this.goalSelector.addGoal(7, new RandomLookAroundGoal(this));
|
||||
@@ -51,7 +51,7 @@ index 8c908891c6c683332d8877ab3fa084a0849b17a9..541cc6c70178a430ac8e3ab8f6a2250b
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -99,7 +109,7 @@ public class Cow extends Animal {
|
||||
@@ -97,7 +107,7 @@ public class Cow extends Animal {
|
||||
}
|
||||
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
@@ -61,7 +61,7 @@ index 8c908891c6c683332d8877ab3fa084a0849b17a9..541cc6c70178a430ac8e3ab8f6a2250b
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index b1a941d2747ca93354c9abb67df8419114f27ff7..0edff6f99dbea98f0d80f2a48d52d86874430ff5 100644
|
||||
index 0c705b36e729b45e802770f4e21a7bfbc9919b86..d5e06e7510193239f4e085cb315f736636c690d5 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -1282,7 +1282,14 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -101,10 +101,10 @@ index 2343325fa9a771de7b9445cda24a2bcd7a7c1761..f0b6118a9995bb41836685bbf94d2e7f
|
||||
public ItemStack getBucketItemStack() {
|
||||
return new ItemStack(Items.COD_BUCKET);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
index 541242018890b688033159a72204fa0bd9db5387..4541e72bc93b19df6aecc781b4e381a7224aa4a7 100644
|
||||
index 78f00014c034949b6559ca948b1b78fa90f45334..97bdd48d8fa6b04e86f2db2be612dc8af1a4cb90 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
@@ -86,6 +86,11 @@ public class Cow extends Animal {
|
||||
@@ -84,6 +84,11 @@ public class Cow extends Animal {
|
||||
return super.finalizeSpawn(world, difficulty, spawnReason, entityData);
|
||||
}
|
||||
|
||||
@@ -133,10 +133,10 @@ index e539eefb6e6d3172611d1f9185a1138001481885..c1a9a87ef0fefc499c0e1edbe1031f47
|
||||
@Override
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
index ee691437da9571900039f90c1700cd33e31c03bc..124839f22ed0499ca395a648e858469d81d31f93 100644
|
||||
index 5807a498b910ad96d7e6f69db5241c925dcdb97c..80f897007a60eb0cb9d300207b50387e1b377379 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
@@ -199,6 +199,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -198,6 +198,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
return this.level().purpurConfig.foxTakeDamageFromWater;
|
||||
}
|
||||
|
||||
@@ -389,10 +389,10 @@ index b146ac72584d998cee4279133b3b19051fbf14c9..01dc59695f295657b1cd7bb015558bfc
|
||||
this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos...
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index 31b5d874fdc6f7d2eaabe877b32b64d360cb48e3..e1f6202df983be2510436538904a45beedbdc9c2 100644
|
||||
index 88f34f29f3d18fa0e3ba1ae1d7d983c66609c207..a8193ef23763a11016b9ac8c7dd55b9e240d6039 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -224,6 +224,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
@@ -222,6 +222,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
return this.level().purpurConfig.wolfTakeDamageFromWater;
|
||||
}
|
||||
|
||||
@@ -613,10 +613,10 @@ index b029cff4f64c8cb146b2a23fa5d497c8d27134db..76a0bc9bd6033f1c66e940392f5bed36
|
||||
protected SoundEvent getHurtSound(DamageSource source) {
|
||||
return SoundEvents.CREEPER_HURT;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
index 2547ac49721e2840da2845076d5e62a1465a4ea3..15afee3c4f6307557321424560d2340e23cd472b 100644
|
||||
index b3a79dc4357ad4392101353fbc99aac1b068c172..d1197b313f16f43f60ed242081a6164026e3c6a7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
@@ -119,6 +119,11 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
@@ -118,6 +118,11 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
return level().purpurConfig.drownedJockeyTryExistingChickens;
|
||||
}
|
||||
|
||||
@@ -709,10 +709,10 @@ index 96f7c8fb4e49e7640aaa1adb466d67fc887a2dc5..a25c82be45e3db5143f6bf617fedc2fa
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
index 47e403a5986f77dbb3833acb9a3ea59e5c3740c6..5c2881d0be519c52cbba74d7b7ca3ea9b4536463 100644
|
||||
index 7ede13f462e2641de63104ba34cdea03d008d33c..eab74acdcc644aa844d3daceee2d568e4f247428 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
@@ -77,6 +77,11 @@ public class Giant extends Monster {
|
||||
@@ -54,6 +54,11 @@ public class Giant extends Monster {
|
||||
return this.level().purpurConfig.giantTakeDamageFromWater;
|
||||
}
|
||||
|
||||
@@ -837,10 +837,10 @@ index ea9714b561d2cccad3ce012a118d200100ccd1e8..9551bd7c9bed37cf17910e7f71b82ed2
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
index 53fd94915d8447f562b2b2b2168b6a3765bf873e..5e2a47d910f4bd2cd28008fcf5063cb3dd41da90 100644
|
||||
index 39b980eeb863fda008259a4b52e39393903b4e9c..eb2ccb04494b8079185d649ecf1aef6356ee73f6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
@@ -141,6 +141,11 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
|
||||
@@ -137,6 +137,11 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
|
||||
return super.mobInteract(player, hand);
|
||||
}
|
||||
|
||||
|
||||
@@ -898,10 +898,10 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..d3ec817e95628f1fc8be4a29c9a0f13c
|
||||
// Paper end - add timings for scoreboard search
|
||||
}
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index a8fc07e06039e1418e020f7c1ad2cd36b9b94eb4..de2b469f06f6679aed1d20156052bfbef5e7c30b 100644
|
||||
index 2ed85c0aa7d3053e338927fa308b86bcbf9eb7b6..f7644c5045b1accae4c0aaf44df26286c6cc5125 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -168,7 +168,7 @@ public class ActivationRange
|
||||
@@ -167,7 +167,7 @@ public class ActivationRange
|
||||
*/
|
||||
public static void activateEntities(Level world)
|
||||
{
|
||||
@@ -910,7 +910,7 @@ index a8fc07e06039e1418e020f7c1ad2cd36b9b94eb4..de2b469f06f6679aed1d20156052bfbe
|
||||
final int miscActivationRange = world.spigotConfig.miscActivationRange;
|
||||
final int raiderActivationRange = world.spigotConfig.raiderActivationRange;
|
||||
final int animalActivationRange = world.spigotConfig.animalActivationRange;
|
||||
@@ -228,7 +228,7 @@ public class ActivationRange
|
||||
@@ -227,7 +227,7 @@ public class ActivationRange
|
||||
}
|
||||
// Paper end
|
||||
}
|
||||
|
||||
@@ -859,7 +859,7 @@ index a5566e52d839191add236a6ff7245d1b7617fc37..375d1532d267f4fbc735eede99eddc6f
|
||||
this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities()));
|
||||
playerlist.sendLevelInfo(this, worldserver);
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index 26ccb217b846410c826cb1da017b45903d9c5469..b82a72775f9de5ad65ae46a8b97f93a7ef852265 100644
|
||||
index a30435cdc62d4947596b9cee3b114f7cb1349769..dcc3cb2c476831d6093928ce0a14424634b100ec 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -265,7 +265,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
@@ -1322,10 +1322,10 @@ index ceb420d3b9c5d3050b0d72ae612b8003d562202a..05644dd1872d8b558ed64f74fc8699d6
|
||||
// Purpur start
|
||||
if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 3486c6782f9bbb3477d2fefd1e0a363a5326999f..6cb17876fc0efaf15ab9f54e4c95b9b858b0a5ee 100644
|
||||
index 2fa19bf199eb7736a97737e0712fd300d04d35fc..174117898f349f83810d45152ca96ececa2a5be5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -376,13 +376,13 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -375,13 +375,13 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@Override
|
||||
public void baseTick() {
|
||||
super.baseTick();
|
||||
@@ -1341,7 +1341,7 @@ index 3486c6782f9bbb3477d2fefd1e0a363a5326999f..6cb17876fc0efaf15ab9f54e4c95b9b8
|
||||
incrementTicksSinceLastInteraction(); // Purpur
|
||||
}
|
||||
|
||||
@@ -747,7 +747,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -746,7 +746,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@Override
|
||||
public void aiStep() {
|
||||
super.aiStep();
|
||||
@@ -1350,7 +1350,7 @@ index 3486c6782f9bbb3477d2fefd1e0a363a5326999f..6cb17876fc0efaf15ab9f54e4c95b9b8
|
||||
if (!this.level().isClientSide && this.canPickUpLoot() && this.isAlive() && !this.dead && (this.level().purpurConfig.entitiesPickUpLootBypassMobGriefing || this.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) {
|
||||
Vec3i baseblockposition = this.getPickupReach();
|
||||
List<ItemEntity> list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ()));
|
||||
@@ -767,7 +767,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -766,7 +766,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1359,7 +1359,7 @@ index 3486c6782f9bbb3477d2fefd1e0a363a5326999f..6cb17876fc0efaf15ab9f54e4c95b9b8
|
||||
}
|
||||
|
||||
protected Vec3i getPickupReach() {
|
||||
@@ -992,44 +992,44 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -991,44 +991,44 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
return;
|
||||
}
|
||||
// Paper end - Allow nerfed mobs to jump and float
|
||||
|
||||
Reference in New Issue
Block a user