package ru.alastar.game; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Hashtable; import com.badlogic.gdx.math.Vector2; import ru.alastar.database.DatabaseClient; import ru.alastar.game.systems.gui.NetGUISystem; import ru.alastar.main.net.ConnectedClient; import ru.alastar.main.net.Server; public class Equip { public Entity entity; public Hashtable<String, SlotInfo> contents; public Equip(Entity e) { this.entity = e; contents = new Hashtable<String, SlotInfo>(); } public void addEquipSlot(String slotName) { if (contents.get(slotName) == null) { // Main.Log("[DEBUG]","Slot " + slotName + " has been added"); contents.put(slotName, new SlotInfo()); ConnectedClient c = Server.getClient(entity); if (entity.haveGUI("equip") && !entity.haveGUI(slotName)) { NetGUISystem.OpenGUI(NetGUISystem.CreateGUIInfo(slotName, new Vector2(), new Vector2(), "equip", "ru.alastar.game.gui.GUIEquipSlot", "", slotName), c); } SaveSlot(entity.id, slotName, -1); } } public void SaveSlot(int id, String slotName, int i) { try { ResultSet rs = DatabaseClient .commandExecute("SELECT * FROM equip WHERE entityId=" + id + " AND slotName='" + slotName + "'"); if (rs.next()) { DatabaseClient.commandExecute("UPDATE equip SET itemId=" + i + " WHERE entityId=" + id + " AND slotName='" + slotName + "'"); } else { DatabaseClient .commandExecute("INSERT INTO equip(entityId, slotName, itemId) VALUES(" + id + ",'" + slotName + "'," + i + ");"); } } catch (SQLException e) { e.printStackTrace(); } } public void addToEquip(String slotName, Item i) { if (contents.get(slotName) != null) { SlotInfo s = new SlotInfo(); s.item = i; contents.put(slotName, s); // Main.Log("[DEBUG]","Item " + i.caption + // " has been added to slot " + slotName); ConnectedClient c = Server.getClient(entity); if (entity.haveGUI("equip") && entity.haveGUI(slotName)) { entity.closeGUI(slotName); NetGUISystem.OpenGUI(NetGUISystem.CreateGUIInfo(slotName, new Vector2(), new Vector2(), "equip", "ru.alastar.game.gui.GUIEquipSlot", i.type.name(), slotName), c); } SaveSlot(entity.id, slotName, i.id); } } }