RuneHive-Game
Loading...
Searching...
No Matches
com.runehive.content.clanchannel.content.ClanViewer Class Reference

Handles viewing clan information. More...

Collaboration diagram for com.runehive.content.clanchannel.content.ClanViewer:

Classes

enum  ClanTab
enum  Filter

Public Member Functions

 ClanViewer (Player player)
void open (ClanChannel channel, ClanTab tab)
void open (ClanTab tab)
void update (ClanChannel channel)
void viewAchievements ()

Public Attributes

int clanIndex = 0
List< ClanChannelclanList = new ArrayList<>()
List< ClanMemberclanMembers = new ArrayList<>()
Filter filter = Filter.ALL_TIME
int memberIndex = 0

Private Member Functions

void drawClanDetails ()
void drawClanList (String key)
void drawClanMembers ()
String[] getDetails ()
 Gets the clan information details.
String[] getProfile (ClanMember member)

Private Attributes

final Player player
String searchKey = ""
ClanChannel viewing

Detailed Description

Handles viewing clan information.

Author
Daniel

Definition at line 21 of file ClanViewer.java.

Constructor & Destructor Documentation

◆ ClanViewer()

com.runehive.content.clanchannel.content.ClanViewer.ClanViewer ( Player player)

Definition at line 33 of file ClanViewer.java.

33 {
34 this.player = player;
35 }

References player.

Member Function Documentation

◆ drawClanDetails()

void com.runehive.content.clanchannel.content.ClanViewer.drawClanDetails ( )
private

Definition at line 90 of file ClanViewer.java.

90 {
91 String[] strings = getDetails();
92 assert strings.length != 0;
93 for (int index = 0, string = 53102; index < strings.length; index++, string += 2) {
94 player.send(new SendString(strings[index] == null ? "" : strings[index], string));
95 }
96 }
val index

References getDetails(), and player.

Referenced by open().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ drawClanList()

void com.runehive.content.clanchannel.content.ClanViewer.drawClanList ( String key)
private

Definition at line 67 of file ClanViewer.java.

67 {
68 Set<ClanChannel> channels = ClanRepository.getTopChanels(filter).orElse(null);
69 if (channels == null) return;
70 if (!key.isEmpty()) {
71 channels.removeIf(channel -> !channel.getName().contains(key));
72 }
73 int size = channels.size() > 13 ? channels.size() : 13;
74 Iterator<ClanChannel> iterator = channels.iterator();
75 for (int index = 0, string = 53202; index < size; index++, string += 2) {
76 if (iterator.hasNext()) {
77 ClanChannel channel = iterator.next();
78 String prefix = (index + 1) + ")";
79 player.send(new SendString((clanIndex == index ? "<col=ffffff>" : "") + prefix + " " + channel.getName(), string));
80 player.send(new SendTooltip("View " + channel.getName() + "'s clan profile", string));
81 } else {
82 player.send(new SendString("", string));
83 player.send(new SendTooltip("", string));
84 }
85 }
86 clanList = new ArrayList<>(channels);
87 player.send(new SendScrollbar(53300, size * 14));
88 }

References clanIndex, clanList, filter, com.runehive.content.clanchannel.ClanRepository.getTopChanels(), and player.

Referenced by open().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ drawClanMembers()

void com.runehive.content.clanchannel.content.ClanViewer.drawClanMembers ( )
private

Definition at line 134 of file ClanViewer.java.

134 {
135 int size = 18;
136 List<ClanMember> membersList = new ArrayList<>(size);
137 if (viewing != null) {
138 viewing.forEach(o -> {
139 if (o != null)
140 membersList.add(o);
141 });
142 size = membersList.size() < 18 ? 18 : membersList.size();
143 }
144 for (int i = 0, string = 55052; i < size; i++, string += 2) {
145 boolean valid = i < membersList.size();
146 ClanMember member = valid ? membersList.get(i) : null;
147 String name = valid ? member.rank.getString() + " " + member.name : "";
148 player.send(new SendString((i == memberIndex ? "<col=ffffff>" : "") + name, string));
149 player.send(new SendTooltip(valid ? "View " + member.name + "'s clan profile" : "", string));
150 }
151 player.send(new SendScrollbar(55050, size * 18));
152 clanMembers = membersList;
153
154 if (memberIndex > membersList.size())
155 return;
156
157 ClanMember member = membersList.get(memberIndex);
158
159 if (member == null)
160 return;
161
162 String[] strings = getProfile(member);
163
164 for (int index = 0, string = 55012; index < strings.length; index++, string += 2) {
165 player.send(new SendString(strings[index] == null ? "" : strings[index], string));
166 }
167 }

References clanMembers, getProfile(), com.runehive.content.clanchannel.ClanRank.getString(), memberIndex, com.runehive.content.clanchannel.ClanMember.name, player, com.runehive.content.clanchannel.ClanMember.rank, and viewing.

Referenced by open().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getDetails()

String[] com.runehive.content.clanchannel.content.ClanViewer.getDetails ( )
private

Gets the clan information details.

Definition at line 99 of file ClanViewer.java.

99 {
100 if (viewing == null)
101 return new String[10];
102 return new String[]{
103 "</col>Owner: " + viewing.getColor() + "<clan=7> " + Utility.formatName(viewing.getOwner()),
104 "</col>Established: " + viewing.getColor() + "" + viewing.getDetails().established,
105 "</col>Members: " + viewing.getColor() + "" + viewing.getMembers().size(),
106 "</col>Type: " + viewing.getColor() + viewing.getDetails().type.getIcon() + " " + Utility.formatEnum(viewing.getDetails().type.name()),
107 "</col>Level: " + viewing.getColor() + "" + Utility.formatEnum(viewing.getDetails().level.name()),
108 "</col>Tag " + viewing.getColor() + "" + (viewing.getTag().length() <= 0 ? "None" : ("[" + viewing.getTag()) + "]"),
109 "</col>Experience: " + viewing.getColor() + "" + Utility.formatDigits(viewing.getDetails().experience),
110 "</col>Points: " + viewing.getColor() + "" + Utility.formatDigits(viewing.getDetails().points),
111 "</col>Achievements Completed: " + viewing.getColor() + "NA",
112 "</col>Tasks Completed: " + viewing.getColor() + "NA",
113// (channel.modifier == null ? "None" : (channel.modifier.name) + "(" + channel.modifierDuration + " minute(s)") + ")",
114 "</col>Avg. Total: " + viewing.getColor() + "" + viewing.getDetails().getAverageTotal(),
115 };
116 }

References com.runehive.util.Utility.formatDigits(), com.runehive.util.Utility.formatEnum(), com.runehive.util.Utility.formatName(), and viewing.

Referenced by drawClanDetails().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getProfile()

String[] com.runehive.content.clanchannel.content.ClanViewer.getProfile ( ClanMember member)
private

Definition at line 118 of file ClanViewer.java.

118 {
119 if (member == null)
120 return new String[10];
121 return new String[]{
122 "</col>Rank: " + viewing.getColor() + "" + member.rank.getString() + " " + member.rank.name,
123 "</col>Joined: " + viewing.getColor() + "" + member.joined,
124 "</col>Exp Gained: " + viewing.getColor() + "" + Utility.formatDigits(member.expGained),
125 "</col>PvP Kills: " + viewing.getColor() + "" + member.playerKills,
126 "</col>PvM Kills: " + viewing.getColor() + "" + member.npcKills,
127 "",
128 "",
129 "",
130 "",
131 };
132 }

References com.runehive.content.clanchannel.ClanMember.expGained, com.runehive.util.Utility.formatDigits(), com.runehive.content.clanchannel.ClanRank.getString(), com.runehive.content.clanchannel.ClanMember.joined, com.runehive.content.clanchannel.ClanRank.name, com.runehive.content.clanchannel.ClanMember.npcKills, com.runehive.content.clanchannel.ClanMember.playerKills, com.runehive.content.clanchannel.ClanMember.rank, and viewing.

Referenced by drawClanMembers().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ open() [1/2]

void com.runehive.content.clanchannel.content.ClanViewer.open ( ClanChannel channel,
ClanTab tab )

Definition at line 41 of file ClanViewer.java.

41 {
42 int interfaceId = 0;
43 this.viewing = channel;
44 String name = Utility.formatName(filter.name().toLowerCase().replaceAll("_", " "));
45 Item[] showcase = viewing == null ? new Item[3] : viewing.getShowcaseItems();
46
47 if (tab == ClanTab.OVERVIEW) {
48 drawClanList(searchKey);
49 drawClanDetails();
50 interfaceId = 53000;
51 player.send(new SendString(name + ":", 53006));
52 } else if (tab == ClanTab.MEMBERS) {
53 drawClanMembers();
54 interfaceId = 53500;
55 player.send(new SendString("Member List:", 53006));
56 }
57
58 player.send(new SendConfig(531, tab.ordinal()));
59 player.send(new SendString(viewing != null ? viewing.getName() : "", 53009));
60 player.send(new SendString(viewing != null ? viewing.getSlogan() : "", 53010));
61 player.send(new SendString(searchKey.isEmpty() ? "Search for clan" : searchKey, 53012));
62 player.send(new SendString(name, 53019));
63 player.send(new SendItemOnInterface(53011, showcase));
64 player.interfaceManager.open(interfaceId);
65 }

References drawClanDetails(), drawClanList(), drawClanMembers(), filter, com.runehive.util.Utility.formatName(), com.runehive.content.clanchannel.content.ClanViewer.ClanTab.MEMBERS, com.runehive.content.clanchannel.content.ClanViewer.ClanTab.OVERVIEW, player, searchKey, and viewing.

Here is the call graph for this function:

◆ open() [2/2]

void com.runehive.content.clanchannel.content.ClanViewer.open ( ClanTab tab)

Definition at line 37 of file ClanViewer.java.

37 {
38 open(viewing, tab);
39 }

References open(), and viewing.

Referenced by open(), com.runehive.content.dialogue.impl.ClanmasterDialogue.sendDialogues(), and update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update()

void com.runehive.content.clanchannel.content.ClanViewer.update ( ClanChannel channel)

Definition at line 169 of file ClanViewer.java.

169 {
170 if (player.interfaceManager.isInterfaceOpen(53000))
171 open(channel, ClanTab.OVERVIEW);
172 if (player.interfaceManager.isSidebar(Config.CLAN_TAB, 42000)) {
173 ClanChannelHandler.manage(player);
174 }
175 }

References com.runehive.Config.CLAN_TAB, com.runehive.content.clanchannel.channel.ClanChannelHandler.manage(), open(), com.runehive.content.clanchannel.content.ClanViewer.ClanTab.OVERVIEW, and player.

Referenced by com.runehive.content.clanchannel.channel.ClanChannel.setName(), com.runehive.content.clanchannel.channel.ClanChannel.setSlogan(), and com.runehive.content.clanchannel.channel.ClanChannel.setTag().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ viewAchievements()

void com.runehive.content.clanchannel.content.ClanViewer.viewAchievements ( )

Definition at line 177 of file ClanViewer.java.

177 {
178 ClanChannel channel = player.clanChannel;
179 int size = ClanAchievement.values().length;
180
181 Difficulty old = null;
182
183 for (int index = 0, string = 37114; index < size; index++, string++) {
184 Optional<ClanAchievement> achievement = ClanAchievement.forOrdinal(index);
185 if (achievement.isPresent()) {
186 boolean completed = channel.getDetails().completedAchievement(achievement.get());
187 Difficulty difficulty = achievement.get().difficulty;
188
189 if (old != difficulty) {
190 string++;
191 player.send(new SendString("<col=255>[" + Utility.formatEnum(difficulty.name()) + "]", string));
192 string++;
193 player.send(new SendString("", string));
194 string++;
195 }
196
197 old = difficulty;
198 int progress = channel.getDetails().getAchievementCompletion(achievement.get());
199 int goal = achievement.get().amount;
200
201 String name = (completed ? "<col=347043>" + "" : "") + achievement.get().details + " (" + Utility.getPercentageAmount(progress, goal) + "%)";
202 player.send(new SendString(name, string));
203 } else {
204 player.send(new SendString("", string));
205 }
206 }
207
208 player.send(new SendString("<col=000000>These are all the clan achievements available", 37111));
209 player.send(new SendString("<col=000000>Completed achievements will be highlighted in <col=347043>green</col>", 37112));
210 player.send(new SendString("Completed: 0/" + size, 37113));
211 player.send(new SendString("", 37114));
212 player.send(new SendString("", 37107));
213 player.send(new SendString(channel.getName() + "'s Achievements", 37103));
214 player.send(new SendScrollbar(37110, 500));
215 player.interfaceManager.open(37100);
216 }

References com.runehive.util.Utility.formatEnum(), com.runehive.content.clanchannel.content.ClanAchievement.forOrdinal(), com.runehive.util.Utility.getPercentageAmount(), and player.

Here is the call graph for this function:

Member Data Documentation

◆ clanIndex

int com.runehive.content.clanchannel.content.ClanViewer.clanIndex = 0

Definition at line 26 of file ClanViewer.java.

Referenced by drawClanList().

◆ clanList

List<ClanChannel> com.runehive.content.clanchannel.content.ClanViewer.clanList = new ArrayList<>()

Definition at line 28 of file ClanViewer.java.

Referenced by drawClanList().

◆ clanMembers

List<ClanMember> com.runehive.content.clanchannel.content.ClanViewer.clanMembers = new ArrayList<>()

Definition at line 29 of file ClanViewer.java.

Referenced by drawClanMembers().

◆ filter

Filter com.runehive.content.clanchannel.content.ClanViewer.filter = Filter.ALL_TIME

Definition at line 31 of file ClanViewer.java.

Referenced by drawClanList(), and open().

◆ memberIndex

int com.runehive.content.clanchannel.content.ClanViewer.memberIndex = 0

Definition at line 27 of file ClanViewer.java.

Referenced by drawClanMembers().

◆ player

final Player com.runehive.content.clanchannel.content.ClanViewer.player
private

◆ searchKey

String com.runehive.content.clanchannel.content.ClanViewer.searchKey = ""
private

Definition at line 30 of file ClanViewer.java.

Referenced by open().

◆ viewing

ClanChannel com.runehive.content.clanchannel.content.ClanViewer.viewing
private

Definition at line 25 of file ClanViewer.java.

Referenced by drawClanMembers(), getDetails(), getProfile(), open(), and open().


The documentation for this class was generated from the following file: