mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-10-21 11:03:13 -04:00
Stopped posture updates when riding a mount, and prevented non-group from mounting each others' vehicles
This commit is contained in:
+3
@@ -33,6 +33,7 @@ import com.projectswg.holocore.resources.support.global.commands.ICmdCallback;
|
||||
import com.projectswg.holocore.resources.support.global.player.Player;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureState;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class KneelCmdCallback implements ICmdCallback {
|
||||
@@ -40,6 +41,8 @@ public class KneelCmdCallback implements ICmdCallback {
|
||||
@Override
|
||||
public void execute(@NotNull Player player, SWGObject target, @NotNull String args) {
|
||||
CreatureObject creature = player.getCreatureObject();
|
||||
if (creature.isStatesBitmask(CreatureState.RIDING_MOUNT))
|
||||
return;
|
||||
if (creature.isPerforming()) {
|
||||
new DanceIntent(player.getCreatureObject()).broadcast();
|
||||
} else {
|
||||
|
||||
+3
@@ -36,6 +36,7 @@ import com.projectswg.holocore.resources.support.global.player.Player;
|
||||
import com.projectswg.holocore.resources.support.global.player.PlayerState;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureState;
|
||||
import com.projectswg.holocore.utilities.ScheduledUtilities;
|
||||
import me.joshlarson.jlcommon.control.IntentChain;
|
||||
import me.joshlarson.jlcommon.log.Log;
|
||||
@@ -48,6 +49,8 @@ public class LogoutCmdCallback implements ICmdCallback {
|
||||
@Override
|
||||
public void execute(@NotNull Player player, SWGObject target, @NotNull String args) {
|
||||
CreatureObject creature = player.getCreatureObject();
|
||||
if (creature.isStatesBitmask(CreatureState.RIDING_MOUNT))
|
||||
return;
|
||||
creature.setPosture(Posture.SITTING);
|
||||
Log.i("Logout command called for %s - 30s timer started", creature.getObjectName());
|
||||
updateLogout(player, creature, 30);
|
||||
|
||||
+3
-1
@@ -33,6 +33,7 @@ import com.projectswg.holocore.resources.support.global.commands.ICmdCallback;
|
||||
import com.projectswg.holocore.resources.support.global.player.Player;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureState;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ProneCmdCallback implements ICmdCallback {
|
||||
@@ -40,7 +41,8 @@ public class ProneCmdCallback implements ICmdCallback {
|
||||
@Override
|
||||
public void execute(@NotNull Player player, SWGObject target, @NotNull String args) {
|
||||
CreatureObject creature = player.getCreatureObject();
|
||||
|
||||
if (creature.isStatesBitmask(CreatureState.RIDING_MOUNT))
|
||||
return;
|
||||
if (creature.isPerforming()) {
|
||||
new DanceIntent(player.getCreatureObject()).broadcast();
|
||||
} else {
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ public class SitOnObjectCmdCallback implements ICmdCallback {
|
||||
public void execute(@NotNull Player player,SWGObject target, @NotNull String args) {
|
||||
CreatureObject creature = player.getCreatureObject();
|
||||
|
||||
if (creature.getPosture() == Posture.DEAD || creature.getPosture() == Posture.INCAPACITATED)
|
||||
if (creature.getPosture() == Posture.DEAD || creature.getPosture() == Posture.INCAPACITATED || creature.isStatesBitmask(CreatureState.RIDING_MOUNT))
|
||||
return;
|
||||
long objectID = creature.getObjectId();
|
||||
SitOnObject sot;
|
||||
|
||||
+2
@@ -42,6 +42,8 @@ public class StandCmdCallback implements ICmdCallback {
|
||||
public void execute(@NotNull Player player, SWGObject target, @NotNull String args) {
|
||||
CreatureObject creature = player.getCreatureObject();
|
||||
|
||||
if (creature.isStatesBitmask(CreatureState.RIDING_MOUNT))
|
||||
return;
|
||||
if(creature.isPerforming()) {
|
||||
// Ziggy: When you move while dancing, the client wants to execute /stand instead of /stopDance. Blame SOE.
|
||||
new DanceIntent(player.getCreatureObject()).broadcast();
|
||||
|
||||
+7
@@ -42,8 +42,10 @@ import com.projectswg.holocore.resources.support.objects.swg.SWGObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.ServerAttribute;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureState;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.group.GroupObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.intangible.IntangibleObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.tangible.OptionFlag;
|
||||
import com.projectswg.holocore.services.support.objects.ObjectStorageService.ObjectLookup;
|
||||
import me.joshlarson.jlcommon.control.IntentHandler;
|
||||
import me.joshlarson.jlcommon.control.Service;
|
||||
import me.joshlarson.jlcommon.log.Log;
|
||||
@@ -247,6 +249,11 @@ public class PlayerMountService extends Service {
|
||||
requester.setLocation(Location.zero());
|
||||
requester.moveToSlot(vehicle, "rider", vehicle.getArrangementId(requester));
|
||||
} else if (vehicle.getSlottedObject("rider") != null) {
|
||||
GroupObject group = (GroupObject) ObjectLookup.getObjectById(requester.getGroupId());
|
||||
if (group == null || !group.getGroupMembers().values().contains(vehicle.getOwnerId())) {
|
||||
Log.d("%s attempted to mount a vehicle when not in the same group as the owner!", requester);
|
||||
return;
|
||||
}
|
||||
boolean added = false;
|
||||
for (int i = 1; i <= 7; i++) {
|
||||
if (!vehicle.hasSlot("rider" + i)) {
|
||||
|
||||
Reference in New Issue
Block a user