mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-10-04 19:12:50 -04:00
Added group buffs
This commit is contained in:
@@ -25,6 +25,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import resources.objects.Buff;
|
||||
import resources.objects.creature.CreatureObject;
|
||||
import resources.objects.group.GroupObject;
|
||||
|
||||
@@ -150,6 +151,8 @@ public class GroupService implements INetworkDispatch {
|
||||
leader.setGroupId(group.getObjectID());
|
||||
invited.makeAware(group);
|
||||
invited.setGroupId(group.getObjectID());
|
||||
addGroupBuffsToMember(group, leader);
|
||||
addGroupBuffsToMember(group, invited);
|
||||
return;
|
||||
|
||||
}
|
||||
@@ -162,6 +165,7 @@ public class GroupService implements INetworkDispatch {
|
||||
invited.makeAware(group);
|
||||
invited.setGroupId(group.getObjectID());
|
||||
invited.sendSystemMessage("@group:joined_self", (byte) 0);
|
||||
addGroupBuffsToMember(group, invited);
|
||||
|
||||
} else if(group.getMemberList().size() >= 8) {
|
||||
|
||||
@@ -175,10 +179,33 @@ public class GroupService implements INetworkDispatch {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void addGroupBuffsToMember(GroupObject group, CreatureObject member) {
|
||||
|
||||
// loop until we find a member other than ourself
|
||||
for(SWGObject otherMember : group.getMemberList()) {
|
||||
if(otherMember != member) {
|
||||
for(Buff buff : ((CreatureObject) otherMember).getBuffList().get()) {
|
||||
if(buff.isGroupBuff()) {
|
||||
Buff newBuff = core.buffService.doAddBuff(member, buff.getBuffName());
|
||||
newBuff.setGroupBufferId(buff.getGroupBufferId());
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void removeGroupBuffs(CreatureObject member) {
|
||||
for(Buff buff : member.getBuffList().get()) {
|
||||
if(buff.isGroupBuff() && buff.getGroupBufferId() != member.getObjectID()) {
|
||||
core.buffService.removeBuffFromCreature(member, buff);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void handleGroupDisband(CreatureObject creature) {
|
||||
|
||||
if(creature.getGroupId() == 0)
|
||||
@@ -209,11 +236,7 @@ public class GroupService implements INetworkDispatch {
|
||||
|
||||
}
|
||||
|
||||
// Remove group buffs
|
||||
|
||||
if(creature.hasBuff("co_base_of_operations"))
|
||||
core.buffService.removeBuffFromCreature(creature, creature.getBuffByName("co_base_of_operations"));
|
||||
|
||||
removeGroupBuffs(creature);
|
||||
|
||||
} else {
|
||||
|
||||
@@ -231,11 +254,8 @@ public class GroupService implements INetworkDispatch {
|
||||
|
||||
creature2.sendSystemMessage("The group has been disbanded.", (byte) 0);
|
||||
|
||||
// Remove group buffs
|
||||
removeGroupBuffs((CreatureObject) member);
|
||||
|
||||
if(creature2.hasBuff("co_base_of_operations"))
|
||||
core.buffService.removeBuffFromCreature(creature2, creature2.getBuffByName("co_base_of_operations"));
|
||||
|
||||
}
|
||||
|
||||
core.objectService.destroyObject(group.getObjectID());
|
||||
|
||||
Reference in New Issue
Block a user