I need help with this new minecraft/bukkit plugin. I keep getting an error when I export. I need your help to tell me what I am doing wrong! [Plugin Name = BadBlock] This plugin will disable users to place specific blocks. Here is the classes! BadBlock.java [errors] package me.Dent009.BadBlock; import java.util.logging.Logger; import org.bukkit.event.Event; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; public class BadBlock extends JavaPlugin { public static BadBlock plugin; public final Logger logger = Logger.getLogger("Minecraft"); public final MyBlockListener BlockListener = new MyBlockListener(this); <------ERROR public void onDisable() { PluginDescriptionFile pdfFile = this.getDescription(); this.logger.info(pdfFile.getName() + " is now disabled "); } public void onEnable() { PluginDescriptionFile pdfFile = this.getDescription(); this.logger.info(pdfFile.getName() + " is now enabled! "); } <---------ERROR -----------------------------------------------------LINEBREAK [not in real code]---------------------------------------------- MyBlockListener.java[this has no errors.] package me.Dent009.BadBlock; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockPlaceEvent; public class MyBlockListener implements Listener { public static BadBlock plugin; public static Material[] placedBlacklist = {Material.TNT, Material.LAVA_BUCKET, Material.LAVA}; public static Material[] destroyedBlacklist = {Material.TNT, Material.GLOWSTONE}; public MyBlockListener(BadBlock instance) { plugin = instance; } public void onBlockPlace (BlockPlaceEvent event) { Material block = event.getBlock().getType(); Player player = event.getPlayer(); for (Material blockedBlock : placedBlacklist) { if(blockedBlock == block) { player.sendMessage(ChatColor.AQUA + " No! That is a BadBlock! " + player.getDisplayName()); event.setCancelled(true); } } } public void onBlockBreak (BlockBreakEvent event) { Material block = event.getBlock().getType(); Player player = event.getPlayer(); for (Material blockedBlock : destroyedBlacklist) { if(blockedBlock == block) { player.sendMessage(ChatColor.AQUA + " No! That is a BadBlock! " + player.getDisplayName()); event.setCancelled(true); } } } public void onBlockIgnite(BlockIgniteEvent event) { Player player = event.getPlayer(); player.sendMessage(ChatColor.AQUA + " No! That is a BadBlock! " + player.getDisplayName()); event.setCancelled(true); } }
1) This should have been in Plugin Development 2) Change to the following (Commented what i changed) Main Code:java package me.Dent009.BadBlock; import java.util.logging.Logger; import org.bukkit.plugin.PluginDescriptionFile;import org.bukkit.plugin.java.JavaPlugin; public class BadBlock extends JavaPlugin { // Removed plugin variable, not needed public Logger logger = Logger.getLogger("Minecraft"); // Removed final modifier public MyBlockListener BlockListener; // Added rest to onEnable method public void onDisable() { PluginDescriptionFile pdfFile = this.getDescription(); this.logger.info(pdfFile.getName() + " is now disabled "); } public void onEnable() { PluginDescriptionFile pdfFile = this.getDescription(); this.logger.info(pdfFile.getName() + " is now enabled! "); BlockListener = new MyBlockListener(this); }} Listener Code:java package me.Dent009.BadBlock; import org.bukkit.ChatColor;import org.bukkit.Material;import org.bukkit.entity.Player;import org.bukkit.event.Listener;import org.bukkit.event.block.BlockBreakEvent;import org.bukkit.event.block.BlockIgniteEvent;import org.bukkit.event.block.BlockPlaceEvent; public class MyBlockListener implements Listener { public BadBlock plugin; // Removed static modifier public static Material[] placedBlacklist = { Material.TNT, Material.LAVA_BUCKET, Material.LAVA }; public static Material[] destroyedBlacklist = { Material.TNT, Material.GLOWSTONE }; public MyBlockListener(BadBlock instance) { plugin = instance; } public void onBlockPlace(BlockPlaceEvent event) { Material block = event.getBlock().getType(); Player player = event.getPlayer(); for (Material blockedBlock : placedBlacklist) { if (blockedBlock == block) { player.sendMessage(ChatColor.AQUA + " No! That is a BadBlock! " + player.getDisplayName()); event.setCancelled(true); } } } public void onBlockBreak(BlockBreakEvent event) { Material block = event.getBlock().getType(); Player player = event.getPlayer(); for (Material blockedBlock : destroyedBlacklist) { if (blockedBlock == block) { player.sendMessage(ChatColor.AQUA + " No! That is a BadBlock! " + player.getDisplayName()); event.setCancelled(true); } } } public void onBlockIgnite(BlockIgniteEvent event) { Player player = event.getPlayer(); player.sendMessage(ChatColor.AQUA + " No! That is a BadBlock! " + player.getDisplayName()); event.setCancelled(true); } }