diff --git a/src/services/SimulationService.java b/src/services/SimulationService.java index 215491ea..f3f8d86f 100644 --- a/src/services/SimulationService.java +++ b/src/services/SimulationService.java @@ -872,7 +872,7 @@ public class SimulationService implements INetworkDispatch { if(container.getPermissions().canView(requester, container)) { OpenedContainerMessage opm = new OpenedContainerMessage(container.getObjectID()); - if(requester.getClient() != null && requester.getClient().getSession() != null) + if(requester.getClient() != null && requester.getClient().getSession() != null && !(container instanceof CreatureObject)) requester.getClient().getSession().write(opm.serialize()); } diff --git a/src/services/trade/TradeService.java b/src/services/trade/TradeService.java index 5b22471c..08201aab 100644 --- a/src/services/trade/TradeService.java +++ b/src/services/trade/TradeService.java @@ -25,6 +25,7 @@ import resources.objects.creature.CreatureObject; import engine.clients.Client; import engine.resources.container.AllPermissions; import engine.resources.container.CreatureContainerPermissions; +import engine.resources.container.CreaturePermissions; import engine.resources.objects.SWGObject; import engine.resources.service.INetworkDispatch; import engine.resources.service.INetworkRemoteEvent; @@ -205,7 +206,7 @@ public class TradeService implements INetworkDispatch{ } else { - if(objectToTrade.getAttributes().containsKey("no_trade")) { + if(objectToTrade.getAttributes().containsKey("no_trade") || !objectToTrade.getPermissions().canRemove(client.getParent(), objectToTrade.getContainer()) || (objectToTrade.getContainer() instanceof CreatureObject)) { return; }