From c9b2d1c2a2e52951faabfbbdebc362ddfc28a17c Mon Sep 17 00:00:00 2001 From: Waverunner Date: Tue, 20 May 2014 18:34:53 -0400 Subject: [PATCH] Added guild chat, guild information window added, added variables in future for sponsor system --- scripts/radial/object/guild_access_device.py | 40 +++++++++++++++----- scripts/radial/object/guild_registry.py | 6 ++- src/resources/guild/Guild.java | 30 ++++++++++++++- src/services/GuildService.java | 24 ++++++++++-- 4 files changed, 84 insertions(+), 16 deletions(-) diff --git a/scripts/radial/object/guild_access_device.py b/scripts/radial/object/guild_access_device.py index bd019f39..96be39bd 100644 --- a/scripts/radial/object/guild_access_device.py +++ b/scripts/radial/object/guild_access_device.py @@ -9,22 +9,42 @@ def createRadial(core, owner, target, radials): #radials.clear() if owner.getGuildId() != 0: - guild = core.guildService.getGuildById(owner.getGuildId) + guild = core.guildService.getGuildById(owner.getGuildId()) if guild is None: return - if guild.getLeader() == owner.getObjectID(): - radials.add(RadialOptions(0, RadialOptions.serverGuildGuildManagement, 3, '@guild:menu_guild_management')) - radials.add(RadialOptions(0, RadialOptions.serverGuildMemberManagement, 3, '@guild:menu_member_management')) + radials.add(RadialOptions(0, RadialOptions.serverGuildGuildManagement, 3, '@guild:menu_guild_management')) + radials.add(RadialOptions(0, RadialOptions.serverGuildMemberManagement, 3, '@guild:menu_member_management')) + + #Guild Management + radials.add(RadialOptions(0, RadialOptions.serverGuildInfo, 3, '@guild:menu_info')) + + #Member Management + + # Leader options + #if guild.getLeader() == owner.getObjectID(): + #Guild Management + #radials.add(RadialOptions(3, RadialOptions.serverGuildDisband, 3, '@guild:menu_disband')) + #radials.add(RadialOptions(3, 69, 3, '@guild:menu_leader_change')) + + # Sponsor options + #if guild.getSponsors().contains(owner.getObjectID()): - #Guild Management - radials.add(RadialOptions(3, RadialOptions.serverGuildDisband, 3, '@guild:menu_disband')) - - #Member Management - radials.add(RadialOptions(4, RadialOptions.serverGuildSponsor, 3, '@guild:menu_sponsor')) - return return def handleSelection(core, owner, target, option): + if option == RadialOptions.serverGuildInfo: + guild = core.guildService.getGuildById(owner.getGuildId()) + + guildInfoPrompt = "Guild Name: " + guild.getName() + "\n" + \ + "(neutral)\n" + \ + "Guild Abbreviation: " + guild.getAbbreviation() + "\n" + \ + "Guild Leader: " + guild.getLeaderName() + "\n" + \ + "GCW Region Defender: None\n" + \ + "GCW Region Defender Bonus: 0%\n" + \ + "Guild Members: " + str(guild.getMembers().size()) + wndGuildInfo = core.suiService.createMessageBox(core.suiService.MessageBoxType.MESSAGE_BOX_OK, '@guild:info_title', guildInfoPrompt, owner, target, 10) + core.suiService.openSUIWindow(wndGuildInfo) + return return \ No newline at end of file diff --git a/scripts/radial/object/guild_registry.py b/scripts/radial/object/guild_registry.py index 7b383d9a..fafb236b 100644 --- a/scripts/radial/object/guild_registry.py +++ b/scripts/radial/object/guild_registry.py @@ -40,8 +40,10 @@ def handleGuildCreateName(owner, window, eventType, returnList): return def doGuildCreate(owner, window, eventType, returnList): + core = NGECore().getInstance() if eventType == 0: - guild = NGECore().getInstance().guildService.createGuild(str(returnList.get(0)), str(owner.getAttachment('guildName')), owner) - owner.setGuildId(guild.getId()) + guild = core.guildService.createGuild(str(returnList.get(0)), str(owner.getAttachment('guildName')), owner) + core.guildService.joinGuild(guild, owner) + guild.getSponsers().add(owner.getObjectID()) return return \ No newline at end of file diff --git a/src/resources/guild/Guild.java b/src/resources/guild/Guild.java index 4c1f0201..50276a9d 100644 --- a/src/resources/guild/Guild.java +++ b/src/resources/guild/Guild.java @@ -34,11 +34,14 @@ public class Guild extends Delta implements Serializable, Comparable { private static final long serialVersionUID = 1L; private int id; + private int chatRoomId; private String abbreviation; private String name; private long leader; private String leaderName; private List members = new ArrayList(); + private List sponsors = new ArrayList(); + private List sponsoredPlayers = new ArrayList(); public Guild(int id, String abbreviation, String name, SWGObject leader) { this.id = id; @@ -46,7 +49,8 @@ public class Guild extends Delta implements Serializable, Comparable { this.name = name; this.leader = leader.getObjectID(); this.leaderName = leader.getCustomName(); - this.members.add(leader.getObjectID()); + //this.members.add(leader.getObjectID()); + //this.sponsors.add(leader.getObjectID()); } public Guild() { @@ -65,6 +69,14 @@ public class Guild extends Delta implements Serializable, Comparable { } } + public int getChatRoomId() { + return chatRoomId; + } + + public void setChatRoomId(int chatRoomId) { + this.chatRoomId = chatRoomId; + } + public String getAbbreviation() { synchronized(objectMutex) { return abbreviation; @@ -121,6 +133,22 @@ public class Guild extends Delta implements Serializable, Comparable { } } + public List getSponsors() { + return sponsors; + } + + public void setSponsors(List sponsors) { + this.sponsors = sponsors; + } + + public List getSponsoredPlayers() { + return sponsoredPlayers; + } + + public void setSponsoredPlayers(List sponsoredPlayers) { + this.sponsoredPlayers = sponsoredPlayers; + } + public byte[] getBytes() { synchronized(objectMutex) { IoBuffer buffer = createBuffer((getString().length() + 2)); diff --git a/src/services/GuildService.java b/src/services/GuildService.java index fed7c2c9..bce425d2 100644 --- a/src/services/GuildService.java +++ b/src/services/GuildService.java @@ -25,7 +25,10 @@ import java.util.Map; import resources.guild.Guild; import resources.objects.SWGSet; +import resources.objects.creature.CreatureObject; import resources.objects.guild.GuildObject; +import resources.objects.player.PlayerObject; +import services.chat.ChatRoom; import main.NGECore; import engine.resources.objects.SWGObject; import engine.resources.service.INetworkDispatch; @@ -59,11 +62,26 @@ public class GuildService implements INetworkDispatch { int listSize = object.getGuildList().size(); Guild guild = new Guild((listSize == 0 ? 1 : listSize + 1), abbreviation, name, leader); - object.getGuildList().add(guild); + core.chatService.createChatRoom("", "guild." + guild.getId(), leader.getCustomName(), false, true, false); + ChatRoom guildChat = core.chatService.createChatRoom("", "guild." + guild.getId() + ".GuildChat", leader.getCustomName(), false, true, false); + guild.setChatRoomId(guildChat.getRoomId()); + object.getGuildList().add(guild); return guild; } + public void joinGuild(Guild guild, CreatureObject joinee) { + PlayerObject ghost = joinee.getPlayerObject(); + if (ghost == null) + return; + + guild.getMembers().add(joinee.getObjectID()); + joinee.setGuildId(guild.getId()); + + core.chatService.joinChatRoom(joinee.getCustomName(), guild.getChatRoomId()); + // TODO: Send new member guild mail + } + public GuildObject getGuildObject() { return object; } @@ -88,7 +106,7 @@ public class GuildService implements INetworkDispatch { Guild guild = getGuildById(id); if (guild != null) { - object.getGuildList().add(guild); + object.getGuildList().remove(guild); return true; } @@ -99,7 +117,7 @@ public class GuildService implements INetworkDispatch { Guild guild = getGuildByAbbreviation(abbreviation); if (guild != null) { - object.getGuildList().add(guild); + object.getGuildList().remove(guild); return true; }