public void removeFromTrunk(int id, int qua, Player player) { if (player.getCurTrunk().getId() != this.getId()) return; Object object = World.data.getObject(id); if (object == null) return; // Si le joueur n'a pas l'item dans son coffre if (this.getObjects().get(id) == null) { Log.addToLog( "Le joueur " + player.getName() + " a tenter de retirer un objet dans un coffre qu'il n'avait pas."); return; } Object object2 = player.getSimilarItem(object); String str = ""; int newQua = object.getQuantity() - qua; if (object2 == null) { // S'il ne reste rien dans le coffre if (newQua <= 0) { // On retire l'item du coffre this.getObjects().remove(id); // On l'ajoute au joueur player.getItems().put(id, object); // On envoie les packets SocketManager.GAME_SEND_OAKO_PACKET(player, object); str = "O-" + id; } else { // On crée une copy de l'item dans le coffre object2 = Object.getClone(object, qua); // On l'ajoute au monde World.data.addObject(object2, true); // On retire X objet du coffre object.setQuantity(newQua); // On l'ajoute au joueur player.getItems().put(object2.getId(), object2); // On envoie les packets SocketManager.GAME_SEND_OAKO_PACKET(player, object2); str = "O+" + object.getId() + "|" + object.getQuantity() + "|" + object.getTemplate().getId() + "|" + object.parseStatsString(); } } else { // S'il ne reste rien dans le coffre if (newQua <= 0) { // On retire l'item du coffre this.getObjects().remove(object.getId()); World.data.removeObject(object.getId()); // On Modifie la quantité de l'item du sac du joueur object2.setQuantity(object2.getQuantity() + object.getQuantity()); // On envoie les packets SocketManager.GAME_SEND_OBJECT_QUANTITY_PACKET(player, object2); str = "O-" + id; } else { // S'il reste des objets dans le coffre // On retire X objet du coffre object.setQuantity(newQua); // On ajoute X objets au joueurs object2.setQuantity(object2.getQuantity() + qua); // On envoie les packets SocketManager.GAME_SEND_OBJECT_QUANTITY_PACKET(player, object2); str = "O+" + object.getId() + "|" + object.getQuantity() + "|" + object.getTemplate().getId() + "|" + object.parseStatsString(); } } for (Player p : player.getMap().getPlayers()) if (p.getCurTrunk() != null && getId() == p.getCurTrunk().getId()) SocketManager.GAME_SEND_EsK_PACKET(p, str); SocketManager.GAME_SEND_Ow_PACKET(player); World.database.getTrunkData().update(this); }
public void addInTrunk(int id, int qua, Player player) { if (player.getCurTrunk().getId() != this.getId()) return; if (this.getObjects().size() >= 80) { // Le plus grand c'est pour si un admin ajoute des objets via la bdd... SocketManager.GAME_SEND_MESSAGE( player, "Le nombre d'objets maximal de ce coffre à été atteint !", Server.config.getMotdColor()); return; } Object object = World.data.getObject(id); if (object == null) return; if (player.getItems().get(id) == null) { Log.addToLog( "Le joueur " + player.getName() + " a tenter d'ajouter un objet dans un coffre qu'il n'avait pas."); return; } String str = ""; // Si c'est un item équipé ... if (object.getPosition() != ObjectPosition.NO_EQUIPED) return; Object TrunkObj = this.getSimilarTrunkItem(object); int newQua = object.getQuantity() - qua; if (TrunkObj == null) { // S'il n'y pas d'item du meme Template // S'il ne reste pas d'item dans le sac if (newQua <= 0) { // On enleve l'objet du sac du joueur player.removeItem(object.getId()); // On met l'objet du sac dans le coffre, avec la meme quantité this.getObjects().put(object.getId(), object); str = "O+" + object.getId() + "|" + object.getQuantity() + "|" + object.getTemplate().getId() + "|" + object.parseStatsString(); SocketManager.GAME_SEND_REMOVE_ITEM_PACKET(player, id); } else { // S'il reste des objets au joueur // on modifie la quantité d'item du sac object.setQuantity(newQua); // On ajoute l'objet au coffre et au monde TrunkObj = Object.getClone(object, qua); World.data.addObject(TrunkObj, true); this.getObjects().put(TrunkObj.getId(), TrunkObj); // Envoie des packets str = "O+" + TrunkObj.getId() + "|" + TrunkObj.getQuantity() + "|" + TrunkObj.getTemplate().getId() + "|" + TrunkObj.parseStatsString(); SocketManager.GAME_SEND_OBJECT_QUANTITY_PACKET(player, object); } } else { // S'il y avait un item du meme template // S'il ne reste pas d'item dans le sac if (newQua <= 0) { // On enleve l'objet du sac du joueur player.removeItem(object.getId()); // On enleve l'objet du monde World.data.removeObject(object.getId()); // On ajoute la quantité a l'objet dans le coffre TrunkObj.setQuantity(TrunkObj.getQuantity() + object.getQuantity()); // on envoie l'ajout au coffre de l'objet str = "O+" + TrunkObj.getId() + "|" + TrunkObj.getQuantity() + "|" + TrunkObj.getTemplate().getId() + "|" + TrunkObj.parseStatsString(); // on envoie la supression de l'objet du sac au joueur SocketManager.GAME_SEND_REMOVE_ITEM_PACKET(player, id); } else { // S'il restait des objets // on modifie la quantité d'item du sac object.setQuantity(newQua); TrunkObj.setQuantity(TrunkObj.getQuantity() + qua); str = "O+" + TrunkObj.getId() + "|" + TrunkObj.getQuantity() + "|" + TrunkObj.getTemplate().getId() + "|" + TrunkObj.parseStatsString(); SocketManager.GAME_SEND_OBJECT_QUANTITY_PACKET(player, object); } } for (Player perso : player.getMap().getPlayers()) if (perso.getCurTrunk() != null && getId() == perso.getCurTrunk().getId()) SocketManager.GAME_SEND_EsK_PACKET(perso, str); SocketManager.GAME_SEND_Ow_PACKET(player); World.database.getTrunkData().update(this); }