|
|
|
@@ -52,9 +52,9 @@ public class TradeService extends Service {
|
|
|
|
|
handleAcceptTransactionMessage(gpi.getPlayer());
|
|
|
|
|
} else if (packet instanceof UnAcceptTransactionMessage){
|
|
|
|
|
handleUnAcceptTransactionMessage(gpi.getPlayer());
|
|
|
|
|
} else if (packet instanceof AddItemMessage){
|
|
|
|
|
} /*else if (packet instanceof AddItemMessage){
|
|
|
|
|
handleAddItemMessage((AddItemMessage) packet, gpi.getPlayer());
|
|
|
|
|
}
|
|
|
|
|
}*/
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void handleSecureTrade(SecureTrade packet, Player player, ObjectManager objectManager) {
|
|
|
|
@@ -62,39 +62,40 @@ public class TradeService extends Service {
|
|
|
|
|
CreatureObject accepter = (CreatureObject) objectManager.getObjectById(packet.getAccepterId());
|
|
|
|
|
TradeSession tradeSession = new TradeSession(initiator, accepter);
|
|
|
|
|
initiator.setTradeSession(tradeSession);
|
|
|
|
|
initiator.getTradeSession().getTradePartner(accepter);
|
|
|
|
|
handleTradeSessionRequest(initiator, accepter, tradeSession);
|
|
|
|
|
initiator.setTradePartner(accepter);
|
|
|
|
|
handleTradeSessionRequest(packet, player, initiator, accepter, tradeSession);
|
|
|
|
|
Log.d("Trade Session Request. Type=%s Initiator=%d Receipient=%d PacketSenderID: %d", packet.getType(), packet.getStarterId(), packet.getAccepterId(), player.getCreatureObject().getObjectId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void handleAbortTradeMessage(Player player) {
|
|
|
|
|
if(player.getCreatureObject().getObjectId() != player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).getObjectId()){
|
|
|
|
|
player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).sendSelf(new AbortTradeMessage());
|
|
|
|
|
player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).sendSelf(new DenyTradeMessage());
|
|
|
|
|
} else{
|
|
|
|
|
if(player.getCreatureObject().getObjectId() != player.getCreatureObject().getTradePartner().getObjectId()){
|
|
|
|
|
player.getCreatureObject().getTradePartner().sendSelf(new AbortTradeMessage());
|
|
|
|
|
player.getCreatureObject().getTradePartner().sendSelf(new DenyTradeMessage());
|
|
|
|
|
} else {
|
|
|
|
|
player.getCreatureObject().sendSelf(new AbortTradeMessage());
|
|
|
|
|
player.getCreatureObject().sendSelf(new DenyTradeMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void handleDenyTradeMessage(Player player) {
|
|
|
|
|
if(player.getCreatureObject().getObjectId() != player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).getObjectId()){
|
|
|
|
|
player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).sendSelf(new DenyTradeMessage());
|
|
|
|
|
if(player.getCreatureObject().getObjectId() != player.getCreatureObject().getTradePartner().getObjectId()){
|
|
|
|
|
player.getCreatureObject().getTradePartner().sendSelf(new DenyTradeMessage());
|
|
|
|
|
} else{
|
|
|
|
|
player.getCreatureObject().sendSelf(new DenyTradeMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void handleAcceptTransactionMessage(Player player) {
|
|
|
|
|
if(player.getCreatureObject().getObjectId() != player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).getObjectId()){
|
|
|
|
|
player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).sendSelf(new AcceptTransactionMessage());
|
|
|
|
|
if(player.getCreatureObject().getObjectId() != player.getCreatureObject().getTradePartner().getObjectId()){
|
|
|
|
|
player.getCreatureObject().getTradePartner().sendSelf(new AcceptTransactionMessage());
|
|
|
|
|
} else{
|
|
|
|
|
player.getCreatureObject().sendSelf(new AcceptTransactionMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void handleUnAcceptTransactionMessage(Player player) {
|
|
|
|
|
if(player.getCreatureObject().getObjectId() != player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).getObjectId()){
|
|
|
|
|
player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).sendSelf(new UnAcceptTransactionMessage());
|
|
|
|
|
if(player.getCreatureObject().getObjectId() != player.getCreatureObject().getObjectId()){
|
|
|
|
|
player.getCreatureObject().getTradePartner().sendSelf(new UnAcceptTransactionMessage());
|
|
|
|
|
} else{
|
|
|
|
|
player.getCreatureObject().sendSelf(new UnAcceptTransactionMessage());
|
|
|
|
|
}
|
|
|
|
@@ -102,35 +103,39 @@ public class TradeService extends Service {
|
|
|
|
|
|
|
|
|
|
private void handleAddItemMessage(AddItemMessage packet, Player player) {
|
|
|
|
|
|
|
|
|
|
if(player.getCreatureObject().getObjectId() != player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).getObjectId()){
|
|
|
|
|
player.getCreatureObject().getTradeSession().addToItemList(player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()), packet.getObjectId());
|
|
|
|
|
for (long objectId : player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).getTradeSession().getFromAccepterList()) {
|
|
|
|
|
if(player.getCreatureObject().getObjectId() != player.getCreatureObject().getTradePartner().getObjectId()){
|
|
|
|
|
player.getCreatureObject().getTradeSession().addToItemList(player.getCreatureObject().getTradePartner(), packet.getObjectId());
|
|
|
|
|
for (long objectId : player.getCreatureObject().getTradePartner().getTradeSession().getFromAccepterList()) {
|
|
|
|
|
player.getCreatureObject().sendSelf(new AddItemMessage(objectId));
|
|
|
|
|
}
|
|
|
|
|
} else{
|
|
|
|
|
player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).getTradeSession().addToItemList(player.getCreatureObject(), packet.getObjectId());
|
|
|
|
|
for (long objectId : player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).getTradeSession().getFromInitiatorList()) {
|
|
|
|
|
player.getCreatureObject().getTradeSession().getTradePartner(player.getCreatureObject()).sendSelf(new AddItemMessage(objectId));
|
|
|
|
|
player.getCreatureObject().getTradePartner().getTradeSession().addToItemList(player.getCreatureObject(), packet.getObjectId());
|
|
|
|
|
for (long objectId : player.getCreatureObject().getTradePartner().getTradeSession().getFromInitiatorList()) {
|
|
|
|
|
player.getCreatureObject().getTradePartner().sendSelf(new AddItemMessage(objectId));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void handleTradeSessionRequest(CreatureObject initiator, CreatureObject accepter, TradeSession tradeSession) {
|
|
|
|
|
private void handleTradeSessionRequest(SecureTrade packet, Player packetSender , CreatureObject initiator, CreatureObject accepter, TradeSession tradeSession) {
|
|
|
|
|
SuiMessageBox requestBox = new SuiMessageBox(SuiButtons.OK_CANCEL, "Trade Request", accepter.getOwner().getCharacterName() + " wants to trade with you.\nDo you want to accept the request?");
|
|
|
|
|
requestBox.display(accepter.getOwner());
|
|
|
|
|
requestBox.addOkButtonCallback("handleTradeRequest", (player, actor, event, paramenters)-> {
|
|
|
|
|
accepter.getTradeSession().getTradePartner(initiator);
|
|
|
|
|
accepter.setTradeSession(tradeSession);
|
|
|
|
|
if(initiator.getTradeSession().getTradePartner(accepter) != null && initiator.getTradeSession().getTradePartner(accepter).equals(accepter) && accepter.getTradeSession().getTradePartner(initiator) != null && accepter.getTradeSession().getTradePartner(initiator).equals(initiator)){
|
|
|
|
|
if(initiator.getTradePartner() != null && initiator.getTradePartner().equals(accepter) && accepter.getTradePartner() != null && accepter.getTradePartner().equals(initiator)){
|
|
|
|
|
accepter.setTradeSession(tradeSession);
|
|
|
|
|
accepter.setTradePartner(initiator);
|
|
|
|
|
initiator.sendSelf(new BeginTradeMessage(accepter.getObjectId()));
|
|
|
|
|
accepter.sendSelf(new BeginTradeMessage(initiator.getObjectId()));
|
|
|
|
|
Log.d("Trade Session Request. Type=%s Initiator=%d Receipient=%d PacketSenderID: %d", packet.getType(), packet.getStarterId(), packet.getAccepterId(), player.getCreatureObject().getObjectId());
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
requestBox.addCancelButtonCallback("handleTradeRequestDeny", (player, actor, event, paramenters)-> {
|
|
|
|
|
initiator.sendSelf(new DenyTradeMessage());
|
|
|
|
|
accepter.sendSelf(new DenyTradeMessage());
|
|
|
|
|
initiator.sendSelf(new AbortTradeMessage());
|
|
|
|
|
accepter.sendSelf(new AbortTradeMessage());
|
|
|
|
|
if(packetSender.getCreatureObject().getObjectId() != accepter.getObjectId()){
|
|
|
|
|
initiator.sendSelf(new DenyTradeMessage());
|
|
|
|
|
initiator.sendSelf(new AbortTradeMessage());
|
|
|
|
|
} else {
|
|
|
|
|
accepter.sendSelf(new DenyTradeMessage());
|
|
|
|
|
accepter.sendSelf(new AbortTradeMessage());
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
Log.i("Player: %s sent TradeRequest to Player %s", initiator.getOwner().getCharacterName(), accepter.getOwner().getCharacterName());
|
|
|
|
|
}
|
|
|
|
|