public synchronized void cancel() { if (perso1.get_compte() != null) if (perso1.get_compte().getGameThread() != null) SocketManager.GAME_SEND_EV_PACKET(perso1.get_compte().getGameThread().get_out()); if (perso2.get_compte() != null) if (perso2.get_compte().getGameThread() != null) SocketManager.GAME_SEND_EV_PACKET(perso2.get_compte().getGameThread().get_out()); perso1.set_isTradingWith(0); perso2.set_isTradingWith(0); perso1.setCurExchange(null); perso2.setCurExchange(null); }
public synchronized void apply() { // Gestion des Kamas perso1.addKamas((-kamas1 + kamas2)); perso2.addKamas((-kamas2 + kamas1)); for (Couple<Integer, Integer> couple : items1) { if (couple.second == 0) continue; if (!perso1.hasItemGuid( couple.first)) // Si le perso n'a pas l'item (Ne devrait pas arriver) { couple.second = 0; // On met la quantité a 0 pour éviter les problemes continue; } Objet obj = World.getObjet(couple.first); if ((obj.getQuantity() - couple.second) < 1) // S'il ne reste plus d'item apres l'échange { perso1.removeItem(couple.first); couple.second = obj.getQuantity(); SocketManager.GAME_SEND_REMOVE_ITEM_PACKET(perso1, couple.first); if (!perso2.addObjet(obj, true)) // Si le joueur avait un item similaire World.removeItem(couple.first); // On supprime l'item inutile } else { obj.setQuantity(obj.getQuantity() - couple.second); SocketManager.GAME_SEND_OBJECT_QUANTITY_PACKET(perso1, obj); Objet newObj = Objet.getCloneObjet(obj, couple.second); if (perso2.addObjet(newObj, true)) // Si le joueur n'avait pas d'item similaire World.addObjet(newObj, true); // On ajoute l'item au World } } for (Couple<Integer, Integer> couple : items2) { if (couple.second == 0) continue; if (!perso2.hasItemGuid( couple.first)) // Si le perso n'a pas l'item (Ne devrait pas arriver) { couple.second = 0; // On met la quantité a 0 pour éviter les problemes continue; } Objet obj = World.getObjet(couple.first); if ((obj.getQuantity() - couple.second) < 1) // S'il ne reste plus d'item apres l'échange { perso2.removeItem(couple.first); couple.second = obj.getQuantity(); SocketManager.GAME_SEND_REMOVE_ITEM_PACKET(perso2, couple.first); if (!perso1.addObjet(obj, true)) // Si le joueur avait un item similaire World.removeItem(couple.first); // On supprime l'item inutile } else { obj.setQuantity(obj.getQuantity() - couple.second); SocketManager.GAME_SEND_OBJECT_QUANTITY_PACKET(perso2, obj); Objet newObj = Objet.getCloneObjet(obj, couple.second); if (perso1.addObjet(newObj, true)) // Si le joueur n'avait pas d'item similaire World.addObjet(newObj, true); // On ajoute l'item au World } } // Fin perso1.set_isTradingWith(0); perso2.set_isTradingWith(0); perso1.setCurExchange(null); perso2.setCurExchange(null); SocketManager.GAME_SEND_Ow_PACKET(perso1); SocketManager.GAME_SEND_Ow_PACKET(perso2); SocketManager.GAME_SEND_STATS_PACKET(perso1); SocketManager.GAME_SEND_STATS_PACKET(perso2); SocketManager.GAME_SEND_EXCHANGE_VALID(perso1.get_compte().getGameThread().get_out(), 'a'); SocketManager.GAME_SEND_EXCHANGE_VALID(perso2.get_compte().getGameThread().get_out(), 'a'); SQLManager.SAVE_PERSONNAGE(perso1, true); SQLManager.SAVE_PERSONNAGE(perso2, true); }