World#spawnArrow should return an AbstractArrow now

This commit is contained in:
md_5 2019-04-30 21:31:08 +10:00
parent 29b90d2410
commit dadc539211
2 changed files with 8 additions and 2 deletions

View file

@ -521,12 +521,12 @@ public class CraftWorld implements World {
}
@Override
public Arrow spawnArrow(Location loc, Vector velocity, float speed, float spread) {
public AbstractArrow spawnArrow(Location loc, Vector velocity, float speed, float spread) {
return spawnArrow(loc, velocity, speed, spread, Arrow.class);
}
@Override
public <T extends Arrow> T spawnArrow(Location loc, Vector velocity, float speed, float spread, Class<T> clazz) {
public <T extends AbstractArrow> T spawnArrow(Location loc, Vector velocity, float speed, float spread, Class<T> clazz) {
Validate.notNull(loc, "Can not spawn arrow with a null location");
Validate.notNull(velocity, "Can not spawn arrow with a null velocity");
Validate.notNull(clazz, "Can not spawn an arrow with no class");

View file

@ -235,6 +235,12 @@ public class Commodore
super.visitMethodInsn( opcode, owner, name, "(I)Lorg/bukkit/map/MapView;", itf );
return;
}
if ( owner.equals( "org/bukkit/World" ) && name.equals( "spawnArrow" ) )
{
// Should be same size on stack so just call other method
super.visitMethodInsn( opcode, owner, name, desc.replace( "Lorg/bukkit/entity/Arrow;", "Lorg/bukkit/entity/AbstractArrow;" ), itf );
return;
}
if ( modern )
{