SolvedonClickEvent Help.

Posts 1–3 of 3 · Page 1 of 1
onClickEvent Help.
EDIT: Help no longer needed.

Hey MPGH, I was wondering if someone could help me with this. My problem is that my Bukkit plugin works when I run it up until I click the item in the GUI. It's supposed to stop you from moving the item into your inventory and teleport you, however it doesn't do either of those things.

Source Code:
Code:
package me.wolflordsky;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {
	
   @override
	public void onEnable() {
		new PlayerListener(this);
		getLogger().info(ChatColor.GREEN + "Plugin Enabled!");
	}
   @override
	public void onDisable() {
		getLogger().info(ChatColor.GREEN + "Plugin Disabled!");
	}
	
	private void teleportInWorld(Player player, int x, int y, int z) {
		player.teleport(new Location(player.getWorld(), x, y, z));
	}
	
	private void openGUI(Player player) {
		Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_GREEN + "Warp Selector");
		
		ItemStack spawn = new ItemStack (Material.GOLDEN_APPLE);
		ItemMeta spawnMeta = spawn.getItemMeta();
		ItemStack shop = new ItemStack (Material.GOLD_INGOT);
		ItemMeta shopMeta = shop.getItemMeta();
		ItemStack spawnershop = new ItemStack (Material.MOB_SPAWNER);
		ItemMeta spawnershopMeta = spawnershop.getItemMeta();
		
		spawnMeta.setDisplayName(ChatColor.DARK_RED + "Spawn");
		spawn.setItemMeta(spawnMeta);
		shopMeta.setDisplayName(ChatColor.DARK_RED + "Shop");
		shop.setItemMeta(shopMeta);
		spawnershopMeta.setDisplayName(ChatColor.DARK_RED + "Spawner Shop");
		spawnershop.setItemMeta(spawnershopMeta);
		
		inv.setItem(0, spawn);
		inv.setItem(4, shop);
		inv.setItem(8, spawnershop);
		
		player.openInventory(inv);
	}
	
   @eventHandler
	public void onInventoryClick(InventoryClickEvent event) {
		if (!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Warp Selector"))
			return;
		Player player = (Player) event.getWhoClicked();
		event.setCancelled(true);
		
		if (event.getCurrentItem()==null 
				|| event.getCurrentItem().getType()==Material.AIR 
				|| !event.getCurrentItem().hasItemMeta()) {
			player.closeInventory();
			return;
		}
		
		switch (event.getCurrentItem().getType()) {
		case GOLDEN_APPLE:
			teleportInWorld(player, 266, 69, 177);
			player.closeInventory();
			break;
		case GOLD_INGOT:
			teleportInWorld(player, 243, 73, 260);
			player.closeInventory();
			break;
		case MOB_SPAWNER:
			teleportInWorld(player, 242, 99, 260);
			player.closeInventory();
			break;
		default:
			player.closeInventory();
			break;
		}
	}
	
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
		if (cmd.getName().equalsIgnoreCase("wl") && sender instanceof Player) {
			openGUI((Player) sender);
		}
		return false;
	}
}
If you need any extra information just ask in the comments... Thanks!
teleportInWorld(player, 266, 69, 177);
player.closeInventory();
break;
I think it would be like this? case 0: & case 1:
Posts 1–3 of 3 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us