Added in basic ability to join groups

This commit is contained in:
Waverunner
2015-10-05 17:39:02 -04:00
parent c519dad986
commit b49b544af2
11 changed files with 517 additions and 16 deletions
+62 -8
View File
@@ -27,26 +27,38 @@
package resources.objects.group;
import network.packets.swg.zone.baselines.Baseline;
import resources.collections.SWGMap;
import resources.network.BaselineBuilder;
import resources.objects.SWGObject;
import resources.objects.creature.CreatureObject;
import resources.player.Player;
import utilities.Encoder;
public class GroupObject extends SWGObject {
public class GroupObject extends SWGObject { // Extends INTO or TANO?
private static final long serialVersionUID = 200L;
private SWGMap<Long, String> groupMembers = new SWGMap<>(Baseline.BaselineType.GRUP, 6, 2, Encoder.StringType.ASCII);
private long leader;
private short level;
private long lootMaster;
private int lootRule;
public GroupObject(long objectId) {
super(objectId, Baseline.BaselineType.GRUP);
}
@Override
public void createBaseline6(Player target, BaselineBuilder bb) {
super.createBaseline6(target, bb); // BASE06 -- 2 variables
bb.addInt(0); // groupMembers // 2
bb.addInt(0); // updateCount
bb.addObject(groupMembers); // 2
bb.addInt(0); // formationmembers // 3
bb.addInt(0); // updateCount
bb.addAscii(""); // groupName // 4
bb.addShort(0); // groupLevel // 5
bb.addShort(level); // 5
bb.addInt(0); // formationNameCrc // 6
bb.addLong(0); // lootMaster // 7
bb.addInt(0); // lootRule // 8
bb.addLong(lootMaster); // 7
bb.addInt(lootRule); // 8
bb.addInt(0); // PickupPointTimer startTime // 9
bb.addInt(0); // endTime
bb.addAscii(""); // PickupPoint planetName // 10
@@ -55,4 +67,46 @@ public class GroupObject extends SWGObject {
bb.addFloat(0); // z
bb.incrementOperandCount(9);
}
public void addMember(CreatureObject object) {
groupMembers.put(object.getObjectId(), object.getName());
groupMembers.sendDeltaMessage(this);
System.out.println("GroupObject: Added member & sent delta:: " + object);
}
public void removeMember(CreatureObject object) {
groupMembers.remove(object.getObjectId());
groupMembers.sendDeltaMessage(this);
}
public long getLeader() {
return leader;
}
public void setLeader(long leader) {
this.leader = leader;
}
public short getLevel() {
return level;
}
public void setLevel(short level) {
this.level = level;
}
public long getLootMaster() {
return lootMaster;
}
public void setLootMaster(long lootMaster) {
this.lootMaster = lootMaster;
}
public SWGMap<Long, String> getGroupMembers() {
return groupMembers;
}
}