mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-15 04:05:50 -07:00
Implemented World.spawnBoat(), added CraftMappable interface that defines a method to get an org.bukkit.craftbukkit.CraftEntity from implementing net.minecart.server.Entity entities, changed CraftWorld.toCraftEntity() to use this new interface for boats and minecarts.
By: sk89q <the.sk89q@gmail.com>
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
package org.bukkit.craftbukkit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates that an object has a method to get its CraftBukkit-equivalent
|
||||||
|
* CraftEntity object from its Minecraft net.minecraft.server.Entity object.
|
||||||
|
*
|
||||||
|
* @author sk89q
|
||||||
|
*/
|
||||||
|
public interface CraftMappable {
|
||||||
|
/**
|
||||||
|
* Gets the CraftEntity version.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public CraftEntity getCraftEntity();
|
||||||
|
}
|
@@ -7,6 +7,7 @@ import java.util.Map;
|
|||||||
import net.minecraft.server.EntityMinecart;
|
import net.minecraft.server.EntityMinecart;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import net.minecraft.server.EntityBoat;
|
||||||
import net.minecraft.server.EntityEgg;
|
import net.minecraft.server.EntityEgg;
|
||||||
import net.minecraft.server.EntityLiving;
|
import net.minecraft.server.EntityLiving;
|
||||||
import net.minecraft.server.EntityPlayerMP;
|
import net.minecraft.server.EntityPlayerMP;
|
||||||
@@ -18,6 +19,7 @@ import net.minecraft.server.WorldServer;
|
|||||||
import net.minecraft.server.WorldGenTrees;
|
import net.minecraft.server.WorldGenTrees;
|
||||||
import org.bukkit.Arrow;
|
import org.bukkit.Arrow;
|
||||||
import org.bukkit.Block;
|
import org.bukkit.Block;
|
||||||
|
import org.bukkit.Boat;
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Minecart;
|
import org.bukkit.Minecart;
|
||||||
@@ -144,6 +146,13 @@ public class CraftWorld implements World {
|
|||||||
return new CraftPoweredMinecart(world.getServer(), minecart);
|
return new CraftPoweredMinecart(world.getServer(), minecart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Boat spawnBoat(Location loc) {
|
||||||
|
EntityBoat boat =
|
||||||
|
new EntityBoat(world, loc.getX(), loc.getY(), loc.getZ());
|
||||||
|
world.a(boat);
|
||||||
|
return new CraftBoat(world.getServer(), boat);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean generateTree(Location loc) {
|
public boolean generateTree(Location loc) {
|
||||||
WorldGenTrees treeGen = new WorldGenTrees();
|
WorldGenTrees treeGen = new WorldGenTrees();
|
||||||
return treeGen.a(world, rand,
|
return treeGen.a(world, rand,
|
||||||
@@ -165,18 +174,12 @@ public class CraftWorld implements World {
|
|||||||
return new CraftPlayer(world.getServer(), (EntityPlayerMP)entity);
|
return new CraftPlayer(world.getServer(), (EntityPlayerMP)entity);
|
||||||
} else if (entity instanceof EntitySnowball) {
|
} else if (entity instanceof EntitySnowball) {
|
||||||
return new CraftSnowball(world.getServer(), (EntitySnowball)entity);
|
return new CraftSnowball(world.getServer(), (EntitySnowball)entity);
|
||||||
} else if (entity instanceof EntityMinecart) {
|
|
||||||
EntityMinecart minecart = (EntityMinecart)entity;
|
|
||||||
if (minecart.minecart != null) {
|
|
||||||
return minecart.minecart;
|
|
||||||
}
|
|
||||||
|
|
||||||
return CraftMinecart.getCraftMinecart(world.getServer(),
|
|
||||||
(EntityMinecart)entity);
|
|
||||||
} else if (entity instanceof EntityPlayer) {
|
} else if (entity instanceof EntityPlayer) {
|
||||||
return new CraftHumanEntity(world.getServer(), (EntityPlayer)entity);
|
return new CraftHumanEntity(world.getServer(), (EntityPlayer)entity);
|
||||||
} else if (entity instanceof EntityLiving) {
|
} else if (entity instanceof EntityLiving) {
|
||||||
return new CraftLivingEntity(world.getServer(), (EntityLiving)entity);
|
return new CraftLivingEntity(world.getServer(), (EntityLiving)entity);
|
||||||
|
} else if (entity instanceof CraftMappable) {
|
||||||
|
return ((CraftMappable)entity).getCraftEntity();
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user