Changed session to tradeSession for continuity

Trading an Equipped Item no longer aborts the Trade
Added a Warning when trading an Equipped Item
Trading a No Trade Item will abort the Trade
Added a notifcation when attemptint to trade a NoTrade Item
Removed additional blanklines in Securetrade ObjController
This commit is contained in:
Tacef Ine
2017-07-18 18:58:47 +02:00
parent 4622170407
commit a2d7c76991
2 changed files with 14 additions and 11 deletions
+14 -9
View File
@@ -18,6 +18,7 @@ import network.packets.swg.zone.trade.BeginTradeMessage;
import network.packets.swg.zone.trade.BeginVerificationMessage;
import network.packets.swg.zone.trade.DenyTradeMessage;
import network.packets.swg.zone.trade.GiveMoneyMessage;
import network.packets.swg.zone.trade.RemoveItemMessage;
import network.packets.swg.zone.trade.TradeCompleteMessage;
import network.packets.swg.zone.trade.UnAcceptTransactionMessage;
import network.packets.swg.zone.trade.VerifyTradeMessage;
@@ -52,14 +53,14 @@ public class TradeService extends Service {
private void handlePlayerEventIntent(PlayerEventIntent pei) {
if (pei.getPlayer().getCreatureObject() == null)
return;
TradeSession session = pei.getPlayer().getCreatureObject().getTradeSession();
if (session == null)
TradeSession tradeSession = pei.getPlayer().getCreatureObject().getTradeSession();
if (tradeSession == null)
return;
switch (pei.getEvent()) {
case PE_FIRST_ZONE:
case PE_LOGGED_OUT:
session.sendAbortTrade();
tradeSession.sendAbortTrade();
break;
default:
break;
@@ -162,20 +163,20 @@ public class TradeService extends Service {
private void handleAddItemMessage(AddItemMessage packet, Player player, ObjectManager objectManager) {
CreatureObject creature = player.getCreatureObject();
TradeSession tradeSession = creature.getTradeSession();
if (tradeSession == null) {
Log.w("Invalid TradeSession for handleAddItemMessage. Creature %s: ", creature);
return;
}
SWGObject tradeObject = objectManager.getObjectById(packet.getObjectId());
if(creature.hasSlottedObject(tradeObject)){
tradeSession.sendAbortTrade();
return;
sendSystemMessageNoStf(player, "Warning: You have just added an equipped item to the trade window!");
}
if(tradeObject.hasAttribute("no_trade")){
sendSystemMessage(player, "add_item_failed_prose");
if(tradeObject.hasAttribute("no_trade")){
tradeSession.sendAbortTrade();
return;
}
tradeObject.setContainerPermissions(ContainerPermissionsType.INVENTORY);
@@ -236,7 +237,7 @@ public class TradeService extends Service {
}
private void handleTradeSessionRequest(SecureTrade packet, Player packetSender , CreatureObject initiator, CreatureObject accepter) {
SuiMessageBox requestBox = new SuiMessageBox(SuiButtons.OK_CANCEL, "Trade Request", accepter.getOwner().getCharacterName() + " wants to trade with you.\nDo you want to accept the request?");
SuiMessageBox requestBox = new SuiMessageBox(SuiButtons.OK_CANCEL, "Trade Request", initiator.getObjectName() + " wants to trade with you.\nDo you want to accept the request?");
requestBox.addOkButtonCallback("handleTradeRequest", (player, actor, event, paramenters)-> {
if(initiator.getTradeSession() == null)
return;
@@ -262,4 +263,8 @@ public class TradeService extends Service {
private void sendSystemMessage(Player player, String str) {
new ChatBroadcastIntent(player, "@ui_trade:" + str).broadcast();
}
private void sendSystemMessageNoStf(Player player, String message) {
new ChatBroadcastIntent(player, message).broadcast();
}
}