Advertisement
Guest User

Untitled

a guest
Apr 3rd, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.63 KB | None | 0 0
  1. package com.ruse.world.content.clan;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. import java.util.concurrent.CopyOnWriteArrayList;
  7.  
  8. import com.ruse.engine.task.Task;
  9. import com.ruse.engine.task.TaskManager;
  10. import com.ruse.model.Locations;
  11. import com.ruse.model.Position;
  12. import com.ruse.model.RegionInstance;
  13. import com.ruse.util.Stopwatch;
  14. import com.ruse.world.World;
  15. import com.ruse.world.entity.impl.player.Player;
  16.  
  17. /**
  18. * An instance of a clanchat channel, holding all fields.
  19. * @author Gabriel Hannason
  20. */
  21. public class ClanChat {
  22.  
  23. public ClanChat(Player owner, String name, int index) {
  24. this.owner = owner;
  25. this.name = name;
  26. this.index = index;
  27. this.ownerName = owner.getUsername();
  28. }
  29.  
  30. public ClanChat(String ownerName, String name, int index) {
  31. this.owner = World.getPlayerByName(ownerName);
  32. this.ownerName = ownerName;
  33. this.name = name;
  34. this.index = index;
  35. }
  36.  
  37. private String name;
  38. private Player owner;
  39. private String ownerName;
  40. private final int index;
  41. private boolean lootShare;
  42. private Stopwatch lastAction = new Stopwatch();
  43.  
  44. private ClanChatRank[] rankRequirement = new ClanChatRank[3];
  45. private CopyOnWriteArrayList<Player> members = new CopyOnWriteArrayList<Player>();
  46. private CopyOnWriteArrayList<String> bannedNames = new CopyOnWriteArrayList<String>();
  47. private Map<String, ClanChatRank> rankedNames = new HashMap<String, ClanChatRank>();
  48.  
  49. private boolean doingClanBarrows;
  50. private int height;
  51. private RegionInstance regionInstance;
  52.  
  53. public Player getOwner() {
  54. return owner;
  55. }
  56.  
  57. public ClanChat setOwner(Player owner) {
  58. this.owner = owner;
  59. return this;
  60. }
  61.  
  62. public String getOwnerName() {
  63. if(name.equalsIgnoreCase("help")) {
  64. return "Help";
  65. }
  66. return ownerName;
  67. }
  68.  
  69. public int getIndex() {
  70. return index;
  71. }
  72.  
  73. public String getName() {
  74. return name;
  75. }
  76.  
  77. public ClanChat setName(String name) {
  78. this.name = name;
  79. return this;
  80. }
  81.  
  82. public boolean getLootShare() {
  83. return lootShare;
  84. }
  85.  
  86. public void setLootShare(boolean lootShare) {
  87. this.lootShare = lootShare;
  88. }
  89.  
  90. public Stopwatch getLastAction() {
  91. return lastAction;
  92. }
  93.  
  94. public int getHeight() {
  95. return height;
  96. }
  97.  
  98. public void setHeight(int height) {
  99. this.height = height;
  100. }
  101.  
  102. public boolean doingClanBarrows() {
  103. return doingClanBarrows;
  104. }
  105.  
  106. public void setDoingClanBarrows(boolean doingClanBarrows) {
  107. this.doingClanBarrows = doingClanBarrows;
  108. }
  109.  
  110. public RegionInstance getRegionInstance() {
  111. return this.regionInstance;
  112. }
  113.  
  114. public void setRegionInstance(RegionInstance regionInstance) {
  115. this.regionInstance = regionInstance;
  116. }
  117.  
  118. public ClanChat addMember(Player member) {
  119. members.add(member);
  120. return this;
  121. }
  122.  
  123. public ClanChat removeMember(String name) {
  124. for(int i = 0; i < members.size(); i++) {
  125. Player member = members.get(i);
  126. if(member == null)
  127. continue;
  128. if(member.getUsername().equals(name)) {
  129. members.remove(i);
  130. break;
  131. }
  132. }
  133. return this;
  134. }
  135.  
  136. public ClanChatRank getRank(Player player) {
  137. return rankedNames.get(player.getUsername());
  138. }
  139.  
  140. public ClanChat giveRank(Player player, ClanChatRank rank) {
  141. rankedNames.put(player.getUsername(), rank);
  142. return this;
  143. }
  144.  
  145. public CopyOnWriteArrayList<Player> getMembers() {
  146. return members;
  147. }
  148.  
  149. public Map<String, ClanChatRank> getRankedNames() {
  150. return rankedNames;
  151. }
  152.  
  153. public CopyOnWriteArrayList<String> getBannedNames() {
  154. return bannedNames;
  155. }
  156.  
  157. public void addBannedName(String name) {
  158. if(!bannedNames.contains(name)) {
  159. bannedNames.add(name);
  160. TaskManager.submit(new Task(1) {
  161. int tick = 0;
  162. @Override
  163. public void execute() {
  164. if(tick == 2000) { // 20 minutes
  165. stop();
  166. return;
  167. }
  168. tick++;
  169. }
  170.  
  171. @Override
  172. public void stop() {
  173. setEventRunning(false);
  174. bannedNames.remove(name);
  175. }
  176. });
  177. }
  178. }
  179.  
  180. public ArrayList<Player> getClosePlayers(Position t) {
  181. ArrayList<Player> list = new ArrayList<Player>();
  182.  
  183. for(Player p : getMembers()) {
  184. if(p == null || !Locations.goodDistance(p.getPosition(), t, 7)) {
  185. continue;
  186. }
  187. list.add(p);
  188. }
  189.  
  190. return list;
  191. }
  192.  
  193. public boolean isBanned(String name) {
  194. return bannedNames.contains(name);
  195. }
  196.  
  197. public ClanChatRank[] getRankRequirement() {
  198. return rankRequirement;
  199. }
  200.  
  201. public ClanChat setRankRequirements(int index, ClanChatRank rankRequirement) {
  202. this.rankRequirement[index] = rankRequirement;
  203. return this;
  204. }
  205.  
  206. public static final int RANK_REQUIRED_TO_ENTER = 0, RANK_REQUIRED_TO_KICK = 1, RANK_REQUIRED_TO_TALK = 2;
  207. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement