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.Art;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
|
import org.bukkit.craftbukkit.CraftArt;
|
||||||
import org.bukkit.craftbukkit.CraftServer;
|
import org.bukkit.craftbukkit.CraftServer;
|
||||||
import org.bukkit.craftbukkit.CraftWorld;
|
import org.bukkit.craftbukkit.CraftWorld;
|
||||||
import org.bukkit.entity.Painting;
|
import org.bukkit.entity.Painting;
|
||||||
@ -31,8 +32,7 @@ public class CraftPainting extends CraftEntity implements Painting {
|
|||||||
|
|
||||||
public Art getArt() {
|
public Art getArt() {
|
||||||
EnumArt art = getHandle().e;
|
EnumArt art = getHandle().e;
|
||||||
// Since both EnumArt and Art have exactly the same enum constants, this works
|
return CraftArt.NotchToBukkit(art);
|
||||||
return Art.getByName(art.toString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean setArt(Art art) {
|
public boolean setArt(Art art) {
|
||||||
@ -42,7 +42,7 @@ public class CraftPainting extends CraftEntity implements Painting {
|
|||||||
public boolean setArt(Art art, boolean force) {
|
public boolean setArt(Art art, boolean force) {
|
||||||
EntityPainting painting = getHandle();
|
EntityPainting painting = getHandle();
|
||||||
EnumArt oldArt = painting.e;
|
EnumArt oldArt = painting.e;
|
||||||
EnumArt newArt = EnumArt.valueOf(art.toString());
|
EnumArt newArt = CraftArt.BukkitToNotch(art);
|
||||||
painting.e = newArt;
|
painting.e = newArt;
|
||||||
painting.b(painting.a);
|
painting.b(painting.a);
|
||||||
if(!force && !painting.i()) {
|
if(!force && !painting.i()) {
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren