mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-10-14 04:13:14 -04:00
Added ability to transfer leadership to another member in a Guild
This commit is contained in:
@@ -169,6 +169,71 @@ public class GuildService implements INetworkDispatch {
|
||||
return member;
|
||||
}
|
||||
|
||||
public void changeGuildLeader(Guild guild, CreatureObject formerLeaderCreo, CreatureObject newLeaderCreo, boolean elected) {
|
||||
GuildMember formerLeader = guild.getMember(formerLeaderCreo.getObjectID());
|
||||
|
||||
if (formerLeader == null)
|
||||
return;
|
||||
|
||||
GuildMember newLeader = guild.getMember(newLeaderCreo.getObjectID());
|
||||
|
||||
if (newLeader == null)
|
||||
return;
|
||||
|
||||
formerLeader.removeAllPermissions();
|
||||
newLeader.giveAllPermissions();
|
||||
|
||||
// TODO: Handling of guild PA Halls
|
||||
|
||||
guild.setLeader(newLeaderCreo.getObjectID());
|
||||
guild.setLeaderName(newLeaderCreo.getCustomName());
|
||||
|
||||
if (elected) {
|
||||
// TODO: Guild leader elections
|
||||
} else {
|
||||
formerLeaderCreo.sendSystemMessage("@guild:ml_success", DisplayType.Broadcast);
|
||||
newLeaderCreo.sendSystemMessage("@guild:ml_you_are_leader", DisplayType.Broadcast);
|
||||
guild.sendGuildMail(guild.getName(), "@guildmail:leaderchange_subject", new ProsePackage("@guildmail:leaderchange_text", "TU", newLeaderCreo.getCustomName()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void handleTransferLeadership(CreatureObject actor, Guild guild) {
|
||||
|
||||
SUIWindow transferWindow = core.suiService.createInputBox(InputBoxType.INPUT_BOX_OK_CANCEL, "@guild:make_leader_t", "@guild:make_leader_d", actor, null, 0,
|
||||
(owner, eventType, returnList) -> {
|
||||
String name = returnList.get(0);
|
||||
|
||||
if (name == "" || name == " ")
|
||||
return;
|
||||
|
||||
SWGObject transferTarget = core.chatService.getObjectByFirstName(name);
|
||||
|
||||
if (transferTarget == null) {
|
||||
actor.sendSystemMessage("@guild:ml_not_loaded", DisplayType.Broadcast);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!guild.getMembers().containsKey(transferTarget.getObjectID())) {
|
||||
actor.sendSystemMessage("@guild:ml_fail", DisplayType.Broadcast);
|
||||
return;
|
||||
}
|
||||
|
||||
if (actor.getPlanetId() != transferTarget.getPlanetId() || actor.getWorldPosition().getDistance2D(transferTarget.getWorldPosition()) > (float) 10) {
|
||||
actor.sendSystemMessage("@guild:ml_not_loaded", DisplayType.Broadcast);
|
||||
return;
|
||||
}
|
||||
|
||||
SUIWindow confirmTransferWindow = core.suiService.createMessageBox(MessageBoxType.MESSAGE_BOX_YES_NO, "@guild:make_leader_t", "@guild:make_leader_p", transferTarget, null, 0, (owner2, eventType2, returnList2) -> {
|
||||
changeGuildLeader(guild, actor, (CreatureObject) transferTarget, false);
|
||||
});
|
||||
core.suiService.openSUIWindow(confirmTransferWindow);
|
||||
|
||||
});
|
||||
|
||||
core.suiService.openSUIWindow(transferWindow);
|
||||
}
|
||||
|
||||
public void handleCreateGuildName(CreatureObject actor, SWGObject creationSource) {
|
||||
if (actor.getGuildId() != 0) { actor.sendSystemMessage("@guild:create_fail_in_guild", DisplayType.Broadcast); return; }
|
||||
|
||||
@@ -606,8 +671,6 @@ public class GuildService implements INetworkDispatch {
|
||||
core.suiService.openSUIWindow(window);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void handleGuildSponsorWindow(CreatureObject actor) {
|
||||
SUIWindow wndSponsorPlayer = core.suiService.createInputBox(InputBoxType.INPUT_BOX_OK_CANCEL, "@guild:sponsor_title", "@guild:sponsor_prompt", actor, null, (float) 10, (sponsor, eventType, returnList) -> {
|
||||
|
||||
@@ -660,7 +723,6 @@ public class GuildService implements INetworkDispatch {
|
||||
core.suiService.openSUIWindow(wndSponsorPlayer);
|
||||
}
|
||||
|
||||
|
||||
public void handleGuildDisband(CreatureObject actor, Guild guild) {
|
||||
|
||||
Map<Long, GuildMember> members = guild.getMembers();
|
||||
@@ -700,7 +762,6 @@ public class GuildService implements INetworkDispatch {
|
||||
removeGuild(guild.getId());
|
||||
}
|
||||
|
||||
|
||||
public void handleManageSponsoredPlayers(CreatureObject actor) {
|
||||
Guild guild = getGuildById(actor.getGuildId());
|
||||
|
||||
@@ -794,7 +855,6 @@ public class GuildService implements INetworkDispatch {
|
||||
core.chatService.sendPersistentMessageHeader(sponsoree.getClient(), declinedMail);
|
||||
}
|
||||
|
||||
|
||||
public void showKickConfirmWindow(CreatureObject actor, CreatureObject target, Guild guild) {
|
||||
|
||||
if (target.getObjectID() == guild.getLeader() && target.getObjectID() == actor.getObjectID()) {
|
||||
@@ -889,7 +949,6 @@ public class GuildService implements INetworkDispatch {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void sendMailToGuild(String sender, String subject, String message, int guildId) {
|
||||
Guild guild = getGuildById(guildId);
|
||||
|
||||
@@ -917,12 +976,10 @@ public class GuildService implements INetworkDispatch {
|
||||
target.getClient().getSession().write(roomMessage.serialize());
|
||||
}
|
||||
|
||||
|
||||
public GuildObject getGuildObject() {
|
||||
return object;
|
||||
}
|
||||
|
||||
|
||||
public SWGSet<String> getGuildList() {
|
||||
return object.getGuildList();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user