diff options
author | Nate Mortensen <nate.richard.mortensen@gmail.com> | 2013-12-02 19:41:51 -0700 |
---|---|---|
committer | Nate Mortensen <nate.richard.mortensen@gmail.com> | 2013-12-02 21:03:57 -0700 |
commit | 39719fff74e7eb64842f5c2f243c1fea1d51659b (patch) | |
tree | f8d04f0a5c93f91b9a109d81d7311ec1cee698a8 /src/main/java/org | |
parent | a721fe8473ed5a7c0849231c6d155288fd3e8847 (diff) | |
download | craftbukkit-39719fff74e7eb64842f5c2f243c1fea1d51659b.tar craftbukkit-39719fff74e7eb64842f5c2f243c1fea1d51659b.tar.gz craftbukkit-39719fff74e7eb64842f5c2f243c1fea1d51659b.tar.lz craftbukkit-39719fff74e7eb64842f5c2f243c1fea1d51659b.tar.xz craftbukkit-39719fff74e7eb64842f5c2f243c1fea1d51659b.zip |
Maintain old setType method in WorldGenerator. Fixes BUKKIT-4915
WorldGenerator setType and setTypeAndData have their arguments changed to
add in support for CraftBlockChangeDelegate, which changes the method
signature. This change in the method signature breaks any WorldGenerators
that aren't modified to use CraftBlockChangeDelegate.
This commit fixes the issue by readding the old method and maintaining the
CraftBlockChangeDelegate method. This makes it so that there is a
compatible method for both CraftBlockChangeDelegate WorldGenerators and
unmodified WorldGenerators.
Additionally, this commit reduces and corrects the diffs in
WorldGenerator, moving the fix for layering violations to
CraftBlockChangeDelegate.
Diffstat (limited to 'src/main/java/org')
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/CraftBlockChangeDelegate.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftBlockChangeDelegate.java b/src/main/java/org/bukkit/craftbukkit/CraftBlockChangeDelegate.java index 470828a2..5946e7d0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftBlockChangeDelegate.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftBlockChangeDelegate.java @@ -1,6 +1,7 @@ package org.bukkit.craftbukkit; import net.minecraft.server.Block; +import net.minecraft.server.World; import org.bukkit.BlockChangeDelegate; @@ -19,8 +20,13 @@ public class CraftBlockChangeDelegate { return Block.e(this.delegate.getTypeId(x, y, z)); } - public void setTypeAndData(int x, int y, int z, Block block, int data, int light) { - delegate.setRawTypeIdAndData(x, y, z, Block.b(block), data); + public void setTypeAndData(int x, int y, int z, Block block, int data, int updateFlag) { + // Layering violation :( + if (delegate instanceof World) { + ((World) delegate).setTypeAndData(x, y, z, block, data, 2); + } else { + delegate.setRawTypeIdAndData(x, y, z, Block.b(block), data); + } } public boolean isEmpty(int x, int y, int z) { |