API
You can add your own items using my plugin! (Since Recode)
Example:
Main:
package Test; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import ykt.BeYkeRYkt.BkrTorchLight.Recode.BTL; import ykt.BeYkeRYkt.BkrTorchLight.Recode.Manager.ItemLightManager; public class Main extends JavaPlugin implements Listener{ public ItemLightManager manager = new ItemLightManager(); public TorchLight tl = new TorchLight(); @Override public void onEnable() { manager.addLightSource(tl); manager.setEnabled(tl, true); BTL plugin = (BTL) Bukkit.getPluginManager().getPlugin("BkrTorchLight"); plugin.registerListener(this); } @EventHandler public void onPlayerChat(PlayerChatEvent event){ Player player = event.getPlayer(); if(event.getMessage().equals("Light")){ manager.createLight(player.getLocation(), tl, player, 15); } } }
Item:
package Test; import java.util.ArrayList; import java.util.List; import net.minecraft.server.v1_5_R3.EntityPlayer; import net.minecraft.server.v1_5_R3.EnumSkyBlock; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.craftbukkit.v1_5_R3.CraftWorld; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import ykt.BeYkeRYkt.BkrTorchLight.Recode.Chunks; import ykt.BeYkeRYkt.BkrTorchLight.Recode.Manager.ItemType;; public class TorchLight implements ItemType{ private Main plugin; public String name = "TorchLightTEST"; public boolean enable; //Light public TorchLight(){ } @Override public void createLightSource(Location toPlayerLocation, Player player, int level) { CraftWorld cWorld = (CraftWorld)toPlayerLocation.getWorld(); int xNew = toPlayerLocation.getBlockX(); int yNew = toPlayerLocation.getBlockY() + 2; int zNew = toPlayerLocation.getBlockZ(); int lightLevel = level; cWorld.getHandle().b(EnumSkyBlock.BLOCK, xNew, yNew, zNew, lightLevel); Location newSource = new Location(cWorld, xNew, yNew-1, zNew); Material blockMaterial = newSource.getBlock().getType(); byte blockData = newSource.getBlock().getData(); newSource.getBlock().setType(blockMaterial); newSource.getBlock().setData(blockData); Chunks.sendClientChanges(); } @Override public void createLightSource(Player player, int level) { CraftWorld cWorld = (CraftWorld)player.getWorld(); Location playerLocation = player.getLocation().getBlock().getLocation(); int xNew = playerLocation.getBlockX(); int yNew = playerLocation.getBlockY() + 2; int zNew = playerLocation.getBlockZ(); int lightLevel = level; cWorld.getHandle().b(EnumSkyBlock.BLOCK, xNew , yNew, zNew, lightLevel); Location newSource = new Location(cWorld, xNew, yNew+1, zNew); Material blockMaterial = newSource.getBlock().getType(); byte blockData = newSource.getBlock().getData(); newSource.getBlock().setType(blockMaterial); newSource.getBlock().setData(blockData); Chunks.sendClientChanges(); } @Override public void deleteLightSource(Location fromPlayerLocation, Player player) { CraftWorld cWorld = (CraftWorld)fromPlayerLocation.getWorld(); int xPrevious = fromPlayerLocation.getBlockX(); int yPrevious = fromPlayerLocation.getBlockY() + 2; int zPrevious = fromPlayerLocation.getBlockZ(); Location previousSource = new Location(cWorld, xPrevious, yPrevious, zPrevious); Material blockMaterial = previousSource.getBlock().getType(); byte blockData = previousSource.getBlock().getData(); previousSource.getBlock().setType(blockMaterial); previousSource.getBlock().setData(blockData); Chunks.sendClientChanges(); } @Override public void deleteLightSource(Player player) { CraftWorld cWorld = (CraftWorld)player.getWorld(); Location playerLocation = player.getLocation().getBlock().getLocation(); int xPrevious = playerLocation.getBlockX(); int yPrevious = playerLocation.getBlockY() + 2; int zPrevious = playerLocation.getBlockZ(); Location previousSource = new Location(cWorld, xPrevious, yPrevious, zPrevious); Material blockMaterial = previousSource.getBlock().getType(); byte blockData = previousSource.getBlock().getData(); previousSource.getBlock().setType(blockMaterial); previousSource.getBlock().setData(blockData); Chunks.sendClientChanges(); } @Override public String getName() { return name; } @Override public boolean isEnabled() { return this.enable; } @Override public void setEnabled(boolean enable) { this.enable = enable; } }
Comments