Add config options for snowman's pumpkin

This commit is contained in:
William Blake Galbreath
2019-05-19 06:44:58 -05:00
parent 74a7f40ad7
commit c1f1b14ecf
4 changed files with 58 additions and 28 deletions

View File

@@ -1,17 +1,25 @@
From fccb0a779a6fcf0809341268d16dbaa072999566 Mon Sep 17 00:00:00 2001
From 84f371a48a082ec8dbc2469d3e750876617509fe Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 3 May 2019 23:58:44 -0500
Subject: [PATCH] Snowman set pumpkin on/off by player interaction
---
.../net/minecraft/server/EntitySnowman.java | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
.../net/minecraft/server/EntitySnowman.java | 20 ++++++++++++++++++-
.../java/net/pl3x/purpur/PurpurConfig.java | 7 +++++++
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
index 8677f0818..c13dfc6cc 100644
index 8677f0818..fb36306b9 100644
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
@@ -8,6 +8,7 @@ import org.bukkit.event.player.PlayerShearEntityEvent;
@@ -2,12 +2,14 @@ package net.minecraft.server;
import javax.annotation.Nullable;
// CraftBukkit start
+import net.pl3x.purpur.PurpurConfig;
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.event.player.PlayerShearEntityEvent;
// CraftBukkit end
public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -19,7 +27,7 @@ index 8677f0818..c13dfc6cc 100644
private static final DataWatcherObject<Byte> b = DataWatcher.a(EntitySnowman.class, DataWatcherRegistry.a);
public EntitySnowman(EntityTypes<? extends EntitySnowman> entitytypes, World world) {
@@ -112,7 +113,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -112,7 +114,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
protected boolean a(EntityHuman entityhuman, EnumHand enumhand) {
ItemStack itemstack = entityhuman.b(enumhand);
@@ -28,18 +36,20 @@ index 8677f0818..c13dfc6cc 100644
// CraftBukkit start
PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity());
this.world.getServer().getPluginManager().callEvent(event);
@@ -126,6 +127,20 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -126,6 +128,22 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
itemstack.damage(1, entityhuman, (entityhuman1) -> {
entityhuman1.d(enumhand);
});
+
+ // Purpur start
+ EntityItem pumpkin = new EntityItem(world, locX, locY, locZ, new ItemStack(Blocks.PUMPKIN.getItem()));
+ pumpkin.pickupDelay = 10;
+ world.addEntity(pumpkin);
+ if (PurpurConfig.snowmanDropsPumpkin) {
+ EntityItem pumpkin = new EntityItem(world, locX, locY, locZ, new ItemStack(Blocks.PUMPKIN.getItem()));
+ pumpkin.pickupDelay = 10;
+ world.addEntity(pumpkin);
+ }
+ return true;
+ }} else {
+ if (PUMPKIN.test(itemstack)) {
+ if (PurpurConfig.snowmanPumpkinPutBack && PUMPKIN.test(itemstack)) {
+ setHasPumpkin(true);
+ if (!entityhuman.abilities.canInstantlyBuild) {
+ itemstack.subtract(1);
@@ -49,6 +59,22 @@ index 8677f0818..c13dfc6cc 100644
}
return super.a(entityhuman, enumhand);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 88835089c..8f3367ae1 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -107,4 +107,11 @@ public class PurpurConfig {
private static void cowsSettings() {
feedMushroomsToCows = getInt("settings.mobs.cow.feed-mushrooms-for-mooshroom", feedMushroomsToCows);
}
+
+ public static boolean snowmanDropsPumpkin = true;
+ public static boolean snowmanPumpkinPutBack = true;
+ private static void snowmansSettings() {
+ snowmanDropsPumpkin = getBoolean("settings.mobs.snow_golem.drops-pumpkin-when-sheared", snowmanDropsPumpkin);
+ snowmanPumpkinPutBack = getBoolean("settings.mobs.snow_golem.pumpkin-can-be-added-back", snowmanPumpkinPutBack);
+ }
}
--
2.20.1

View File

@@ -1,4 +1,4 @@
From 3ad2b56f69e8fe52b9820dd5366d30389a202651 Mon Sep 17 00:00:00 2001
From f9ce19e5fc6f8f23906c90d87730d4fbb72b803c Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 30 Apr 2019 19:17:21 -0500
Subject: [PATCH] Integrate ridables
@@ -857,10 +857,10 @@ index e28c0673d..f88cd9e94 100644
this.setMot(vec3d.x, 0.41999998688697815D, vec3d.z);
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
index c13dfc6cc..fca5fde34 100644
index fb36306b9..fb6287f50 100644
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
@@ -74,6 +74,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -75,6 +75,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
return;
}

View File

@@ -1,4 +1,4 @@
From 09b27be73afdc7b7caa83fbe80a5e2b963faa628 Mon Sep 17 00:00:00 2001
From 0bc10c468cdf8d88d2569bd702d5e4827d4ec82e Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 10 May 2019 19:17:36 -0500
Subject: [PATCH] Add config to suppress specific log outputs
@@ -35,21 +35,23 @@ index 3ed12672e..d82102bd8 100644
WorldServer.LOGGER.error("Deleting duplicate entity {}", entity); // CraftBukkit // paper
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 88835089c..b74868b9c 100644
index 8f3367ae1..d552076b3 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -107,4 +107,11 @@ public class PurpurConfig {
private static void cowsSettings() {
feedMushroomsToCows = getInt("settings.mobs.cow.feed-mushrooms-for-mooshroom", feedMushroomsToCows);
@@ -103,6 +103,13 @@ public class PurpurConfig {
return config.getString(path, config.getString(path));
}
+
+ public static boolean showDuplicateEntityUUIDErrors = true;
+ public static boolean showUnknownAttributeWarnings = true;
+ private static void loggerSettings() {
+ showDuplicateEntityUUIDErrors = getBoolean("settings.logger.show-duplicate-entity-uuid-errors", showDuplicateEntityUUIDErrors);
+ showUnknownAttributeWarnings = getBoolean("settings.logger.show-unknown-attribute-warnings", showUnknownAttributeWarnings);
+ }
}
+
public static int feedMushroomsToCows = 5;
private static void cowsSettings() {
feedMushroomsToCows = getInt("settings.mobs.cow.feed-mushrooms-for-mooshroom", feedMushroomsToCows);
--
2.20.1

View File

@@ -1,4 +1,4 @@
From 59d40521715a6724ac7f4ca690d07bedf5acad85 Mon Sep 17 00:00:00 2001
From 79319fa688c3b43d63b2ed5a1c7d427995bcf970 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 12 May 2019 00:43:12 -0500
Subject: [PATCH] Make giants naturally spawn and have AI
@@ -106,21 +106,23 @@ index 19b8312f2..b58b681a9 100644
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index b74868b9c..f7d24f18a 100644
index d552076b3..d7236ebd6 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -114,4 +114,11 @@ public class PurpurConfig {
showDuplicateEntityUUIDErrors = getBoolean("settings.logger.show-duplicate-entity-uuid-errors", showDuplicateEntityUUIDErrors);
showUnknownAttributeWarnings = getBoolean("settings.logger.show-unknown-attribute-warnings", showUnknownAttributeWarnings);
@@ -115,6 +115,13 @@ public class PurpurConfig {
feedMushroomsToCows = getInt("settings.mobs.cow.feed-mushrooms-for-mooshroom", feedMushroomsToCows);
}
+
+ public static boolean giantsNaturallySpawn = true;
+ public static boolean giantsHaveAI = true;
+ private static void giantsSettings() {
+ giantsNaturallySpawn = getBoolean("settings.mobs.giant.naturally-spawn", giantsNaturallySpawn);
+ giantsHaveAI = getBoolean("settings.mobs.giant.have-ai", giantsHaveAI);
+ }
}
+
public static boolean snowmanDropsPumpkin = true;
public static boolean snowmanPumpkinPutBack = true;
private static void snowmansSettings() {
--
2.20.1