SPIGOT-4496: Undeprecate MapView.getId and make int

This commit is contained in:
md_5 2018-11-23 11:50:48 +11:00
parent ec937d0e07
commit b4ee04baae
2 changed files with 11 additions and 2 deletions

View File

@ -31,11 +31,12 @@ public final class CraftMapView implements MapView {
addRenderer(new CraftMapRenderer(this, worldMap));
}
public short getId() {
@Override
public int getId() {
String text = worldMap.getId();
if (text.startsWith("map_")) {
try {
return Short.parseShort(text.substring("map_".length()));
return Integer.parseInt(text.substring("map_".length()));
}
catch (NumberFormatException ex) {
throw new IllegalStateException("Map has non-numeric ID");

View File

@ -199,6 +199,14 @@ public class Commodore
@Override
public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf)
{
// SPIGOT-4496
if ( owner.equals( "org/bukkit/map/MapView" ) && name.equals( "getId" ) && desc.equals( "()S" ) )
{
// Should be same size on stack so just call other method
super.visitMethodInsn( opcode, owner, name, "()I", itf );
return;
}
if ( modern )
{
if ( owner.equals( "org/bukkit/Material" ) )