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

Handles the clan chat channel. More...

Inheritance diagram for com.runehive.content.clanchannel.channel.ClanChannel:
Collaboration diagram for com.runehive.content.clanchannel.channel.ClanChannel:

Public Member Functions

void activateAchievement (ClanAchievement achievement)
void activateTask (ClanTaskKey key, String name)
void activateTask (ClanTaskKey key, String name, int amount)
int activeSize ()
void addExperience (double experience)
void ban (String name)
boolean canManage (ClanMember member)
void chat (String name, String message)
int compareTo (ClanChannel other)
boolean equals (Object obj)
void forEach (Consumer< ClanMember > member)
 Handles looping through each clan member.
String getColor ()
ClanDetails getDetails ()
ClanChannelHandler getHandler ()
ClanManagement getManagement ()
Optional< ClanMembergetMember (String name)
Set< ClanMembergetMembers ()
String getName ()
String getOwner ()
String getPassword ()
ClanShowcase getShowcase ()
Item[] getShowcaseItems ()
String getSlogan ()
String getTag ()
int hashCode ()
boolean isLocked ()
boolean lootshareEnabled ()
void message (Object... messages)
 Handles messaging all the members in the clan channel.
void receiveTask (Difficulty difficulty)
void setColor (String color)
void setName (Player player, String name)
void setRank (ClanMember member, ClanRank rank)
void setSlogan (Player player, String slogan)
void setTag (Player player, String tag)
int size ()
void splitLoot (Player player, Mob dead, Item item)
JsonObject toJson ()
void unban (Player player, int index)

Static Public Member Functions

static ClanChannel create (Player player)
static void load (String owner)

Package Functions

void add (Player player, ClanMember member)
boolean canEnter (ClanMember member)
void connect (Player player)
 Handles a player connecting to the clan channel.
void disconnect (String name, boolean logout)
 Handles disconnecting a player from the clan channel.
void establish (Player player, ClanMember member)
List< ClanMembergetActiveMembers ()
boolean hasPassword ()
boolean isBanned (String name)
boolean isPassword (String input)

Package Attributes

final List< String > bannedMembers = new ArrayList<>()
 A list of banned members.

Private Member Functions

boolean addMember (ClanMember member)
 ClanChannel ()
void forPlayers (Consumer< Player > player)
 Handles looping through each clan member.

Private Attributes

int active
 The total active logged in members.
ClanDetails details = new ClanDetails(this)
 The clan channel details.
ClanChannelHandler handler = new ClanChannelHandler(this)
 The clan channel handler.
ClanManagement management = new ClanManagement(this)
 The clan channel management tab panel.
final Set< ClanMembermembers = new HashSet<>()
 The clan channel member set.
ClanShowcase showcase = new ClanShowcase(this)
 The clan channel showcase items.

Static Private Attributes

static final Gson GSON = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting().create()

Detailed Description

Handles the clan chat channel.

Author
Daniel
Michael

Definition at line 34 of file ClanChannel.java.

Constructor & Destructor Documentation

◆ ClanChannel()

com.runehive.content.clanchannel.channel.ClanChannel.ClanChannel ( )
private

Definition at line 59 of file ClanChannel.java.

59 {
60 }

Referenced by activateTask(), compareTo(), create(), equals(), load(), and setRank().

Here is the caller graph for this function:

Member Function Documentation

◆ activateAchievement()

void com.runehive.content.clanchannel.channel.ClanChannel.activateAchievement ( ClanAchievement achievement)

Definition at line 295 of file ClanChannel.java.

295 {
296 final int current = details.achievements.computeIfAbsent(achievement, a -> 0);
297 for (ClanAchievement list : ClanAchievement.values()) {
298 if (list == achievement) {
299 details.achievements.put(achievement, current + 1);
300 if (details.completedAchievement(list)) {
301 message("Achievement completed! " + list.details, "We have earned " + list.getPoints() + " CP and " + Utility.formatDigits(list.getExperience()) + " Clan EXP.");
302 }
303 }
304 }
305 }
ClanDetails details
The clan channel details.
void message(Object... messages)
Handles messaging all the members in the clan channel.

References details, com.runehive.util.Utility.formatDigits(), and message().

Referenced by activateTask(), and add().

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

◆ activateTask() [1/2]

void com.runehive.content.clanchannel.channel.ClanChannel.activateTask ( ClanTaskKey key,
String name )

Definition at line 252 of file ClanChannel.java.

252 {
253 activateTask(key, name, 1);
254 }
void activateTask(ClanTaskKey key, String name)

References activateTask().

Referenced by activateTask().

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

◆ activateTask() [2/2]

void com.runehive.content.clanchannel.channel.ClanChannel.activateTask ( ClanTaskKey key,
String name,
int amount )

Definition at line 256 of file ClanChannel.java.

256 {
257 if (details.clanTask == null)
258 return;
259 ClanTask task = details.clanTask;
260 if (task.key != key)
261 return;
262 double experience = task.getProgressExperience();
263 int progress = details.taskAmount - amount;
264 if (progress <= 0) {
265 int reward = details.clanTask.getReward();
266 details.points += reward;
267 message("Task complete! Reward: <col=255>" + reward + "</col> CP. We now have: <col=255>" + Utility.formatDigits(details.points) + "</col> CP.");
268 details.clanTask = null;
269 progress = 0;
270 activateAchievement(ClanAchievement.TASKS_I);
271 activateAchievement(ClanAchievement.TASKS_II);
272 activateAchievement(ClanAchievement.TASKS_III);
273 }
274
275 details.taskAmount = progress;
276 addExperience(experience);
277 getMember(name).ifPresent(member -> {
278 member.expGained += experience;
279 if (task.type == ClanType.PVP) {
280 member.playerKills++;
281 } else if (task.type == ClanType.PVM) {
282 member.npcKills++;
283 }
284
285 member.player.ifPresent(player -> {
286 if (!player.lastClan.isEmpty() && !player.lastClan.equalsIgnoreCase(player.getName())) {
287 ClanChannel channel = ClanRepository.getChannel(player.lastClan);
288 if (channel != null)
289 channel.disconnect(name, false);
290 }
291 });
292 });
293 }
Optional< ClanMember > getMember(String name)
void activateAchievement(ClanAchievement achievement)
void disconnect(String name, boolean logout)
Handles disconnecting a player from the clan channel.
PVM
Clans that are focused on PVM.
Definition ClanType.java:13
PVP
Clans that are focused on PVP.
Definition ClanType.java:10

References activateAchievement(), addExperience(), ClanChannel(), details, com.runehive.util.Utility.formatDigits(), com.runehive.content.clanchannel.ClanRepository.getChannel(), getMember(), com.runehive.content.clanchannel.content.ClanTask.getProgressExperience(), com.runehive.content.clanchannel.content.ClanTask.key, message(), com.runehive.content.clanchannel.ClanType.PVM, com.runehive.content.clanchannel.ClanType.PVP, com.runehive.content.clanchannel.content.ClanAchievement.TASKS_I, com.runehive.content.clanchannel.content.ClanAchievement.TASKS_II, com.runehive.content.clanchannel.content.ClanAchievement.TASKS_III, and com.runehive.content.clanchannel.content.ClanTask.type.

Here is the call graph for this function:

◆ activeSize()

int com.runehive.content.clanchannel.channel.ClanChannel.activeSize ( )

Definition at line 453 of file ClanChannel.java.

453 {
454 return active;
455 }
int active
The total active logged in members.

References active.

Referenced by com.runehive.game.task.impl.ClanUpdateEvent.tick().

Here is the caller graph for this function:

◆ add()

void com.runehive.content.clanchannel.channel.ClanChannel.add ( Player player,
ClanMember member )
package

Definition at line 99 of file ClanChannel.java.

99 {
100 if (member.name.equalsIgnoreCase(details.owner)) {
101 member.rank = ClanRank.LEADER;
102 }
103
104 if (!handler.attemptConnection(player, member)) {
105 return;
106 }
107
108 if (handler.testPassword(player, member)) {
109 return;
110 }
111
112 int count = getMembers().size();
113
114 establish(player, member);
115
116 if (getMembers().size() > count) {
117 activateAchievement(ClanAchievement.CLAN_MEMBERS_I);
118 activateAchievement(ClanAchievement.CLAN_MEMBERS_II);
119 activateAchievement(ClanAchievement.CLAN_MEMBERS_III);
120 }
121 }
final String name
The name of the clan member.
ClanChannelHandler handler
The clan channel handler.
void establish(Player player, ClanMember member)

References activateAchievement(), com.runehive.content.clanchannel.content.ClanAchievement.CLAN_MEMBERS_I, com.runehive.content.clanchannel.content.ClanAchievement.CLAN_MEMBERS_II, com.runehive.content.clanchannel.content.ClanAchievement.CLAN_MEMBERS_III, details, establish(), getMembers(), handler, com.runehive.content.clanchannel.ClanRank.LEADER, com.runehive.content.clanchannel.ClanMember.name, and size().

Referenced by connect().

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

◆ addExperience()

void com.runehive.content.clanchannel.channel.ClanChannel.addExperience ( double experience)

Definition at line 227 of file ClanChannel.java.

227 {
228 if (experience + details.experience > Double.MAX_VALUE)
229 return;
230 details.experience += experience;
231 ClanLevel level = ClanLevel.getLevel(details.experience);
232 if (details.level != level) {
233 details.level = level;
234 details.points += level.getPoints();
235 forPlayers(player -> {
236 player.clanTagColor = level.getColor();
237 player.updateFlags.add(UpdateFlag.APPEARANCE);
238 });
239 message("We have leveled up to <col=255>" + Utility.formatEnum(level.name()) + "</col>! Total Experience: <col=255>" + Utility.formatDigits(details.experience), "We have earned <col=255>" + level.getPoints() + "</col> CP, which puts us at <col=255>" + Utility.formatDigits(details.points) + "</col> CP.");
240 }
241 }
void forPlayers(Consumer< Player > player)
Handles looping through each clan member.
int getPoints()
Gets the points rewarded for leveling up.
String getColor()
Gets the clan level color.

References com.runehive.game.world.entity.mob.UpdateFlag.APPEARANCE, details, com.runehive.util.Utility.formatDigits(), com.runehive.util.Utility.formatEnum(), forPlayers(), com.runehive.content.clanchannel.content.ClanLevel.getColor(), com.runehive.content.clanchannel.content.ClanLevel.getLevel(), com.runehive.content.clanchannel.content.ClanLevel.getPoints(), and message().

Referenced by activateTask().

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

◆ addMember()

boolean com.runehive.content.clanchannel.channel.ClanChannel.addMember ( ClanMember member)
private

Definition at line 143 of file ClanChannel.java.

143 {
144 return members.add(member);
145 }
final Set< ClanMember > members
The clan channel member set.

References members.

Referenced by establish().

Here is the caller graph for this function:

◆ ban()

void com.runehive.content.clanchannel.channel.ClanChannel.ban ( String name)

Definition at line 177 of file ClanChannel.java.

177 {
178 bannedMembers.add(name);
179 Iterator<ClanMember> iterator = members.iterator();
180 while (iterator.hasNext()) {
181 ClanMember member = iterator.next();
182
183 if (member.name.equals(name)) {
184 if (member.rank.greaterThanEqual(ClanRank.LEADER)) {
185 return;
186 }
187
188 member.player.ifPresent(player -> {
189 ClanChannelHandler.clean(player);
190 player.clanTag = "";
191 player.lastClan = details.owner;
192 player.clanChannel = null;
193 player.updateFlags.add(UpdateFlag.APPEARANCE);
194 player.send(new SendMessage("You have been banned from the clan chat channel."));
195 member.player = Optional.empty();
196
197 if (--active == 0) {
198 ClanRepository.setInactive(this);
199 }
200 });
201
202 iterator.remove();
203 return;
204 }
205 }
206 }
ClanRank rank
The rank of the clan member.
Optional< Player > player
The player instance of the clan member .
final List< String > bannedMembers
A list of banned members.
boolean greaterThanEqual(ClanRank other)
Definition ClanRank.java:36

References active, com.runehive.game.world.entity.mob.UpdateFlag.APPEARANCE, bannedMembers, com.runehive.content.clanchannel.channel.ClanChannelHandler.clean(), details, com.runehive.content.clanchannel.ClanRank.greaterThanEqual(), com.runehive.content.clanchannel.ClanRank.LEADER, members, com.runehive.content.clanchannel.ClanMember.name, com.runehive.content.clanchannel.ClanMember.player, com.runehive.content.clanchannel.ClanMember.rank, and com.runehive.content.clanchannel.ClanRepository.setInactive().

Here is the call graph for this function:

◆ canEnter()

boolean com.runehive.content.clanchannel.channel.ClanChannel.canEnter ( ClanMember member)
package

Definition at line 478 of file ClanChannel.java.

478 {
479 return management.canEnter(member);
480 }
ClanManagement management
The clan channel management tab panel.

References management.

◆ canManage()

boolean com.runehive.content.clanchannel.channel.ClanChannel.canManage ( ClanMember member)

Definition at line 461 of file ClanChannel.java.

461 {
462 return member != null && management.canManage(member);
463 }

References management.

Referenced by com.runehive.content.dialogue.impl.ClanmasterDialogue.clanManagement(), and com.runehive.content.dialogue.impl.ClanRankDialogue.sendDialogues().

Here is the caller graph for this function:

◆ chat()

void com.runehive.content.clanchannel.channel.ClanChannel.chat ( String name,
String message )

Definition at line 402 of file ClanChannel.java.

402 {
403 getMember(name).ifPresent(member -> {
404 if (management.canTalk(member)) {
405 if (Arrays.stream(Yell.INVALID).anyMatch(message::contains)) {
406 member.message("Your message contains invalid characters.");
407 return;
408 }
409
410 forEach(other -> other.chat(member, message));
411 } else {
412 member.message("Your rank is too low to talk in this channel.");
413 }
414 });
415 }
void forEach(Consumer< ClanMember > member)
Handles looping through each clan member.

References forEach(), getMember(), com.runehive.content.Yell.INVALID, management, and message().

Here is the call graph for this function:

◆ compareTo()

int com.runehive.content.clanchannel.channel.ClanChannel.compareTo ( ClanChannel other)

Definition at line 658 of file ClanChannel.java.

658 {
659 int compare = Double.compare(other.details.experience, details.experience);
660 if (compare == 0)
661 return management.name.compareTo(other.management.name);
662 return compare;
663 }
double experience
The clan channel total experience.

References ClanChannel(), details, com.runehive.content.clanchannel.channel.ClanDetails.experience, management, and com.runehive.content.clanchannel.channel.ClanManagement.name.

Here is the call graph for this function:

◆ connect()

void com.runehive.content.clanchannel.channel.ClanChannel.connect ( Player player)
package

Handles a player connecting to the clan channel.

Definition at line 84 of file ClanChannel.java.

84 {
85 ClanMember member = new ClanMember(player);
86
87 if (!player.lastClan.isEmpty()) {
88 if (player.lastClan.equals(details.owner)) {
89 player.lastClan = "";
90 } else if (!members.contains(member)) {
91 handler.sendConnectionWarning(player, member);
92 return;
93 }
94 }
95
96 add(player, member);
97 }
void add(Player player, ClanMember member)

References add(), details, handler, com.runehive.game.world.entity.mob.player.Player.lastClan, and members.

Here is the call graph for this function:

◆ create()

ClanChannel com.runehive.content.clanchannel.channel.ClanChannel.create ( Player player)
static

Definition at line 62 of file ClanChannel.java.

62 {
63 if (ClanRepository.getChannel(player.getName()) != null) {
64 player.send(new SendMessage("There is already a clan channel under your name!"));
65 return null;
66 }
67 int[] showcase = new int[]{1155, 1117, 1075};
68 ClanChannel channel = new ClanChannel();
69 channel.management.name = player.getName();
70 channel.details.owner = player.getName();
71 channel.management.slogan = "Generic slogan here";
72 channel.details.established = Utility.getSimpleDate();
73 channel.details.type = ClanType.SOCIAL;
74 channel.details.level = ClanLevel.BRONZE;
75 channel.showcase.showcase = showcase;
76 Arrays.stream(showcase).forEach(i -> channel.showcase.showcaseItems.add(i));
77 channel.connect(player);
78 ClanRepository.addChannel(channel);
79 ClanRepository.ALLTIME.add(channel);
80 return channel;
81 }
void connect(Player player)
Handles a player connecting to the clan channel.
ClanShowcase showcase
The clan channel showcase items.
String getName()
Gets the name of this entity.
Definition Player.java:774

References com.runehive.content.clanchannel.ClanRepository.addChannel(), com.runehive.content.clanchannel.ClanRepository.ALLTIME, com.runehive.content.clanchannel.content.ClanLevel.BRONZE, ClanChannel(), com.runehive.content.clanchannel.ClanRepository.getChannel(), com.runehive.game.world.entity.mob.player.Player.getName(), com.runehive.util.Utility.getSimpleDate(), com.runehive.game.world.entity.mob.player.Player.send(), showcase, and com.runehive.content.clanchannel.ClanType.SOCIAL.

Referenced by com.runehive.content.clanchannel.channel.ClanChannelHandler.connect().

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

◆ disconnect()

void com.runehive.content.clanchannel.channel.ClanChannel.disconnect ( String name,
boolean logout )
package

Handles disconnecting a player from the clan channel.

Definition at line 148 of file ClanChannel.java.

148 {
149 Iterator<ClanMember> iterator = members.iterator();
150 while (iterator.hasNext()) {
151 ClanMember member = iterator.next();
152 if (member.name.equals(name)) {
153 if (member.rank == ClanRank.SYSTEM || (member.rank == ClanRank.MEMBER && !member.hasContributed())) {
154 iterator.remove();
155 }
156 member.player.ifPresent(player -> {
157 if (!logout) {
158 ClanChannelHandler.clean(player);
159 player.clanTag = "";
160 player.clanChannel = null;
161 player.updateFlags.add(UpdateFlag.APPEARANCE);
162 player.send(new SendMessage("You have disconnected from the clan chat channel."));
163 }
164 if (member.rank != ClanRank.SYSTEM) {
165 player.lastClan = details.owner;
166 }
167 member.player = Optional.empty();
168 if (--active == 0) {
169 ClanRepository.setInactive(this);
170 }
171 });
172 return;
173 }
174 }
175 }

References active, com.runehive.game.world.entity.mob.UpdateFlag.APPEARANCE, com.runehive.content.clanchannel.channel.ClanChannelHandler.clean(), details, com.runehive.content.clanchannel.ClanMember.hasContributed(), com.runehive.content.clanchannel.ClanRank.MEMBER, members, com.runehive.content.clanchannel.ClanMember.name, com.runehive.content.clanchannel.ClanMember.player, com.runehive.content.clanchannel.ClanMember.rank, com.runehive.content.clanchannel.ClanRepository.setInactive(), and com.runehive.content.clanchannel.ClanRank.SYSTEM.

Here is the call graph for this function:

◆ equals()

boolean com.runehive.content.clanchannel.channel.ClanChannel.equals ( Object obj)

Definition at line 671 of file ClanChannel.java.

671 {
672 if (obj == this) return true;
673 if (obj instanceof ClanChannel) {
674 ClanChannel other = (ClanChannel) obj;
675 return Objects.equals(details, other.details)
676 && Objects.equals(management, other.management);
677 }
678 return super.equals(obj);
679 }

References ClanChannel(), details, and management.

Here is the call graph for this function:

◆ establish()

void com.runehive.content.clanchannel.channel.ClanChannel.establish ( Player player,
ClanMember member )
package

Definition at line 123 of file ClanChannel.java.

123 {
124 player.clanChannel = this;
125 player.clanTag = getTag();
126 player.clanTagColor = details.level.getColor();
127 player.updateFlags.add(UpdateFlag.APPEARANCE);
128
129 if (player.lastClan.equals(details.owner)) {
130 player.lastClan = "";
131 }
132
133 active++;
134 member = getMember(member.name).orElse(member);
135 member.player = Optional.of(player);
136 if (addMember(member)) {
137 member.joined = Utility.getSimpleDate();
138 }
139 handler.connected(member);
140 ClanRepository.setActive(this);
141 }
final EnumSet< UpdateFlag > updateFlags
Definition Mob.java:94

References active, addMember(), com.runehive.game.world.entity.mob.UpdateFlag.APPEARANCE, details, getMember(), com.runehive.util.Utility.getSimpleDate(), getTag(), handler, com.runehive.game.world.entity.mob.player.Player.lastClan, com.runehive.content.clanchannel.ClanMember.name, com.runehive.content.clanchannel.ClanRepository.setActive(), and com.runehive.game.world.entity.mob.Mob.updateFlags.

Referenced by add().

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

◆ forEach()

void com.runehive.content.clanchannel.channel.ClanChannel.forEach ( Consumer< ClanMember > member)

Handles looping through each clan member.

Definition at line 393 of file ClanChannel.java.

393 {
394 members.forEach(member);
395 }

References members.

Referenced by chat(), getActiveMembers(), message(), and com.runehive.game.task.impl.ClanUpdateEvent.tick().

Here is the caller graph for this function:

◆ forPlayers()

void com.runehive.content.clanchannel.channel.ClanChannel.forPlayers ( Consumer< Player > player)
private

Handles looping through each clan member.

Definition at line 386 of file ClanChannel.java.

386 {
387 for (ClanMember member : members) {
388 member.player.ifPresent(player);
389 }
390 }

References members.

Referenced by addExperience().

Here is the caller graph for this function:

◆ getActiveMembers()

List< ClanMember > com.runehive.content.clanchannel.channel.ClanChannel.getActiveMembers ( )
package

Definition at line 379 of file ClanChannel.java.

379 {
380 List<ClanMember> list = new LinkedList<>();
381 forEach(member -> member.player.ifPresent(player -> list.add(member)));
382 return list;
383 }

References forEach().

Here is the call graph for this function:

◆ getColor()

String com.runehive.content.clanchannel.channel.ClanChannel.getColor ( )

Definition at line 518 of file ClanChannel.java.

518 {
519 return management.color;
520 }

References management.

◆ getDetails()

ClanDetails com.runehive.content.clanchannel.channel.ClanChannel.getDetails ( )

◆ getHandler()

ClanChannelHandler com.runehive.content.clanchannel.channel.ClanChannel.getHandler ( )

Definition at line 502 of file ClanChannel.java.

502 {
503 return handler;
504 }

References handler.

Referenced by com.runehive.game.task.impl.ClanUpdateEvent.tick().

Here is the caller graph for this function:

◆ getManagement()

ClanManagement com.runehive.content.clanchannel.channel.ClanChannel.getManagement ( )

Definition at line 494 of file ClanChannel.java.

494 {
495 return management;
496 }

References management.

◆ getMember()

Optional< ClanMember > com.runehive.content.clanchannel.channel.ClanChannel.getMember ( String name)

Definition at line 371 of file ClanChannel.java.

371 {
372 for (ClanMember member : members) {
373 if (member.name.equalsIgnoreCase(name))
374 return Optional.of(member);
375 }
376 return Optional.empty();
377 }

References members.

Referenced by activateTask(), chat(), com.runehive.content.dialogue.impl.ClanmasterDialogue.clanManagement(), establish(), com.runehive.content.dialogue.impl.ClanRankDialogue.sendDialogues(), and splitLoot().

Here is the caller graph for this function:

◆ getMembers()

Set< ClanMember > com.runehive.content.clanchannel.channel.ClanChannel.getMembers ( )

Definition at line 498 of file ClanChannel.java.

498 {
499 return members;
500 }

References members.

Referenced by add().

Here is the caller graph for this function:

◆ getName()

String com.runehive.content.clanchannel.channel.ClanChannel.getName ( )

Definition at line 441 of file ClanChannel.java.

441 {
442 return management.name;
443 }

References management.

Referenced by com.runehive.content.dialogue.impl.ClanmasterDialogue.clanManagement(), com.runehive.game.world.entity.mob.player.PlayerKilling.handle(), setName(), and com.runehive.content.ProfileViewer.string().

Here is the caller graph for this function:

◆ getOwner()

String com.runehive.content.clanchannel.channel.ClanChannel.getOwner ( )

Definition at line 445 of file ClanChannel.java.

445 {
446 return details.owner;
447 }

References details.

Referenced by com.runehive.net.packet.out.SendPlayerUpdate.appendAppearanceMask(), com.runehive.content.clanchannel.channel.ClanChannelHandler.onLogin(), and com.runehive.game.task.impl.ClanUpdateEvent.tick().

Here is the caller graph for this function:

◆ getPassword()

String com.runehive.content.clanchannel.channel.ClanChannel.getPassword ( )

Definition at line 510 of file ClanChannel.java.

510 {
511 return management.password;
512 }

References management.

◆ getShowcase()

ClanShowcase com.runehive.content.clanchannel.channel.ClanChannel.getShowcase ( )

Definition at line 522 of file ClanChannel.java.

522 {
523 return showcase;
524 }

References showcase.

Referenced by com.runehive.content.itemaction.impl.ClanShowcaseBox.inventory().

Here is the caller graph for this function:

◆ getShowcaseItems()

Item[] com.runehive.content.clanchannel.channel.ClanChannel.getShowcaseItems ( )

Definition at line 526 of file ClanChannel.java.

526 {
527 Item[] items = new Item[showcase.showcase.length];
528 int count = 0;
529 for (int iem : showcase.showcase) {
530 items[count] = new Item(iem, 1);
531 if (items[count].isStackable()) {
532 items[count].setAmount(250);
533 }
534 count++;
535 }
536 return items;
537 }
final void setAmount(int amount)
Sets the quantity of this item.
Definition Item.java:351

References com.runehive.game.world.items.Item.setAmount(), and showcase.

Referenced by com.runehive.content.itemaction.impl.ClanShowcaseBox.inventory().

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

◆ getSlogan()

String com.runehive.content.clanchannel.channel.ClanChannel.getSlogan ( )

Definition at line 506 of file ClanChannel.java.

506 {
507 return management.slogan;
508 }

References management.

◆ getTag()

String com.runehive.content.clanchannel.channel.ClanChannel.getTag ( )

Definition at line 514 of file ClanChannel.java.

514 {
515 return management.tag;
516 }

References management.

Referenced by establish(), and setTag().

Here is the caller graph for this function:

◆ hashCode()

int com.runehive.content.clanchannel.channel.ClanChannel.hashCode ( )

Definition at line 666 of file ClanChannel.java.

666 {
667 return details.owner.hashCode();
668 }

References details.

◆ hasPassword()

boolean com.runehive.content.clanchannel.channel.ClanChannel.hasPassword ( )
package

Definition at line 482 of file ClanChannel.java.

482 {
483 return management.password != null && !management.password.isEmpty();
484 }

References management.

◆ isBanned()

boolean com.runehive.content.clanchannel.channel.ClanChannel.isBanned ( String name)
package

Definition at line 465 of file ClanChannel.java.

465 {
466 for (String banned : bannedMembers) {
467 if (banned.equalsIgnoreCase(name)) {
468 return true;
469 }
470 }
471 return false;
472 }

References bannedMembers.

◆ isLocked()

boolean com.runehive.content.clanchannel.channel.ClanChannel.isLocked ( )

Definition at line 474 of file ClanChannel.java.

474 {
475 return management.locked;
476 }

References management.

◆ isPassword()

boolean com.runehive.content.clanchannel.channel.ClanChannel.isPassword ( String input)
package

Definition at line 486 of file ClanChannel.java.

486 {
487 return input.equals(management.password);
488 }

References management.

◆ load()

void com.runehive.content.clanchannel.channel.ClanChannel.load ( String owner)
static

Definition at line 585 of file ClanChannel.java.

585 {
586 new GsonParser("/content/clan/" + owner, false) {
587 @Override
588 protected void parse(JsonObject object) {
589 ClanChannel channel = new ClanChannel();
590
591 channel.details.owner = object.get("owner").getAsString();
592 channel.management.name = object.get("name").getAsString();
593 if (object.has("password")) {
594 channel.management.password = object.get("password").getAsString();
595 }
596 channel.details.established = object.get("established").getAsString();
597 if (object.has("forum")) {
598 channel.management.forum = object.get("forum").getAsString();
599 }
600 if (object.has("slogan")) {
601 channel.management.slogan = object.get("slogan").getAsString();
602 }
603 if (object.has("clan-tag")) {
604 channel.management.tag = object.get("clan-tag").getAsString();
605 }
606 channel.details.type = ClanType.valueOf(object.get("clan-type").getAsString());
607 if (object.has("clan-color")) {
608 channel.management.color = object.get("clan-color").getAsString();
609 }
610
611 channel.details.points = object.get("clan-points").getAsInt();
612 channel.details.experience = object.get("clan-experience").getAsLong();
613 channel.details.level = ClanLevel.valueOf(object.get("clan-level").getAsString());
614 if (object.has("clan-task")) {
615 channel.details.clanTask = ClanTask.valueOf(object.get("clan-task").getAsString());
616 }
617 channel.details.taskAmount = object.get("task-amount").getAsInt();
618 channel.management.locked = object.get("locked").getAsBoolean();
619 channel.management.lootshare = object.get("lootshare").getAsBoolean();
620 channel.management.loadRanks(object);
621 channel.showcase.showcase = GSON.fromJson(object.get("showcase"), int[].class);
622
623 JsonArray array = object.get("showcase-items").getAsJsonArray();
624 for (JsonElement element : array) {
625 channel.showcase.showcaseItems.add(element.getAsInt());
626 }
627
628 array = object.get("banned-members").getAsJsonArray();
629 for (JsonElement element : array) {
630 channel.bannedMembers.add(element.getAsString());
631 }
632
633 JsonArray members = object.get("members").getAsJsonArray();
634 for (JsonElement element : members) {
635 JsonObject memberObj = (JsonObject) element;
636 String name = memberObj.get("name").getAsString();
637 ClanMember member = new ClanMember(name);
638 member.joined = memberObj.get("joined").getAsString();
639 member.rank = ClanRank.valueOf(memberObj.get("rank").getAsString());
640 member.expGained = memberObj.get("exp-gained").getAsDouble();
641 member.npcKills = memberObj.get("npc-kills").getAsInt();
642 member.playerKills = memberObj.get("player-kills").getAsInt();
643 member.totalLevel = memberObj.get("total-level").getAsInt();
644 channel.addMember(member);
645 }
646
647 if (!channel.getTag().isEmpty())
648 ClanRepository.ACTIVE_TAGS.add(channel.getTag());
649 if (!channel.getName().isEmpty())
650 ClanRepository.ACTIVE_NAMES.add(channel.getName());
651 ClanRepository.ALLTIME.add(channel);
652 ClanRepository.addChannel(channel);
653 }
654 }.run();
655 }

References com.runehive.content.clanchannel.ClanRepository.ACTIVE_NAMES, com.runehive.content.clanchannel.ClanRepository.ACTIVE_TAGS, com.runehive.content.clanchannel.ClanRepository.addChannel(), com.runehive.content.clanchannel.ClanRepository.ALLTIME, ClanChannel(), GSON, and members.

Referenced by com.runehive.content.clanchannel.channel.ClanChannelHandler.connect(), and com.runehive.content.clanchannel.ClanRepository.loadChannels().

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

◆ lootshareEnabled()

boolean com.runehive.content.clanchannel.channel.ClanChannel.lootshareEnabled ( )

Definition at line 457 of file ClanChannel.java.

457 {
458 return management.lootshare;
459 }

References management.

Referenced by splitLoot().

Here is the caller graph for this function:

◆ message()

void com.runehive.content.clanchannel.channel.ClanChannel.message ( Object... messages)

Handles messaging all the members in the clan channel.

Definition at line 398 of file ClanChannel.java.

398 {
399 forEach(member -> member.message(messages));
400 }

References forEach().

Referenced by activateAchievement(), activateTask(), addExperience(), chat(), com.runehive.content.dialogue.impl.ClanmasterDialogue.clanTask(), com.runehive.content.itemaction.impl.ClanShowcaseBox.inventory(), receiveTask(), setName(), and setTag().

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

◆ receiveTask()

void com.runehive.content.clanchannel.channel.ClanChannel.receiveTask ( Difficulty difficulty)

Definition at line 243 of file ClanChannel.java.

243 {
244 if (details.clanTask == null) {
245 ClanTask task = ClanTask.getAssignment(details.type, difficulty);
246 details.taskAmount = task.getAmount();
247 details.clanTask = task;
248 message("Task time! <col=255>" + task.getName(this) + "</col>.");
249 }
250 }

References details, com.runehive.content.clanchannel.content.ClanTask.getAmount(), com.runehive.content.clanchannel.content.ClanTask.getAssignment(), com.runehive.content.clanchannel.content.ClanTask.getName(), and message().

Referenced by com.runehive.content.dialogue.impl.ClanmasterDialogue.clanTask().

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

◆ setColor()

void com.runehive.content.clanchannel.channel.ClanChannel.setColor ( String color)

Definition at line 539 of file ClanChannel.java.

539 {
540 management.color = color;
541 }

◆ setName()

void com.runehive.content.clanchannel.channel.ClanChannel.setName ( Player player,
String name )

Definition at line 318 of file ClanChannel.java.

318 {
319 if (getName().equalsIgnoreCase(name)) {
320 player.message("Your clan channel name is already set to " + getName() + "!");
321 return;
322 }
323 if (Arrays.stream(Config.BAD_STRINGS).anyMatch(name::contains)) {
324 player.message("The name you have entered was prohibited! Try something else.");
325 return;
326 }
327 if (ClanRepository.nameExist(name)) {
328 player.message("There is already a clan that exists with that name!");
329 return;
330 }
331 name = Utility.formatName(name);
332 if (!management.name.isEmpty())
333 ClanRepository.ACTIVE_NAMES.remove(management.name.toLowerCase().trim());
334 ClanRepository.ACTIVE_NAMES.add(name.toLowerCase().trim());
335 management.name = name;
336 message("The clan name has been changed to: <col=255>" + name + "</col>.");
337 player.clanViewer.update(this);
338 }

References com.runehive.content.clanchannel.ClanRepository.ACTIVE_NAMES, com.runehive.Config.BAD_STRINGS, com.runehive.game.world.entity.mob.player.Player.clanViewer, com.runehive.util.Utility.formatName(), getName(), management, message(), com.runehive.game.world.entity.mob.player.Player.message(), com.runehive.content.clanchannel.ClanRepository.nameExist(), and com.runehive.content.clanchannel.content.ClanViewer.update().

Here is the call graph for this function:

◆ setRank()

void com.runehive.content.clanchannel.channel.ClanChannel.setRank ( ClanMember member,
ClanRank rank )

Definition at line 307 of file ClanChannel.java.

307 {
308 member.player.ifPresent(player -> {
309 if (!player.lastClan.isEmpty() && !player.lastClan.equalsIgnoreCase(player.getName())) {
310 ClanChannel channel = ClanRepository.getChannel(player.lastClan);
311 if (channel != null)
312 channel.disconnect(member.name, false);
313 }
314 });
315 member.rank = rank;
316 }

References ClanChannel(), com.runehive.content.clanchannel.ClanRepository.getChannel(), com.runehive.content.clanchannel.ClanMember.name, and com.runehive.content.clanchannel.ClanMember.player.

Referenced by com.runehive.content.dialogue.impl.ClanRankDialogue.setRank().

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

◆ setSlogan()

void com.runehive.content.clanchannel.channel.ClanChannel.setSlogan ( Player player,
String slogan )

Definition at line 362 of file ClanChannel.java.

362 {
363 if (Arrays.stream(Config.BAD_STRINGS).anyMatch(slogan::contains)) {
364 player.message("The slogan you have entered was prohibited! Try something else.");
365 return;
366 }
367 management.slogan = Utility.formatName(slogan);
368 player.clanViewer.update(this);
369 }

References com.runehive.Config.BAD_STRINGS, com.runehive.game.world.entity.mob.player.Player.clanViewer, com.runehive.util.Utility.formatName(), com.runehive.game.world.entity.mob.player.Player.message(), and com.runehive.content.clanchannel.content.ClanViewer.update().

Here is the call graph for this function:

◆ setTag()

void com.runehive.content.clanchannel.channel.ClanChannel.setTag ( Player player,
String tag )

Definition at line 340 of file ClanChannel.java.

340 {
341 if (tag.length() > 4)
342 return;
343 if (getTag().equalsIgnoreCase(tag)) {
344 player.message("Your clan channel tag is already set to " + getTag() + "!");
345 return;
346 }
347 if (Arrays.stream(Config.BAD_STRINGS).anyMatch(tag::contains)) {
348 player.message("The tag you have entered was prohibited! Try something else.");
349 return;
350 }
351 if (ClanRepository.tagExist(tag)) {
352 player.message("There is already a clan that exists with that tag!");
353 return;
354 }
355 if (!management.tag.isEmpty())
356 ClanRepository.ACTIVE_TAGS.remove(management.tag);
357 ClanRepository.ACTIVE_TAGS.add(management.tag = tag);
358 message("The clan tag has been changed to: <col=255>" + getTag() + "</col>.");
359 player.clanViewer.update(this);
360 }

References com.runehive.content.clanchannel.ClanRepository.ACTIVE_TAGS, com.runehive.Config.BAD_STRINGS, com.runehive.game.world.entity.mob.player.Player.clanViewer, getTag(), management, message(), com.runehive.game.world.entity.mob.player.Player.message(), com.runehive.content.clanchannel.ClanRepository.tagExist(), and com.runehive.content.clanchannel.content.ClanViewer.update().

Here is the call graph for this function:

◆ size()

int com.runehive.content.clanchannel.channel.ClanChannel.size ( )

Definition at line 449 of file ClanChannel.java.

449 {
450 return members.size();
451 }

References members.

Referenced by add(), and unban().

Here is the caller graph for this function:

◆ splitLoot()

void com.runehive.content.clanchannel.channel.ClanChannel.splitLoot ( Player player,
Mob dead,
Item item )

Definition at line 417 of file ClanChannel.java.

417 {
418 if (!lootshareEnabled()) {
419 return;
420 }
421
422 Set<Player> players = new HashSet<>();
423 long value = item.getValue(PriceType.HIGH_ALCH_VALUE) * item.getAmount();
424 long tax = value / 4;
425 players.add(player);
426
427 RegionManager.forNearbyPlayer(dead, 32, nearby -> {
428 if (Objects.equals(nearby.clanChannel, player.clanChannel)) {
429 players.add(nearby);
430 }
431 });
432
433 long split = (value - tax) / players.size();
434 players.forEach(other -> {
435 getMember(other.getName()).ifPresent(member ->
436 member.message(Utility.formatDigits(split) + " coins have been deposited into your bank vault."));
437// other.bankVault.deposit((int) split);
438 });
439 }
final int getAmount()
Gets the quantity of this item.
Definition Item.java:342
int getValue(PriceType type)
Gets the value for this item.
Definition Item.java:98

References com.runehive.game.world.entity.mob.player.Player.clanChannel, com.runehive.util.Utility.formatDigits(), com.runehive.game.world.region.RegionManager.forNearbyPlayer(), com.runehive.game.world.items.Item.getAmount(), getMember(), com.runehive.game.world.items.Item.getValue(), com.runehive.game.world.items.containers.pricechecker.PriceType.HIGH_ALCH_VALUE, and lootshareEnabled().

Here is the call graph for this function:

◆ toJson()

JsonObject com.runehive.content.clanchannel.channel.ClanChannel.toJson ( )

Definition at line 543 of file ClanChannel.java.

543 {
544 JsonObject object = new JsonObject();
545 object.addProperty("owner", details.owner);
546 object.addProperty("established", details.established);
547 object.addProperty("name", management.name);
548 object.addProperty("password", management.password);
549 object.addProperty("forum", management.forum);
550 object.addProperty("slogan", management.slogan);
551 object.addProperty("clan-tag", management.tag);
552 object.addProperty("clan-type", String.valueOf(details.type));
553 object.addProperty("clan-color", management.color);
554 object.addProperty("clan-points", details.points);
555 object.addProperty("clan-experience", details.experience);
556 object.addProperty("clan-level", String.valueOf(details.level));
557 if (details.clanTask != null) {
558 object.addProperty("clan-task", String.valueOf(details.clanTask));
559 }
560 object.addProperty("task-amount", details.taskAmount);
561 object.addProperty("locked", management.locked);
562 object.addProperty("lootshare", management.lootshare);
563 management.saveRanks(object);
564
565 object.add("showcase", GSON.toJsonTree(showcase.showcase));
566 object.add("showcase-items", GSON.toJsonTree(showcase.showcaseItems));
567 object.add("banned-members", GSON.toJsonTree(bannedMembers));
568
569 JsonArray memberArray = new JsonArray();
570 for (ClanMember member : members) {
571 JsonObject memberObj = new JsonObject();
572 memberObj.addProperty("name", member.name);
573 memberObj.addProperty("joined", member.joined);
574 memberObj.addProperty("rank", String.valueOf(member.rank));
575 memberObj.addProperty("exp-gained", member.expGained);
576 memberObj.addProperty("npc-kills", member.npcKills);
577 memberObj.addProperty("player-kills", member.playerKills);
578 memberObj.addProperty("total-level", member.totalLevel);
579 memberArray.add(memberObj);
580 }
581 object.add("members", memberArray);
582 return object;
583 }

References bannedMembers, details, GSON, management, members, and showcase.

Referenced by com.runehive.game.task.impl.ClanUpdateEvent.tick().

Here is the caller graph for this function:

◆ unban()

void com.runehive.content.clanchannel.channel.ClanChannel.unban ( Player player,
int index )

Definition at line 208 of file ClanChannel.java.

208 {
209 if (index < 0 || index >= bannedMembers.size())
210 return;
211 String name = bannedMembers.get(index);
212 if (bannedMembers.remove(index) != null) {
213 int string = 51311;
214 int size = bannedMembers.size() < 10 ? 10 : bannedMembers.size();
215 for (int idx = 0; idx < size; idx++) {
216 boolean valid = idx < bannedMembers.size();
217 Optional<String> banned = valid ? Optional.of(bannedMembers.get(idx)) : Optional.empty();
218 player.send(new SendString(banned.orElse(""), string));
219 player.send(new SendTooltip(valid ? "Unban " + bannedMembers.get(idx) : "", string));
220 string++;
221 }
222 player.send(new SendScrollbar(51310, size * 23));
223 player.send(new SendMessage("You have unbanned " + name + " from the clan chat channel."));
224 }
225 }

References bannedMembers, com.runehive.game.world.entity.mob.player.Player.send(), and size().

Here is the call graph for this function:

Member Data Documentation

◆ active

int com.runehive.content.clanchannel.channel.ClanChannel.active
private

The total active logged in members.

Definition at line 57 of file ClanChannel.java.

Referenced by activeSize(), ban(), disconnect(), and establish().

◆ bannedMembers

final List<String> com.runehive.content.clanchannel.channel.ClanChannel.bannedMembers = new ArrayList<>()
package

A list of banned members.

Definition at line 54 of file ClanChannel.java.

Referenced by ban(), isBanned(), toJson(), and unban().

◆ details

ClanDetails com.runehive.content.clanchannel.channel.ClanChannel.details = new ClanDetails(this)
private

◆ GSON

final Gson com.runehive.content.clanchannel.channel.ClanChannel.GSON = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting().create()
staticprivate

Definition at line 36 of file ClanChannel.java.

Referenced by load(), and toJson().

◆ handler

ClanChannelHandler com.runehive.content.clanchannel.channel.ClanChannel.handler = new ClanChannelHandler(this)
private

The clan channel handler.

Definition at line 48 of file ClanChannel.java.

Referenced by add(), connect(), establish(), and getHandler().

◆ management

ClanManagement com.runehive.content.clanchannel.channel.ClanChannel.management = new ClanManagement(this)
private

◆ members

final Set<ClanMember> com.runehive.content.clanchannel.channel.ClanChannel.members = new HashSet<>()
private

The clan channel member set.

Definition at line 51 of file ClanChannel.java.

Referenced by addMember(), ban(), connect(), disconnect(), forEach(), forPlayers(), getMember(), getMembers(), load(), size(), and toJson().

◆ showcase

ClanShowcase com.runehive.content.clanchannel.channel.ClanChannel.showcase = new ClanShowcase(this)
private

The clan channel showcase items.

Definition at line 45 of file ClanChannel.java.

Referenced by create(), getShowcase(), getShowcaseItems(), and toJson().


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