@@ -16,37 +16,43 @@
*/
package org .spout .vanilla .protocol .handler ;
import org .spout .api .inventory .Inventory ;
import org .spout .api .inventory .ItemStack ;
import org .spout .api .material .Material ;
import org .spout .api .material .MaterialData ;
import org .spout .api .player .Player ;
import org .spout .api .protocol .MessageHandler ;
import org .spout .api .protocol .Session ;
import org .spout .vanilla .Block ;
import org .spout .vanilla .protocol .msg .QuickBarMessage ;
public class QuickBarMessageHandler extends MessageHandler <QuickBarMessage > {
@ Override
public void handle (Session session , Player player , QuickBarMessage message ) {
/*if (player.getGameMode() != GameMode.CREATIVE) {
player.kickPlayer("Now now, don't try that here. Won't work.");
/*if (player.getData("gamemode") != GameMode.CREATIVE) { //TODO: Gamemode is currently not changeable
player.kick("Now now, don't try that here. Won't work.");
return;
}*/
int slot = message .getSlot ();
if (slot < 0 || slot >= player .getEntity ().getInventorySize ()) {
return ;
}
SpoutInventory inv = player.getInventory();
int slot = inv.getItemSlot(message.getSlot());
if (slot < 0 || slot > 8 || !checkValidId(message.getSlot())) {
player.onSlotSet(inv, slot, inv.getItem(slot));
ItemStack newItem = null ;
if (checkValidId (message .getId ())) {
newItem = new ItemStack (MaterialData .getMaterial (message .getId ()), message .getAmount (), message .getDamage ());
} else if (message .getId () != -1 ) {
player .kick ("Unknown item ID: " + message .getId ());
return ;
}
SpoutItemStack newItem = new SpoutItemStack(message.getId(), message.getAmount(), message.getDamage(), message.getNbtData());
SpoutItemStack currentItem = inv.getItem(slot);
inv.setItem(slot, newItem);
if (currentItem != null) {
player .getEntity ().getInventory ().setItem (newItem , slot );
/*if (currentItem != null) {
player.setItemOnCursor(currentItem);
} else {
player.setItemOnCursor(null);
}
*/
}*/
}
/* public boolean checkValidId(int id) {
return BlockProperties.get (id) == null && ItemProperties.get(id) = = null;
}*/
public boolean checkValidId (short id ) {
return MaterialData . getMaterial (id ) ! = null ;
}
}