RuneHive-Game
Loading...
Searching...
No Matches
ClanManagement.java
Go to the documentation of this file.
1package com.runehive.content.clanchannel.channel;
2
3import com.google.gson.JsonObject;
4import com.runehive.content.clanchannel.ClanMember;
5import com.runehive.content.clanchannel.ClanRank;
6import com.runehive.game.world.entity.mob.player.Player;
7import com.runehive.net.packet.out.SendMessage;
8import com.runehive.net.packet.out.SendScrollbar;
9import com.runehive.net.packet.out.SendString;
10import com.runehive.net.packet.out.SendTooltip;
11
12import java.util.Arrays;
13import java.util.Objects;
14import java.util.Optional;
15
16public class ClanManagement {
17
18 /** Clan rank indices. */
19 static final int
23
24 /** The amount of privilage options */
25 private static final int SIZE = 4;
26
27 /** An array of ranks. */
28 private ClanRank[] ranks = new ClanRank[SIZE];
29
30 /** The clan display name. */
31 public String name;
32
33 /** The clan password. */
34 public String password = "";
35
36 /** The clan slogan. */
37 String slogan = "";
38
39 /** The clan forum link. */
40 String forum = "";
41
42 /** The clan tag. */
43 String tag = "";
44
45 String color = "<col=ffffff>";
46
47 /** The locked state of the clan. */
48 public boolean locked;
49
50 /** The lootshare state of the clan. */
51 boolean lootshare;
52
53 /** The channel to manage. */
54 private final ClanChannel channel;
55
62
63 /** Sets the enter rank. */
64 public void setEnterRank(ClanRank rank) {
65 ranks[ENTER_RANK_INDEX] = rank;
66 channel.message("The required rank to enter has changed to " + rank.getName() + ".");
67 }
68
69 /** Sets the talk rank. */
70 public void setTalkRank(ClanRank rank) {
71 ranks[TALK_RANK_INDEX] = rank;
72 channel.message("The required rank to talk has changed to " + rank.getName() + ".");
73 }
74
75 /** Sets the management rank. */
76 public void setManageRank(ClanRank rank) {
78 }
79
80 String getRank(int index) {
81 return ranks[index].getString();
82 }
83
84 String getEnter() {
85 return ranks[ENTER_RANK_INDEX].getName();
86 }
87
88 String getTalk() {
89 return ranks[TALK_RANK_INDEX].getName();
90 }
91
92 String getManage() {
93 return ranks[MANAGE_RANK_INDEX].getName();
94 }
95
96 boolean canEnter(ClanMember member) {
98 }
99
100 boolean canTalk(ClanMember member) {
102 }
103
104 boolean canManage(ClanMember member) {
106 }
107
108 void loadRanks(JsonObject object) {
109 ranks[ENTER_RANK_INDEX] = ClanRank.valueOf(object.get("enter-rank").getAsString());
110 ranks[TALK_RANK_INDEX] = ClanRank.valueOf(object.get("talk-rank").getAsString());
111 ranks[MANAGE_RANK_INDEX] = ClanRank.valueOf(object.get("manage-rank").getAsString());
112 }
113
114 void saveRanks(JsonObject object) {
115 object.addProperty("enter-rank", ranks[ENTER_RANK_INDEX].name());
116 object.addProperty("talk-rank", ranks[TALK_RANK_INDEX].name());
117 object.addProperty("manage-rank", ranks[MANAGE_RANK_INDEX].name());
118 }
119
120 public void showBanned(Player player) {
121 if (channel.bannedMembers.isEmpty()) {
122 player.send(new SendMessage("You have no banned members in your clan."));
123 return;
124 }
125 int string = 51311;
126 int size = channel.bannedMembers.size() < 10 ? 10 : channel.bannedMembers.size();
127 for (int index = 0; index < size; index++) {
128 boolean valid = index < channel.bannedMembers.size();
129 Optional<String> banned = valid ? Optional.of(channel.bannedMembers.get(index)) : Optional.empty();
130 player.send(new SendString(banned.orElse(""), string));
131 player.send(new SendTooltip(valid ? "Unban " + channel.bannedMembers.get(index) : "", string));
132 string++;
133 }
134 player.send(new SendScrollbar(51310, size * 23));
135 player.interfaceManager.open(51300);
136 }
137
138 public void toggleLootshare() {
140 channel.message("Lootshare has been toggled " + (lootshare ? "on!" : "off!"));
141 }
142
143 @Override
144 public boolean equals(Object obj) {
145 if (obj == this) return true;
146 if (obj instanceof ClanManagement) {
147 ClanManagement other = (ClanManagement) obj;
148 return Objects.equals(name, other.name)
149 && Objects.equals(slogan, other.slogan)
150 && Objects.equals(forum, other.forum)
151 && Objects.equals(tag, other.tag)
152 && Objects.equals(locked, other.locked)
153 && Objects.equals(lootshare, other.lootshare)
154 && Arrays.equals(ranks, other.ranks);
155 }
156 return false;
157 }
158
159}
Handles the clan channel member.
ClanRank rank
The rank of the clan member.
boolean lootshare
The lootshare state of the clan.
void setManageRank(ClanRank rank)
Sets the management rank.
final ClanChannel channel
The channel to manage.
void setTalkRank(ClanRank rank)
Sets the talk rank.
void setEnterRank(ClanRank rank)
Sets the enter rank.
static final int SIZE
The amount of privilage options.
void open(int identification)
Opens an interface for the player.
This class represents a character controlled by a player.
Definition Player.java:125
The OutgoingPacket that sends a message to a Players chatbox in the client.
The OutgoingPacket that sends a string to a Players itemcontainer in the client.
The enum containing all the rank's data within a clan channel.
Definition ClanRank.java:8
boolean greaterThanEqual(ClanRank other)
Definition ClanRank.java:36