package de.maxgb.minecraft.second_screen.info_listener;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import org.json.JSONArray;
import org.json.JSONObject;
import de.maxgb.minecraft.second_screen.Configs;
import de.maxgb.minecraft.second_screen.StandardListener;
import de.maxgb.minecraft.second_screen.shared.PROTOKOLL;
import de.maxgb.minecraft.second_screen.util.User;
public class PlayerInventoryListener extends StandardListener {
/*
* private class FakeIconRegister implements IIconRegister {
*
* String texture;
*
* private IIcon createTextureAtlasSprite(String s) { try { Class<?> c =
* TextureAtlasSprite.class; java.lang.reflect.Constructor constr = c
* .getDeclaredConstructor(String.class); constr.setAccessible(true); return
* (IIcon) constr.newInstance(s); } catch (NoSuchMethodException e) { //
* TODO Auto-generated catch block e.printStackTrace(); } catch
* (SecurityException e) { // TODO Auto-generated catch block
* e.printStackTrace(); } catch (InstantiationException e) { // TODO
* Auto-generated catch block e.printStackTrace(); } catch
* (IllegalAccessException e) { // TODO Auto-generated catch block
* e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO
* Auto-generated catch block e.printStackTrace(); } catch
* (InvocationTargetException e) { // TODO Auto-generated catch block
* e.printStackTrace(); } return null; }
*
* public String getTextureString() { return texture; }
*
* @Override public IIcon registerIcon(String var1) { texture = var1;
*
* // Should throw a nullpointer String n = null; n.charAt(1);
*
* return createTextureAtlasSprite(texture);
*
* } private String getTextureString(Item i) {
*
* try { ItemBlock ib = (ItemBlock) i; } catch (java.lang.ClassCastException
* e) {
*
* try { FakeIconRegister register = new FakeIconRegister();
* i.registerIcons(register); return register.getTextureString(); } catch
* (NullPointerException e1) { } }
*
* return null;
*
* } }
*/
@SuppressWarnings("unused")
private final String TAG = "PlayerInventoryListener";
public PlayerInventoryListener(User user) {
super(user);
everyTick = Configs.player_info_update_time;
}
@Override
public String update() {
JSONObject response = new JSONObject();
EntityPlayerMP player = user.getPlayer(server);
if (player == null) {
response.put("success", 0).put("error", "User " + user.username + " not online");
} else {
JSONArray items = new JSONArray();
for (int i = 0; i < player.inventory.mainInventory.length; i++) {
ItemStack s = player.inventory.mainInventory[i];
if (s != null) {
JSONObject stack = new JSONObject();
stack.put("displayname", s.getDisplayName());
stack.put("size", s.stackSize);
Item it = s.getItem();
if (it != null) {
CreativeTabs tab = null;
try {
tab = it.getCreativeTab();
} catch (Exception e) {
e.printStackTrace();
} catch (NoSuchMethodError e) {
}
if (tab != null) {
stack.put("tab", it.getCreativeTab().getTabLabel());
} else {
stack.put("tab", "otherMatters");
}
}
// stack.put("icon", getTextureString(s.getItem()));
items.put(stack);
}
}
response.put("inventory", items);
response.put("success", 1);
}
return PROTOKOLL.PLAYER_INVENTORY_LISTENER + "-" + response.toString();
}
}