From b550c3d13b8fec67ae07928e772475624ccf31be Mon Sep 17 00:00:00 2001 From: gsand Date: Sun, 8 Mar 2015 04:10:02 -0500 Subject: [PATCH] Configurable game mechanics changes diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java index f6a43c0..0e6f8c0 100644 --- a/src/main/java/net/minecraft/server/EntityBoat.java +++ b/src/main/java/net/minecraft/server/EntityBoat.java @@ -340,13 +340,7 @@ public class EntityBoat extends Entity { if (!destroyEvent.isCancelled()) { this.die(); if (this.world.getGameRules().getBoolean("doEntityDrops")) { - for (k = 0; k < 3; ++k) { - this.a(Item.getItemOf(Blocks.PLANKS), 1, 0.0F); - } - - for (k = 0; k < 2; ++k) { - this.a(Items.STICK, 1, 0.0F); - } + breakNaturally(); // PaperSpigot } } // CraftBukkit end } @@ -451,15 +445,7 @@ public class EntityBoat extends Entity { if (!destroyEvent.isCancelled()) { this.die(); if (this.world.getGameRules().getBoolean("doEntityDrops")) { - int i; - - for (i = 0; i < 3; ++i) { - this.a(Item.getItemOf(Blocks.PLANKS), 1, 0.0F); - } - - for (i = 0; i < 2; ++i) { - this.a(Items.STICK, 1, 0.0F); - } + breakNaturally(); // PaperSpigot } } // CraftBukkit end } @@ -495,4 +481,21 @@ public class EntityBoat extends Entity { public int m() { return this.datawatcher.getInt(18); } + + /** + * PaperSpigot - Handles boat drops depending on the user's config setting + */ + public void breakNaturally() { + if (this.world.paperSpigotConfig.boatsDropBoats) { + this.a(Items.BOAT, 1, 0.0F); + } else { + for (int k = 0; k < 3; ++k) { + this.a(Item.getItemOf(Blocks.PLANKS), 1, 0.0F); + } + + for (int k = 0; k < 2; ++k) { + this.a(Items.STICK, 1, 0.0F); + } + } + } } diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java index 4596616..a6d444b 100644 --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java @@ -190,4 +190,10 @@ public class PaperSpigotWorldConfig removeUnloadedTNTEntities = getBoolean( "remove-unloaded.tnt-entities", true ); removeUnloadedFallingBlocks = getBoolean( "remove-unloaded.falling-blocks", true ); } + + public boolean boatsDropBoats; + private void mechanicsChanges() + { + boatsDropBoats = getBoolean( "game-mechanics.boats-drop-boats", false ); + } } -- 2.7.0