Files
CatServer/patches/net/minecraft/tileentity/TileEntity.java.patch
2018-07-20 01:14:44 +08:00

47 lines
1.8 KiB
Diff

--- ../src-base/minecraft/net/minecraft/tileentity/TileEntity.java
+++ ../src-work/minecraft/net/minecraft/tileentity/TileEntity.java
@@ -2,6 +2,7 @@
import com.google.common.collect.Maps;
import java.util.Map;
+import java.util.logging.Level;
import javax.annotation.Nullable;
import net.minecraft.block.Block;
import net.minecraft.block.BlockJukebox;
@@ -20,6 +21,8 @@
import net.minecraftforge.fml.relauncher.SideOnly;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.bukkit.inventory.InventoryHolder;
+import org.spigotmc.CustomTimingsHandler;
public abstract class TileEntity implements net.minecraftforge.common.capabilities.ICapabilitySerializable<NBTTagCompound>
{
@@ -32,6 +35,8 @@
private int blockMetadata = -1;
protected Block blockType;
+ public CustomTimingsHandler tickTimer = org.bukkit.craftbukkit.SpigotTimings.getTileEntityTimings(this); // Spigot
+
public static void addMapping(Class <? extends TileEntity > cl, String id)
{
if (nameToClassMap.containsKey(id))
@@ -537,4 +542,17 @@
addMapping(TileEntityEndGateway.class, "EndGateway");
addMapping(TileEntityCommandBlock.class, "Control");
}
+ // CraftBukkit start - add method
+ public InventoryHolder getOwner() {
+ if (worldObj == null) return null;
+ org.bukkit.block.Block block = worldObj.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ());
+ if(block == null){
+ org.bukkit.Bukkit.getLogger().log(Level.WARNING,"No block for owner at %s %d %d %d", new Object[]{worldObj.getWorld(),pos.getX(),pos.getY(),pos.getZ()});
+ return null;
+ }
+ org.bukkit.block.BlockState state = block.getState();
+ if (state instanceof InventoryHolder) return (InventoryHolder) state;
+ return null;
+ }
+ // CraftBukkit end
}