fixed mapping of Art <-> EnumArt in Paintings
Dieser Commit ist enthalten in:
Ursprung
7d153a9f58
Commit
8c02599256
74
src/main/java/org/bukkit/craftbukkit/CraftArt.java
Normale Datei
74
src/main/java/org/bukkit/craftbukkit/CraftArt.java
Normale Datei
@ -0,0 +1,74 @@
|
||||
package org.bukkit.craftbukkit;
|
||||
|
||||
import net.minecraft.server.EnumArt;
|
||||
import org.bukkit.Art;
|
||||
|
||||
// Safety class, will break if either side changes
|
||||
public class CraftArt {
|
||||
public static Art NotchToBukkit(EnumArt art) {
|
||||
switch (art) {
|
||||
case KEBAB: return Art.KEBAB;
|
||||
case AZTEC: return Art.AZTEC;
|
||||
case ALBAN: return Art.ALBAN;
|
||||
case AZTEC2: return Art.AZTEC2;
|
||||
case BOMB: return Art.BOMB;
|
||||
case PLANT: return Art.PLANT;
|
||||
case WASTELAND: return Art.WASTELAND;
|
||||
case POOL: return Art.POOL;
|
||||
case COURBET: return Art.COURBET;
|
||||
case SEA: return Art.SEA;
|
||||
case SUNSET: return Art.SUNSET;
|
||||
case CREEBET: return Art.CREEBET;
|
||||
case WANDERER: return Art.WANDERER;
|
||||
case GRAHAM: return Art.GRAHAM;
|
||||
case MATCH: return Art.MATCH;
|
||||
case BUST: return Art.BUST;
|
||||
case STAGE: return Art.STAGE;
|
||||
case VOID: return Art.VOID;
|
||||
case SKULL_AND_ROSES: return Art.SKULL_AND_ROSES;
|
||||
case FIGHTERS: return Art.FIGHTERS;
|
||||
case POINTER: return Art.POINTER;
|
||||
case PIGSCENE: return Art.PIGSCENE;
|
||||
case BURNINGSKULL: return Art.BURNINGSKULL;
|
||||
case SKELETON: return Art.SKELETON;
|
||||
case DONKEYKONG: return Art.DONKEYKONG;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static EnumArt BukkitToNotch(Art art) {
|
||||
switch (art) {
|
||||
case KEBAB: return EnumArt.KEBAB;
|
||||
case AZTEC: return EnumArt.AZTEC;
|
||||
case ALBAN: return EnumArt.ALBAN;
|
||||
case AZTEC2: return EnumArt.AZTEC2;
|
||||
case BOMB: return EnumArt.BOMB;
|
||||
case PLANT: return EnumArt.PLANT;
|
||||
case WASTELAND: return EnumArt.WASTELAND;
|
||||
case POOL: return EnumArt.POOL;
|
||||
case COURBET: return EnumArt.COURBET;
|
||||
case SEA: return EnumArt.SEA;
|
||||
case SUNSET: return EnumArt.SUNSET;
|
||||
case CREEBET: return EnumArt.CREEBET;
|
||||
case WANDERER: return EnumArt.WANDERER;
|
||||
case GRAHAM: return EnumArt.GRAHAM;
|
||||
case MATCH: return EnumArt.MATCH;
|
||||
case BUST: return EnumArt.BUST;
|
||||
case STAGE: return EnumArt.STAGE;
|
||||
case VOID: return EnumArt.VOID;
|
||||
case SKULL_AND_ROSES: return EnumArt.SKULL_AND_ROSES;
|
||||
case FIGHTERS: return EnumArt.FIGHTERS;
|
||||
case POINTER: return EnumArt.POINTER;
|
||||
case PIGSCENE: return EnumArt.PIGSCENE;
|
||||
case BURNINGSKULL: return EnumArt.BURNINGSKULL;
|
||||
case SKELETON: return EnumArt.SKELETON;
|
||||
case DONKEYKONG: return EnumArt.DONKEYKONG;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
{
|
||||
assert (EnumArt.values().length == 25);
|
||||
assert (Art.values().length == 25);
|
||||
}
|
||||
}
|
@ -9,6 +9,7 @@ import net.minecraft.server.WorldServer;
|
||||
import org.bukkit.Art;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.craftbukkit.CraftArt;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
import org.bukkit.entity.Painting;
|
||||
@ -31,8 +32,7 @@ public class CraftPainting extends CraftEntity implements Painting {
|
||||
|
||||
public Art getArt() {
|
||||
EnumArt art = getHandle().e;
|
||||
// Since both EnumArt and Art have exactly the same enum constants, this works
|
||||
return Art.getByName(art.toString());
|
||||
return CraftArt.NotchToBukkit(art);
|
||||
}
|
||||
|
||||
public boolean setArt(Art art) {
|
||||
@ -42,7 +42,7 @@ public class CraftPainting extends CraftEntity implements Painting {
|
||||
public boolean setArt(Art art, boolean force) {
|
||||
EntityPainting painting = getHandle();
|
||||
EnumArt oldArt = painting.e;
|
||||
EnumArt newArt = EnumArt.valueOf(art.toString());
|
||||
EnumArt newArt = CraftArt.BukkitToNotch(art);
|
||||
painting.e = newArt;
|
||||
painting.b(painting.a);
|
||||
if(!force && !painting.i()) {
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren