mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-10-16 06:13:45 -04:00
Added GuildMember class for handling member specific variables, changed sponsoring to use GuildMember
This commit is contained in:
@@ -5,7 +5,8 @@ from main import NGECore
|
||||
import sys
|
||||
|
||||
def createRadial(core, owner, target, radials):
|
||||
|
||||
# http://i293.photobucket.com/albums/mm62/cebot/radial.jpg
|
||||
|
||||
#radials.clear()
|
||||
|
||||
if owner.getGuildId() != 0:
|
||||
@@ -15,30 +16,50 @@ def createRadial(core, owner, target, radials):
|
||||
if guild is None:
|
||||
return
|
||||
|
||||
member = guild.getMember(owner.getObjectID())
|
||||
|
||||
|
||||
# TODO: Add List of Guilds radial option
|
||||
# TODO: Add List of Guild Wars radial option http://i293.photobucket.com/albums/mm62/cebot/wars.jpg << List of Guild Wars
|
||||
|
||||
radials.add(RadialOptions(0, RadialOptions.serverGuildGuildManagement, 3, '@guild:menu_guild_management')) # Guild Management
|
||||
radials.add(RadialOptions(0, RadialOptions.serverGuildMemberManagement, 3, '@guild:menu_member_management')) # Member Management
|
||||
|
||||
# Guild Management
|
||||
radials.add(RadialOptions(0, RadialOptions.serverGuildInfo, 3, '@guild:menu_info')) # Guild Information
|
||||
radials.add(RadialOptions(3, RadialOptions.serverGuildInfo, 3, '@guild:menu_info')) # Guild Information
|
||||
#radials.add(RadialOptions(3, RadialOptions.serverGuildEnemies, 3, '@guild:menu_enemies')) # Guild Enemies
|
||||
# TODO: Add Rank List
|
||||
# TODO: Add Rank Summary
|
||||
|
||||
#if member.hasDisbandPermission():
|
||||
#radials.add(RadialOptions(3, RadialOptions.serverGuildDisband, 3, '@guild:menu_disband')) # Disband Guild
|
||||
#if member.hasChangeNamePermission():
|
||||
#radials.add(RadialOptions(3, RadialOptions.serverGuildNameChange, 3, '@guild:menu_namechange'))
|
||||
#if owner.getObjectID() == guild.getLeader():
|
||||
#radials.add(RadialOptions(4, RadialOptions.serverTerminalPermissions, 3, '@guild:menu_permission_list')) # Permission List
|
||||
|
||||
# Member Management
|
||||
|
||||
# - Sponsor options
|
||||
if guild.getSponsers().contains(owner.getObjectID()):
|
||||
#radials.add(RadialOptions(4, RadialOptions.serverGuildMembers, 3, '@guild:menu_members')) # Guild Members
|
||||
if member.hasSponsorPermission():
|
||||
radials.add(RadialOptions(4, RadialOptions.serverGuildSponsor, 3, '@guild:menu_sponsor')) # Sponsor for Membership
|
||||
|
||||
if guild.getSponsoredPlayers().size() > 0:
|
||||
radials.add(RadialOptions(4, RadialOptions.serverGuildSponsored, 3, '@guild:menu_sponsored')) # Sponsored for Membership
|
||||
|
||||
|
||||
if member.hasAcceptPermission() and guild.getSponsoredPlayers().size() > 0:
|
||||
radials.add(RadialOptions(4, RadialOptions.serverGuildSponsored, 3, '@guild:menu_sponsored')) # Sponsored for Membership
|
||||
#if owner.getObjectID() == guild.getLeader():
|
||||
#radials.add(RadialOptions(4, 69, 3, '@guild:menu_leader_change')) # Transfer PA Leadership
|
||||
return
|
||||
|
||||
return
|
||||
|
||||
def handleSelection(core, owner, target, option):
|
||||
guild = core.guildService.getGuildById(owner.getGuildId())
|
||||
|
||||
if guild is None:
|
||||
return
|
||||
|
||||
# Guild Management
|
||||
|
||||
# - Guild Info
|
||||
if option == RadialOptions.serverGuildInfo:
|
||||
guild = core.guildService.getGuildById(owner.getGuildId())
|
||||
|
||||
guildInfoPrompt = "Guild Name: " + guild.getName() + "\n" + \
|
||||
"(neutral)\n" + \
|
||||
"Guild Abbreviation: " + guild.getAbbreviation() + "\n" + \
|
||||
@@ -50,11 +71,29 @@ def handleSelection(core, owner, target, option):
|
||||
core.suiService.openSUIWindow(wndGuildInfo)
|
||||
return
|
||||
|
||||
# Member Management
|
||||
|
||||
# - Guild Members
|
||||
elif option == RadialOptions.serverGuildMembers:
|
||||
return
|
||||
|
||||
# - Sponsor for Membership
|
||||
elif option == RadialOptions.serverGuildSponsor:
|
||||
core.guildService.handleGuildSponsor(owner)
|
||||
return
|
||||
|
||||
# - Sponsored for Membership
|
||||
elif option == RadialOptions.serverGuildSponsored:
|
||||
core.guildService.handleManageSponsoredPlayers(owner)
|
||||
return
|
||||
|
||||
# - Permission List
|
||||
elif option == RadialOptions.serverTerminalPermissions:
|
||||
core.guildService.handleGuildPermissionList()
|
||||
return
|
||||
|
||||
# - Transfer PA Leadership
|
||||
elif option == 69:
|
||||
return
|
||||
|
||||
return
|
||||
@@ -43,7 +43,8 @@ def doGuildCreate(owner, window, eventType, returnList):
|
||||
core = NGECore().getInstance()
|
||||
if eventType == 0:
|
||||
guild = core.guildService.createGuild(str(returnList.get(0)), str(owner.getAttachment('guildName')), owner)
|
||||
core.guildService.joinGuild(guild, owner, None)
|
||||
guild.getSponsers().add(owner.getObjectID())
|
||||
member = core.guildService.joinGuild(guild, owner, None)
|
||||
if member is not None:
|
||||
member.giveAllPermissions()
|
||||
return
|
||||
return
|
||||
@@ -45,10 +45,8 @@ public class Guild extends Delta implements Serializable, Comparable<Guild> {
|
||||
private String name;
|
||||
private long leader;
|
||||
private String leaderName;
|
||||
private List<Long> members = new ArrayList<Long>();
|
||||
private List<Long> sponsors = new ArrayList<Long>();
|
||||
private Map<Long, GuildMember> members = new HashMap<Long, GuildMember>();
|
||||
private Map<Long, String> sponsoredPlayers = new HashMap<Long, String>();
|
||||
|
||||
public Guild(int id, String abbreviation, String name, SWGObject leader) {
|
||||
this.id = id;
|
||||
this.abbreviation = abbreviation;
|
||||
@@ -59,8 +57,32 @@ public class Guild extends Delta implements Serializable, Comparable<Guild> {
|
||||
//this.sponsors.add(leader.getObjectID());
|
||||
}
|
||||
|
||||
public Guild() {
|
||||
|
||||
public Guild() { }
|
||||
|
||||
public GuildMember addMember(long member) {
|
||||
GuildMember permissions = new GuildMember();
|
||||
members.put(member, permissions);
|
||||
return permissions;
|
||||
}
|
||||
|
||||
public void sendGuildMail(String sender, String subject, String message) {
|
||||
NGECore core = NGECore.getInstance();
|
||||
Date date = new Date();
|
||||
members.forEach((id, member) -> {
|
||||
Mail guildMail = new Mail();
|
||||
guildMail.setMailId(core.chatService.generateMailId());
|
||||
guildMail.setTimeStamp((int) date.getTime());
|
||||
guildMail.setRecieverId(id);
|
||||
guildMail.setStatus(Mail.NEW);
|
||||
guildMail.setMessage(message);
|
||||
guildMail.setSubject(subject);
|
||||
guildMail.setSenderName(sender);
|
||||
core.chatService.storePersistentMessage(guildMail);
|
||||
|
||||
if (core.objectService.getObject(id) != null) {
|
||||
core.chatService.sendPersistentMessageHeader(core.objectService.getObject(id).getClient(), guildMail);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
@@ -123,7 +145,7 @@ public class Guild extends Delta implements Serializable, Comparable<Guild> {
|
||||
}
|
||||
}
|
||||
|
||||
public List<Long> getMembers() {
|
||||
public Map<Long, GuildMember> getMembers() {
|
||||
return members;
|
||||
}
|
||||
|
||||
@@ -139,14 +161,6 @@ public class Guild extends Delta implements Serializable, Comparable<Guild> {
|
||||
}
|
||||
}
|
||||
|
||||
public List<Long> getSponsers() {
|
||||
return sponsors;
|
||||
}
|
||||
|
||||
public void setSponsors(List<Long> sponsors) {
|
||||
this.sponsors = sponsors;
|
||||
}
|
||||
|
||||
public Map<Long, String> getSponsoredPlayers() {
|
||||
return sponsoredPlayers;
|
||||
}
|
||||
@@ -155,25 +169,10 @@ public class Guild extends Delta implements Serializable, Comparable<Guild> {
|
||||
this.sponsoredPlayers = sponsoredPlayers;
|
||||
}
|
||||
|
||||
public void sendGuildMail(String sender, String subject, String message) {
|
||||
NGECore core = NGECore.getInstance();
|
||||
Date date = new Date();
|
||||
members.forEach(member -> {
|
||||
Mail guildMail = new Mail();
|
||||
guildMail.setMailId(core.chatService.generateMailId());
|
||||
guildMail.setTimeStamp((int) date.getTime());
|
||||
guildMail.setRecieverId(member);
|
||||
guildMail.setStatus(Mail.NEW);
|
||||
guildMail.setMessage(message);
|
||||
guildMail.setSubject(subject);
|
||||
guildMail.setSenderName(sender);
|
||||
core.chatService.storePersistentMessage(guildMail);
|
||||
|
||||
if (core.objectService.getObject(member) != null) {
|
||||
core.chatService.sendPersistentMessageHeader(core.objectService.getObject(member).getClient(), guildMail);
|
||||
}
|
||||
});
|
||||
public GuildMember getMember(long objectID) {
|
||||
return members.get(objectID);
|
||||
}
|
||||
|
||||
public byte[] getBytes() {
|
||||
synchronized(objectMutex) {
|
||||
IoBuffer buffer = createBuffer((getString().length() + 2));
|
||||
|
||||
@@ -0,0 +1,187 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2013 <Project SWG>
|
||||
*
|
||||
* This File is part of NGECore2.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
|
||||
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
|
||||
******************************************************************************/
|
||||
package resources.guild;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class GuildMember {
|
||||
private long objectId;
|
||||
private long joinTime;
|
||||
// TODO: These might have to be moved to a new GuildRank class depending on how permissions worked for NGE
|
||||
//this works for now... Lack of NGE Guild Rank guides makes re-creation difficult (Ranks introduced Game Update 8: http://swg.wikia.com/wiki/Game_Update_8)
|
||||
private boolean mailPermission = false;
|
||||
private boolean sponsorPermission = false;
|
||||
private boolean titlePermission = false;
|
||||
private boolean kickPermission = false;
|
||||
private boolean acceptPermission = false;
|
||||
private boolean warPermission = false;
|
||||
private boolean changeNamePermission = false;
|
||||
private boolean disbandPermission = false;
|
||||
|
||||
public GuildMember() { }
|
||||
|
||||
public GuildMember(long objectId) {
|
||||
this.objectId = objectId;
|
||||
this.joinTime = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public void removeAllPermissions() {
|
||||
this.mailPermission = false;
|
||||
this.sponsorPermission = false;
|
||||
this.titlePermission = false;
|
||||
this.kickPermission = false;
|
||||
this.acceptPermission = false;
|
||||
this.warPermission = false;
|
||||
this.changeNamePermission = false;
|
||||
this.disbandPermission = false;
|
||||
}
|
||||
|
||||
public void giveAllPermissions() {
|
||||
this.mailPermission = true;
|
||||
this.sponsorPermission = true;
|
||||
this.titlePermission = true;
|
||||
this.kickPermission = true;
|
||||
this.acceptPermission = true;
|
||||
this.warPermission = true;
|
||||
this.changeNamePermission = true;
|
||||
this.disbandPermission = true;
|
||||
}
|
||||
|
||||
public long getObjectId() {
|
||||
return objectId;
|
||||
}
|
||||
public void setObjectId(long objectId) {
|
||||
this.objectId = objectId;
|
||||
}
|
||||
public long getJoinTime() {
|
||||
return joinTime;
|
||||
}
|
||||
|
||||
public void setJoinTime(long joinTime) {
|
||||
this.joinTime = joinTime;
|
||||
}
|
||||
|
||||
public boolean hasMailPermission() {
|
||||
return mailPermission;
|
||||
}
|
||||
public void setMailPermission(boolean mailPermission) {
|
||||
this.mailPermission = mailPermission;
|
||||
}
|
||||
|
||||
public boolean hasSponsorPermission() {
|
||||
return sponsorPermission;
|
||||
}
|
||||
public void setSponsorPermission(boolean sponsorPermission) {
|
||||
this.sponsorPermission = sponsorPermission;
|
||||
}
|
||||
public boolean hasTitlePermission() {
|
||||
return titlePermission;
|
||||
}
|
||||
public void setTitlePermission(boolean titlePermission) {
|
||||
this.titlePermission = titlePermission;
|
||||
}
|
||||
public boolean hasKickPermission() {
|
||||
return kickPermission;
|
||||
}
|
||||
public void setKickPermission(boolean kickPermission) {
|
||||
this.kickPermission = kickPermission;
|
||||
}
|
||||
public boolean hasAcceptPermission() {
|
||||
return acceptPermission;
|
||||
}
|
||||
public void setAcceptPermission(boolean acceptPermission) {
|
||||
this.acceptPermission = acceptPermission;
|
||||
}
|
||||
public boolean hasWarPermission() {
|
||||
return warPermission;
|
||||
}
|
||||
public void setWarPermission(boolean warPermission) {
|
||||
this.warPermission = warPermission;
|
||||
}
|
||||
public boolean hasChangeNamePermission() {
|
||||
return changeNamePermission;
|
||||
}
|
||||
public void setChangeNamePermission(boolean changeNamePermission) {
|
||||
this.changeNamePermission = changeNamePermission;
|
||||
}
|
||||
public boolean hasDisbandPermission() {
|
||||
return disbandPermission;
|
||||
}
|
||||
public void setDisbandPermission(boolean disbandPermission) {
|
||||
this.disbandPermission = disbandPermission;
|
||||
}
|
||||
|
||||
public Map<Long, String> getAllPermissions() {
|
||||
Map<Long, String> permissions = new HashMap<Long, String>();
|
||||
permissions.put((long) 1, "@guild:permission_mail");
|
||||
permissions.put((long) 3, "@guild:permission_sponsor");
|
||||
permissions.put((long) 5, "@guild:permission_title");
|
||||
permissions.put((long) 7, "@guild:permission_accept");
|
||||
permissions.put((long) 9, "@guild:permission_kick");
|
||||
permissions.put((long) 11, "@guild:permission_war");
|
||||
permissions.put((long) 13, "@guild:permission_namechange");
|
||||
permissions.put((long) 15, "@guild:permission_disband");
|
||||
|
||||
|
||||
if (hasMailPermission())
|
||||
permissions.put((long) 2, "@guild:permission_mail_yes");
|
||||
else
|
||||
permissions.put((long) 2, "@guild:permission_mail_no");
|
||||
|
||||
if (hasSponsorPermission())
|
||||
permissions.put((long) 4, "@guild:permission_sponsor_yes");
|
||||
else
|
||||
permissions.put((long) 4, "@guild:permission_sponsor_no");
|
||||
|
||||
if (hasTitlePermission())
|
||||
permissions.put((long) 6, "@guild:permission_title_yes");
|
||||
else
|
||||
permissions.put((long) 6, "@guild:permission_title_no");
|
||||
|
||||
if (hasAcceptPermission())
|
||||
permissions.put((long) 8, "@guild:permission_accept_yes");
|
||||
else
|
||||
permissions.put((long) 8, "@guild:permission_accept_no");
|
||||
|
||||
if (hasKickPermission())
|
||||
permissions.put((long) 10, "@guild:permission_kick_yes");
|
||||
else
|
||||
permissions.put((long) 10, "@guild:permission_kick_no");
|
||||
|
||||
if (hasWarPermission())
|
||||
permissions.put((long) 12, "@guild:permission_war_yes");
|
||||
else
|
||||
permissions.put((long) 12, "@guild:permission_war_no");
|
||||
|
||||
if (hasChangeNamePermission())
|
||||
permissions.put((long) 14, "@guild:permission_namechange_yes");
|
||||
else
|
||||
permissions.put((long) 14, "@guild:permission_namechange_no");
|
||||
|
||||
if (hasDisbandPermission())
|
||||
permissions.put((long) 16, "@guild:permission_disband_yes");
|
||||
else
|
||||
permissions.put((long) 16, "@guild:permission_disband_no");
|
||||
return permissions;
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,7 @@ import java.util.Vector;
|
||||
import resources.common.OutOfBand;
|
||||
import resources.datatables.DisplayType;
|
||||
import resources.guild.Guild;
|
||||
import resources.guild.GuildMember;
|
||||
import resources.objects.SWGSet;
|
||||
import resources.objects.creature.CreatureObject;
|
||||
import resources.objects.guild.GuildObject;
|
||||
@@ -84,12 +85,14 @@ public class GuildService implements INetworkDispatch {
|
||||
return guild;
|
||||
}
|
||||
|
||||
public void joinGuild(Guild guild, CreatureObject joinee, CreatureObject acceptor) {
|
||||
public GuildMember joinGuild(Guild guild, CreatureObject joinee, CreatureObject acceptor) {
|
||||
GuildMember member = null;
|
||||
PlayerObject ghost = joinee.getPlayerObject();
|
||||
if (ghost == null)
|
||||
return;
|
||||
return member;
|
||||
|
||||
member = guild.addMember(joinee.getObjectID());
|
||||
|
||||
guild.getMembers().add(joinee.getObjectID());
|
||||
joinee.setGuildId(guild.getId());
|
||||
|
||||
guild.getSponsoredPlayers().remove(joinee.getObjectID());
|
||||
@@ -129,6 +132,11 @@ public class GuildService implements INetworkDispatch {
|
||||
}
|
||||
});
|
||||
}
|
||||
return member;
|
||||
}
|
||||
|
||||
public void handleGuildPermissionList(CreatureObject actor, Guild guild) {
|
||||
|
||||
}
|
||||
|
||||
public void handleGuildSponsor(CreatureObject actor) {
|
||||
@@ -174,7 +182,7 @@ public class GuildService implements INetworkDispatch {
|
||||
actor.sendSystemMessage(OutOfBand.ProsePackage("@guild:sponsor_self", "TU", cOwner.getCustomName(), "TT", guild.getName()), DisplayType.Broadcast);
|
||||
((CreatureObject)cOwner).sendSystemMessage(OutOfBand.ProsePackage("@guild:sponsor_target", "TT", guild.getName(), "TU", actor.getCustomName()), DisplayType.Broadcast);
|
||||
|
||||
guild.sendGuildMail(guild.getName(), "@guildmail:sponsor_subject", new Stf("@guild:sponsor_text").getStfValue().replace("%TU", actor.getCustomName()).replace("%TT", cOwner.getCustomName()));
|
||||
guild.sendGuildMail(guild.getName(), "@guildmail:sponsor_subject", new Stf("@guildmail:sponsor_text").getStfValue().replace("%TU", actor.getCustomName()).replace("%TT", cOwner.getCustomName()));
|
||||
});
|
||||
core.suiService.openSUIWindow(wndSponsoredConfirm);
|
||||
|
||||
@@ -259,7 +267,7 @@ public class GuildService implements INetworkDispatch {
|
||||
public void handleGuildDeclineSponsorship(Guild guild, CreatureObject actor, CreatureObject sponsoree) {
|
||||
guild.getSponsoredPlayers().remove(sponsoree.getObjectID());
|
||||
|
||||
guild.sendGuildMail(guild.getName(), "@guildmail:decline_subject", new Stf("@guildmail:decline_text").getStfValue().replace("%TU", actor.getCustomName()).replace("%TO", sponsoree.getCustomName()));
|
||||
guild.sendGuildMail(guild.getName(), "@guildmail:decline_subject", new Stf("@guildmail:decline_text").getStfValue().replace("%TU", actor.getCustomName()).replace("%TT", sponsoree.getCustomName()));
|
||||
|
||||
Mail declinedMail = new Mail();
|
||||
declinedMail.setMailId(core.chatService.generateMailId());
|
||||
|
||||
@@ -262,7 +262,7 @@ public class ChatService implements INetworkDispatch {
|
||||
|
||||
if(sender == null)
|
||||
return;
|
||||
|
||||
// TODO: Recipient handling for values: citizens, group, guild, guild ranks (ace, boot, admiral, etc.) - Nulls at this point atm
|
||||
SWGObject recipient = getObjectByFirstName(packet.getRecipient());
|
||||
|
||||
PlayerObject recipientGhost = (PlayerObject) recipient.getSlottedObject("ghost");
|
||||
|
||||
Reference in New Issue
Block a user