Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.84 KB | None | 0 0
  1. package de.nethergames.friendssystem.commands;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Comparator;
  5. import java.util.HashMap;
  6. import java.util.UUID;
  7. import java.util.function.Consumer;
  8.  
  9. import de.nethergames.cloud.UserManagement;
  10. import de.nethergames.cloud.command.CloudCommand;
  11. import de.nethergames.cloud.console.CommandSender;
  12. import de.nethergames.cloud.console.ConsoleCommandSender;
  13. import de.nethergames.cloud.inventory.CloudItem;
  14. import de.nethergames.cloud.packets.PlayerOpenInventoryPacket;
  15. import de.nethergames.cloud.player.CloudPlayer;
  16. import de.nethergames.cloud.player.OnlineCloudPlayer;
  17. import de.nethergames.friendssystem.Main;
  18.  
  19. public class Friends extends CloudCommand{
  20.  
  21. public static ArrayList<String> emtylore = new ArrayList<>();
  22. public static HashMap<String, String> emtyextradata = new HashMap<>();
  23. public static CloudItem glass = new CloudItem("", 160, 5, emtylore, emtyextradata);
  24.  
  25. /* /friend (Help)
  26. * /friend listrequests
  27. * /friend list (öffnet erste seite des invs)
  28. * /friend list <page>
  29. * /friend listrequests <page>
  30. * /friend request <name>
  31. * /friend accept <name>
  32. * /friend deny <name>
  33. * /friend remove <name>
  34. * /friend setstatus <Neue StatusMeldung>
  35. */
  36. private HashMap<OnlineCloudPlayer, Long> friendscash = new HashMap<>();
  37. private HashMap<OnlineCloudPlayer, Long> executed = new HashMap<>();
  38. private HashMap<OnlineCloudPlayer, ArrayList<CloudPlayer>> friendddata = new HashMap<>();
  39. /*
  40. * Command
  41. * @see de.nethergames.cloud.command.CloudCommand#execute(de.nethergames.cloud.console.CommandSender, java.lang.String[])
  42. */
  43. @Override
  44. public void execute(CommandSender sender, String[] args) {
  45. if(sender instanceof ConsoleCommandSender) {
  46. return;
  47. }
  48. OnlineCloudPlayer player = (OnlineCloudPlayer) sender;
  49. if(executed.containsKey(player)) {
  50. if(System.currentTimeMillis() <= executed.get(player)) {
  51. player.sendMessage(Main.pr + "Bitte warte ein paar sekunden bis du den command wieder ausführst!");
  52. }
  53. }
  54.  
  55. executed.put(player, (System.currentTimeMillis()+(1000*5)));
  56.  
  57.  
  58. if(args.length == 0) {
  59. sendhelp(player);
  60. }else
  61. if(args.length == 1) {
  62. if(args[0].equalsIgnoreCase("list")) {
  63. listfriends(player, 0);
  64. }else
  65. if(args[0].equalsIgnoreCase("listrequests")){
  66. listrequests(player, 0);
  67. }else{
  68. sendhelp(player);
  69. }
  70. }else
  71. if(args.length >= 2) {
  72. if(args[0].equalsIgnoreCase("list")) {
  73. openFriendsList(player, args[1]);
  74. }else
  75. if(args[0].equalsIgnoreCase("listrequests")) {
  76. openFriendRequestList(player, args[1]);
  77. }else
  78. if(args[0].equalsIgnoreCase("request")) {
  79. sendRequest(player, args[1]);
  80. }else
  81. if(args[0].equalsIgnoreCase("accept")) {
  82. accceptRequest(player, args[1]);
  83. }else
  84. if(args[0].equalsIgnoreCase("deny")) {
  85. denyrequest(player, args[1]);
  86. }else
  87. if(args[0].equalsIgnoreCase("remove")) {
  88. removefriend(player, args[1]);
  89. }else
  90. if(args[0].equalsIgnoreCase("setstatus")) {
  91. setStatus(player, args);
  92. }else {
  93. sendhelp(player);
  94. }
  95. }
  96.  
  97. }
  98. /*
  99. * TODO: Status checken ob irgenwas schlimmes drinne ist z.b. markus ist ein hurensohn
  100. * Generir neuen Status
  101. */
  102. private void setStatus(OnlineCloudPlayer player, String[] newstatus) {
  103. String status = "";
  104. for (int i = 1; i < newstatus.length; i++) {
  105. status += newstatus[i];
  106. status += " ";
  107. }
  108. player.getDocument().remove("statusmeldung");
  109. player.getDocument().append("statusmeldung", status);
  110. player.sendMessage(Main.pr + "Dein status wurde gesetzt!");
  111. }
  112. /*
  113. * Freund entfernen
  114. */
  115. private void removefriend(OnlineCloudPlayer player, String target) {
  116. if(UserManagement.getInstance().isOnline(target)) { //abfargen ob der spieler online ist!
  117. OnlineCloudPlayer targetplayer = UserManagement.getInstance().getCacheOnlineCloudPlayer(target);
  118. ArrayList<UUID> friendsplayer = player.getDocument().get("friends", ArrayList.class);
  119. if(friendsplayer.contains(targetplayer.getUniqueID())) { //abfragen ob die befreundet sind!
  120. //freundschafft beenden!
  121. friendsplayer.remove(targetplayer.getUniqueID());
  122. targetplayer.getDocument().get("friends", ArrayList.class).remove(player.getUniqueID());
  123. player.sendMessage(Main.pr + "Du hast die freundschafft mit " + targetplayer.getName() + " beendet!");
  124. targetplayer.sendMessage(Main.pr + player.getName() + " hat die freundschafft mir dir beendet!");
  125. }else {//wenn sie nicht befreundet sind nachricht senden!
  126. player.sendMessage(Main.pr + "Du bist nicht mit " + targetplayer.getName() + " befreundet!");
  127. }
  128. }else { //wenn target nicht online ist die datenbank anfragen!
  129. UserManagement.getInstance().getUUIDbyName(target, new Consumer<UUID>() {
  130.  
  131. @Override
  132. public void accept(UUID uuid) {
  133. if(uuid != null) { //schauen ob target in der datenbank ist!
  134. UserManagement.getInstance().getPlayerDocument(uuid, new Consumer<CloudPlayer>() {
  135.  
  136. @Override
  137. public void accept(CloudPlayer targetplayer) {
  138. ArrayList<UUID> friendsplayer = player.getDocument().get("friends", ArrayList.class);
  139. if(friendsplayer.contains(targetplayer.getUniqueID())) { //abfragen ob die befreundet sind!
  140. //freundschafft beenden!
  141. friendsplayer.remove(targetplayer.getUniqueID());
  142. targetplayer.getDocument().get("friends", ArrayList.class).remove(player.getUniqueID());
  143. player.sendMessage(Main.pr + "Du hast die freundschafft mit " + targetplayer.getName() + " beendet!");
  144. }else { //wenn sie nicht befreundet sind nachricht senden!
  145. player.sendMessage(Main.pr + "Du bist nicht mit " + targetplayer.getName() + " befreundet!");
  146. }
  147. }
  148. });
  149. }else { //wenn target nicht in der datenbank ist dem player nachricht senden!
  150. player.sendMessage(Main.pr + "Der Spieler war noch nie auf dem netzwerk!");
  151. }
  152.  
  153. }
  154.  
  155. });
  156. }
  157. }
  158. /*Request ablehnen
  159. *
  160. */
  161. private void denyrequest(OnlineCloudPlayer player, String target) {
  162. //abfragen ob er online ist!
  163. if(UserManagement.getInstance().isOnline(target)) {
  164. OnlineCloudPlayer targetplayer = UserManagement.getInstance().getCacheOnlineCloudPlayer(target);
  165. //abfragen ob die schon befreundet sind!
  166. if(player.getDocument().get("friends", ArrayList.class).contains(targetplayer.getUniqueID())) {
  167. player.sendMessage(Main.pr + "Du bist schon mit " + targetplayer.getName() + " befreundet!");
  168. return;
  169. }
  170. //wenn nicht abfragen ob er einen request von ihm hat!
  171. ArrayList<UUID> requests = player.getDocument().get("friendRequests", ArrayList.class);
  172. if(requests.contains(targetplayer.getUniqueID())) { //wenn er einen request hat diesen ablehnen!
  173. requests.remove(targetplayer.getUniqueID());
  174. player.sendMessage(Main.pr + "Du hast die anfrage von " + targetplayer.getName() + " abgelent!");
  175. targetplayer.sendMessage(Main.pr + player.getName() + " hat deine anfrage abgehelnt!");
  176. }else { //wenn er keinen hat nachricht senden!
  177. player.sendMessage(Main.pr + "Du hast keine anfrage von diesem Spieler erhalten!");
  178. }
  179.  
  180. }else { //wenn er offline ist die datenbank anfragen!
  181. UserManagement.getInstance().getUUIDbyName(target, new Consumer<UUID>() {
  182.  
  183. @Override
  184. public void accept(UUID uuid) {
  185. if(uuid != null) { //schauen ob er in der datenbank ist!
  186. UserManagement.getInstance().getPlayerDocument(uuid, new Consumer<CloudPlayer>() {
  187.  
  188. @Override
  189. public void accept(CloudPlayer targetplayer) {
  190. if(player.getDocument().get("friends", ArrayList.class).contains(targetplayer.getUniqueID())) { //abfragen ob sie schon befreundet sind
  191. player.sendMessage(Main.pr + "Du bist schon mit " + targetplayer.getName() + " befreundet!");
  192. return;
  193. }//wenn nicht abfragen ob er einen request von ihm hat!
  194. ArrayList<UUID> requests = player.getDocument().get("friendRequests", ArrayList.class);
  195. if(requests.contains(targetplayer.getUniqueID())) { //wenn er eine anfrage hat diese ablehen!
  196. requests.remove(targetplayer.getUniqueID());
  197. player.sendMessage(Main.pr + "Du hast die anfrage von " + targetplayer.getName() + " abgelent!");
  198. }else { //wenn nicht nachrich senden!
  199. player.sendMessage(Main.pr + "Du hast keine anfrage von diesem Spieler erhalten!");
  200. }
  201. }
  202. });
  203. }else { //wenn er nicht in der datenbank ist player die nachricht senden!
  204. player.sendMessage(Main.pr + "Der Spieler war noch nie auf dem netzwerk!");
  205. }
  206. }
  207. });
  208. }
  209. }
  210. /*
  211. * Request senden!
  212. */
  213. private void sendRequest(OnlineCloudPlayer player, String target) {
  214. //ist der target online?
  215. if(UserManagement.getInstance().isOnline(target)) {
  216. OnlineCloudPlayer targetplayer = UserManagement.getInstance().getCacheOnlineCloudPlayer(target);
  217.  
  218. //sind player und target schon befreundet?
  219. if(player.getDocument().get("friends", ArrayList.class).contains(targetplayer.getUniqueID())) {
  220. player.sendMessage(Main.pr + "Du bist schon mit " + targetplayer.getName() + " befreundet!");
  221. return;
  222. }
  223. ArrayList<UUID> requests = targetplayer.getDocument().get("friendRequests", ArrayList.class);
  224.  
  225. //hat target schon eine anfrage?
  226. if(!requests.contains(player.getUniqueID())) {
  227.  
  228. //anfrage senden!
  229. requests.add(player.getUniqueID());
  230. player.sendMessage(Main.pr + "Deine anfrage an" + targetplayer.getName() + " wurde erfolgreich versant!");
  231. targetplayer.sendMessage(Main.pr + "Du hast eine anfrage von " + player.getName() + " erhalten!");
  232. targetplayer.getDocument().replace("friendRequests", requests);
  233. //wen er schon eine hat nachricht senden!
  234. }else {
  235. player.sendMessage(Main.pr + "Du hast bereits eine anfrage an " + targetplayer.getName() + " gesendet!");
  236. }
  237. //wen er offline ist die datenbank anfragen!
  238. }else {
  239. //uuid holen
  240. UserManagement.getInstance().getUUIDbyName(target, new Consumer<UUID>() {
  241.  
  242. @Override
  243. public void accept(UUID uuid) {
  244. //gibt es den spieler in der datenbank?
  245. if(uuid != null) {
  246. //Cloudplayer holen!
  247. UserManagement.getInstance().getPlayerDocument(uuid, new Consumer<CloudPlayer>() {
  248.  
  249. @Override
  250. public void accept(CloudPlayer targetplayer) {
  251. //abfragen ob sie schon befreundet sind
  252. if(player.getDocument().get("friends", ArrayList.class).contains(targetplayer.getUniqueID())) {
  253. player.sendMessage(Main.pr + "Du bist schon mit " + targetplayer.getName() + " befreundet!");
  254. return;
  255. }
  256. ArrayList<UUID> requests = targetplayer.getDocument().get("friendRequests", ArrayList.class);
  257. //abfragen ob target schon eine anfrage von player hat
  258. if(!requests.contains(player.getUniqueID())) {
  259. //anfrage senden!
  260. requests.add(player.getUniqueID());
  261. player.sendMessage(Main.pr + "Deine anfrage an" + targetplayer.getName() + " wurde erfolgreich versant!");
  262. targetplayer.getDocument().replace("friendRequests", requests);
  263. //wen er schon eine hat nachricht senden!
  264. }else {
  265. player.sendMessage(Main.pr + "Du hast bereits eine anfrage an " + targetplayer.getName() + " gesendet!");
  266. }
  267. }
  268. });
  269. //wenn es den spieler nicht gibt nachricht senden!
  270. }else {
  271. player.sendMessage(Main.pr + "Der Spieler war noch nie auf dem netzwerk!");
  272. }
  273. }
  274. });
  275. }
  276. }
  277. /*
  278. * request accepten!
  279. */
  280. private void accceptRequest(OnlineCloudPlayer player, String target) {
  281. //abfragen ob der target online ist
  282. if(UserManagement.getInstance().isOnline(target)) {
  283. OnlineCloudPlayer targetplayer = UserManagement.getInstance().getCacheOnlineCloudPlayer(target);
  284. ArrayList<UUID> requests = player.getDocument().get("friendRequests", ArrayList.class);
  285.  
  286. //abfaragen ob er eine request hat
  287. if(requests.contains(targetplayer.getUniqueID())) {
  288. //danach den request accepten!
  289.  
  290. requests.remove(targetplayer.getUniqueID());
  291. player.getDocument().get("friends", ArrayList.class).add(targetplayer.getUniqueID());
  292. targetplayer.getDocument().get("friends", ArrayList.class).add(player.getUniqueID());
  293. player.sendMessage(Main.pr + "Du bist nun mit " + targetplayer.getName() + " befreundet!");
  294. targetplayer.sendMessage(Main.pr + "Du bist nun mit " + player.getName() + " befreundet!");
  295. //wenn nicht nachricht senden!
  296. }else {
  297. player.sendMessage(Main.pr + "Du hast keine anfrage von diesem Spieler erhalten!");
  298. }
  299. //wenn er nicht online ist datenbank anfragen!
  300. }else {
  301. UserManagement.getInstance().getUUIDbyName(target, new Consumer<UUID>() {
  302.  
  303. @Override
  304. public void accept(UUID uuid) {
  305. //abfragen ob der spieler überhaubt auf dem netzwerk war!
  306. if(uuid != null) {
  307. UserManagement.getInstance().getPlayerDocument(uuid, new Consumer<CloudPlayer>() {
  308.  
  309. @Override
  310. public void accept(CloudPlayer targetplayer) {
  311. ArrayList<UUID> requests = player.getDocument().get("friendRequests", ArrayList.class);
  312.  
  313. //abfaragen ob er eine request hat
  314. if(requests.contains(targetplayer.getUniqueID())) {
  315. //danach den request accepten!
  316. requests.remove(targetplayer.getUniqueID());
  317. player.getDocument().get("friends", ArrayList.class).add(targetplayer.getUniqueID());
  318. targetplayer.getDocument().get("friends", ArrayList.class).add(player.getUniqueID());
  319. player.sendMessage(Main.pr + "Du bist nun mit " + targetplayer.getName() + " befreundet!");
  320. //wenn nicht nachricht senden!
  321. }else {
  322. player.sendMessage(Main.pr + "Du hast keine anfrage von diesem Spieler erhalten!");
  323. }
  324. }
  325. } );
  326.  
  327. //wenn er nie auf dem netzwerk war nachricht senden!
  328. }else {
  329. player.sendMessage(Main.pr + "Der Spieler war noch nie auf dem netzwerk!");
  330. }
  331.  
  332. }
  333. } );
  334. }
  335. }
  336. /* errechnen ob die angegebene seite existirt
  337. *
  338. */
  339. private void openFriendsList(OnlineCloudPlayer player, String page) {
  340. try {
  341. int i = Integer.parseInt(page);
  342. if(player.getDocument().get("friends", ArrayList.class).size() >= 28*(i+1)) {
  343. listfriends(player, i);
  344. }else {
  345. player.sendMessage(Main.pr + "Die seite " + i + " könnte nicht geöffnet werden, keine freunde forhanden!");
  346. }
  347. }catch (NumberFormatException e) {
  348. player.sendMessage(Main.pr + page + " ist keine mir bekannte zahl, was soll ich damit? Gib bitte eine zahl an!");
  349. }
  350. }
  351. /*
  352. * Command help
  353. */
  354. private void sendhelp(OnlineCloudPlayer player) {
  355. player.sendMessage("/friend (Zeige diese liste an) \n "
  356. + "/friend list (Öffnet das freunde inventar) \n "
  357. + "/friend listrequests (Öffnet deine anfragen) \n"
  358. + "/friend list <page> (Öffnet eine bestimmte seite deines freunde inventares) \n "
  359. + "/friend listrequests <page> (Öffnet eine bestimmte seite deines anfragen inventares) \n"
  360. + "/friend request <name> (Sende eine anfrage) \n"
  361. + "/friend accept <name> (Nimmt eine anfrage an) \n"
  362. + "/friend deny <name> (lehnt eine anfrage ab) \n"
  363. + "/friend remove <name> (beendet die freuntschaft)");
  364. }
  365. /*Open friend request liste
  366. *
  367. */
  368. private void openFriendRequestList(OnlineCloudPlayer player, String page) {
  369. try {
  370. int i = Integer.parseInt(page);
  371. if(player.getDocument().get("friendRequests", ArrayList.class).size() >= 28*(i+1)) {
  372. listrequests(player, i);
  373. }else {
  374. player.sendMessage(Main.pr + "Die seite " + i + " könnte nicht geöffnet werden, keine anfragen forhanden!");
  375. }
  376. }catch (NumberFormatException e) {
  377. player.sendMessage(Main.pr + page + " ist keine mir bekannte zahl, was soll ich damit? Gib bitte eine zahl an!");
  378. }
  379. }
  380. /*
  381. * ListRequests
  382. */
  383. private void listrequests(OnlineCloudPlayer player, int page) {
  384. PlayerOpenInventoryPacket packet = new PlayerOpenInventoryPacket(player.getName(), 56, "friendRequests menü page(" + (page+1) + "/" + (player.getDocument().get("friendRequests", ArrayList.class).size()/28) + ")");
  385. packet.addItem(0, glass);
  386. packet.addItem(1, glass);
  387. packet.addItem(2, glass);
  388. packet.addItem(3, glass);
  389. packet.addItem(4, glass);
  390. packet.addItem(5, glass);
  391. packet.addItem(6, glass);
  392. packet.addItem(7, glass);
  393. packet.addItem(8, glass);
  394. packet.addItem(9, glass);
  395. packet.addItem(17, glass);
  396. packet.addItem(18, glass);
  397. packet.addItem(26, glass);
  398. packet.addItem(27, glass);
  399. packet.addItem(35, glass);
  400. packet.addItem(36, glass);
  401. packet.addItem(44, glass);
  402. if(page != 0) {
  403. packet.addItem(45, new CloudItem("Seite Zurück du wixxer", 339, 0, emtylore, emtyextradata));
  404. }else {
  405. packet.addItem(45, glass);
  406. }
  407. packet.addItem(46, glass);
  408. packet.addItem(57, glass);
  409. packet.addItem(48, glass);
  410. packet.addItem(49, glass);
  411. packet.addItem(50, glass);
  412. packet.addItem(51, glass);
  413. packet.addItem(52, glass);
  414. if(friendddata.get(player).size() >= 28*page) {
  415. packet.addItem(53, new CloudItem("Nächste Seite", 339, 0, emtylore, emtyextradata));
  416. }else {
  417. packet.addItem(53, glass);
  418. }
  419. int friend = (28*page);
  420. ArrayList<CloudPlayer> sortetrequets = sortetRequests(player);
  421. for (int i = 10; i < 53; i++) {
  422. if(packet.getItems().get(i) != null)
  423. continue;
  424. packet.addItem(i, getItemForReqtestAtIndex(player, sortetrequets.get(friend)));
  425. friend++;
  426. }
  427.  
  428. player.openInventory(packet);
  429.  
  430. }
  431. /*
  432. * Friend liste gegeriren!
  433. */
  434. private void listfriends(OnlineCloudPlayer player, int page) {
  435. PlayerOpenInventoryPacket packet = new PlayerOpenInventoryPacket(player.getName(), 56, "Friends menü page(" + (page+1) + "/" + (player.getDocument().get("friends", ArrayList.class).size()/28) + ")");
  436. packet.addItem(0, glass);
  437. packet.addItem(1, glass);
  438. packet.addItem(2, glass);
  439. packet.addItem(3, glass);
  440. packet.addItem(4, glass);
  441. packet.addItem(5, glass);
  442. packet.addItem(6, glass);
  443. packet.addItem(7, glass);
  444. packet.addItem(8, glass);
  445. packet.addItem(9, glass);
  446. packet.addItem(17, glass);
  447. packet.addItem(18, glass);
  448. packet.addItem(26, glass);
  449. packet.addItem(27, glass);
  450. packet.addItem(35, glass);
  451. packet.addItem(36, glass);
  452. packet.addItem(44, glass);
  453. if(page != 0) {
  454. packet.addItem(45, new CloudItem("Seite Zurück du wixxer", 339, 0, emtylore, emtyextradata));
  455. }else {
  456. packet.addItem(45, glass);
  457. }
  458. packet.addItem(46, glass);
  459. packet.addItem(57, glass);
  460. packet.addItem(48, glass);
  461. packet.addItem(49, glass);
  462. packet.addItem(50, glass);
  463. packet.addItem(51, glass);
  464. packet.addItem(52, glass);
  465. if(friendddata.get(player).size() >= 28*page) {
  466. packet.addItem(53, new CloudItem("Nächste Seite", 339, 0, emtylore, emtyextradata));
  467. }else {
  468. packet.addItem(53, glass);
  469. }
  470. ArrayList<CloudPlayer> sortetfriends = sortfriends(player);
  471. int friend = (28*page);
  472. for (int i = 10; i < 53; i++) {
  473. if(packet.getItems().get(i) != null)
  474. continue;
  475. packet.addItem(i, getItemForFriendAtIndex(player, sortetfriends.get(friend)));
  476. friend++;
  477. }
  478.  
  479. player.openInventory(packet);
  480.  
  481. }
  482. /*
  483. * friends sortiren
  484. */
  485. private ArrayList<CloudPlayer> sortfriends(OnlineCloudPlayer player){
  486. if(friendscash.containsKey(player)) {
  487. if(friendscash.get(player) >= System.currentTimeMillis()) {
  488. return friendddata.get(player);
  489. }
  490. }
  491. ArrayList<UUID> friend = player.getDocument().get("friends", ArrayList.class);
  492. friend.sort(new Comparator<UUID>() {
  493. int i = 0;
  494. @Override
  495. public int compare(UUID uuid1, UUID uuid2) {
  496. //Beide offline!
  497. if(!UserManagement.getInstance().isOnline(uuid1)&&!UserManagement.getInstance().isOnline(uuid2)) {
  498.  
  499. UserManagement.getInstance().getPlayerDocument(uuid1, new Consumer<CloudPlayer>() {
  500.  
  501. @Override
  502. public void accept(CloudPlayer player1) {
  503. UserManagement.getInstance().getPlayerDocument(uuid2, new Consumer<CloudPlayer>() {
  504.  
  505. @Override
  506. public void accept(CloudPlayer player2) {
  507. i = player1.getName().compareToIgnoreCase(player2.getName());
  508. }
  509. });
  510.  
  511. }
  512. });
  513. }else
  514. //beide online?
  515. if(UserManagement.getInstance().isOnline(uuid1) && UserManagement.getInstance().isOnline(uuid2)) {
  516. return UserManagement.getInstance().getCacheOnlineCloudPlayer(uuid1).getName().compareToIgnoreCase(UserManagement.getInstance().getCacheOnlineCloudPlayer(uuid2).getName());
  517. }else
  518. //heurausfinden wer offline!
  519. if(!UserManagement.getInstance().isOnline(uuid1)) {
  520. return 1;
  521. }else {
  522. return -1;
  523. }
  524.  
  525.  
  526. return i;
  527. }
  528. });
  529.  
  530. ArrayList<CloudPlayer> returning = new ArrayList<>();
  531. for (UUID uuid : friend) {
  532. if(UserManagement.getInstance().isOnline(uuid)) {
  533. returning.add(UserManagement.getInstance().getCacheOnlineCloudPlayer(uuid));
  534. }else {
  535. UserManagement.getInstance().getPlayerDocument(uuid, new Consumer<CloudPlayer>() {
  536.  
  537. @Override
  538. public void accept(CloudPlayer cloudPlayer) {
  539. returning.add(cloudPlayer);
  540.  
  541. }
  542.  
  543. });
  544. }
  545. }
  546. friendscash.put(player, (System.currentTimeMillis()+(1000*10)));
  547. friendddata.put(player, returning);
  548. return returning;
  549.  
  550. }
  551. /*
  552. * LoreFür jeden freund errechnen
  553. */
  554. private ArrayList<String> getLoreOfFrendAtIndex(OnlineCloudPlayer cloudPlayer, CloudPlayer friend){
  555. ArrayList<String> returning = new ArrayList<>();
  556. if(UserManagement.getInstance().isOnline(friend.getName())) {
  557. OnlineCloudPlayer player = UserManagement.getInstance().getCacheOnlineCloudPlayer(friend.getName());
  558. returning.add("§2Online auf:");
  559. returning.add(player.getSpigotServer().getName() + "-" + player.getSpigotServer().getId());
  560. returning.add("");
  561. String status = player.getDocument().getString("statusmeldung");
  562. if(status != null) {
  563. returning.add(status);
  564. }else {
  565. returning.add("§4Dieser Spieler hat keinen Status!");
  566. }
  567. }else {
  568. returning.add("§4Zuletz online vor:");
  569. returning.add("§6" + getTimeSinceFriendLastOnline(friend.getDocument().getLong("lastLogin")));
  570. returning.add("");
  571. String status = friend.getDocument().getString("statusmeldung");
  572. if(status != null) {
  573. returning.add(status);
  574. }else {
  575. returning.add("§4Dieser Spieler hat keinen Status!");
  576. }
  577. }
  578. return returning;
  579. }
  580. /*
  581. * Zeit seit der freund das letzte mal online war
  582. */
  583. private String getTimeSinceFriendLastOnline(long lastonline) {
  584. if(lastonline > System.currentTimeMillis()) {
  585. return null;
  586. }
  587.  
  588. if(lastonline == -1){
  589. return "§4Permanent";
  590. }else{
  591. long realtimeede = System.currentTimeMillis() - lastonline;
  592. long realtimeed = realtimeede /1000;
  593. long jahre = (long) realtimeed / 31536000;
  594. realtimeed = realtimeed - jahre * 31536000;
  595. long monate = (long) realtimeed / 2592000;
  596. realtimeed = realtimeed - monate * 2592000;
  597. long tage = (long) realtimeed / 86400;
  598. realtimeed = realtimeed - tage * 86400;
  599. long stunden = (long) realtimeed / 3600;
  600. realtimeed = realtimeed - stunden * 3600;
  601. long minuten = (long) realtimeed / 60;
  602. realtimeed = realtimeed - minuten * 60 ;
  603. long sekunden = realtimeed;
  604. String BanTime;
  605. BanTime = "";
  606. if(jahre > 0) {
  607. if(jahre >= 2) {
  608. BanTime = String.valueOf(jahre) + " Jahre ";
  609. }else {
  610. BanTime = String.valueOf(jahre) + " Jahr ";
  611. }
  612. }
  613. if(monate > 0) {
  614. if(monate >= 2) {
  615. BanTime = BanTime + String.valueOf(monate) + " Monate ";
  616. }else {
  617. BanTime = BanTime + String.valueOf(monate) + " Monat ";
  618. }
  619. }
  620. if(tage > 0) {
  621. if(tage >= 2) {
  622. BanTime = BanTime + String.valueOf(tage) + " Tage ";
  623. }else {
  624. BanTime = BanTime + String.valueOf(tage) + " Tag ";
  625. }
  626. }
  627. if(stunden > 0) {
  628. if(stunden >= 2) {
  629. BanTime = BanTime + String.valueOf(stunden) + " Stunden ";
  630. }else {
  631. BanTime = BanTime + String.valueOf(stunden) + " Stunde ";
  632. }
  633. }
  634. if(minuten > 0) {
  635. if(minuten >= 2) {
  636. BanTime = BanTime + String.valueOf(minuten) + " Minuten ";
  637. }else {
  638. BanTime = BanTime + String.valueOf(minuten) + " Minute ";
  639. }
  640. }
  641. if(sekunden > 0) {
  642. if(sekunden >= 2) {
  643. BanTime = BanTime + String.valueOf(sekunden) + " Sekunden";
  644. }else {
  645. BanTime = BanTime + String.valueOf(sekunden) + " Sekunden";
  646. }
  647. }
  648. return BanTime;
  649. }
  650.  
  651. }
  652. /*
  653. * Item zusammenbauen
  654. */
  655. private CloudItem getItemForFriendAtIndex(OnlineCloudPlayer player, CloudPlayer friend) {
  656. if(UserManagement.getInstance().isOnline(friend.getName())) {
  657. return new CloudItem(friend.getName(), 397, 3, getLoreOfFrendAtIndex(player, friend), getExtraDataForFriendAtIndex(friend));
  658. }else {
  659. return new CloudItem(friend.getName(), 397, 0, getLoreOfFrendAtIndex(player, friend), getExtraDataForFriendAtIndex(friend));
  660. }
  661. }
  662. /*
  663. * Extradata zusammenbauen
  664. */
  665. private HashMap<String, String> getExtraDataForFriendAtIndex(CloudPlayer friend){
  666. HashMap<String, String> returning = new HashMap<>();
  667. returning.put("skin", friend.getDocument().getString("skin"));
  668. return returning;
  669. }
  670. /*
  671. * Retques sortiren
  672. */
  673. private ArrayList<CloudPlayer> sortetRequests(OnlineCloudPlayer player){
  674. ArrayList<UUID> requests = player.getDocument().get("friendRequests", ArrayList.class);
  675. ArrayList<CloudPlayer> returning = new ArrayList<>();
  676. for (UUID uuid : requests) {
  677. if(UserManagement.getInstance().isOnline(uuid)) {
  678. returning.add(UserManagement.getInstance().getCacheOnlineCloudPlayer(uuid));
  679. }else {
  680. UserManagement.getInstance().getPlayerDocument(uuid, new Consumer<CloudPlayer>() {
  681.  
  682. @Override
  683. public void accept(CloudPlayer cloudPlayer) {
  684. returning.add(cloudPlayer);
  685.  
  686. }
  687. });
  688. }
  689. }
  690.  
  691. return returning;
  692.  
  693.  
  694. }
  695.  
  696. private CloudItem getItemForReqtestAtIndex(OnlineCloudPlayer player, CloudPlayer requester) {
  697. return new CloudItem(requester.getName(), 397, 3, emtylore, getExtraDataForFriendAtIndex(requester));
  698. }
  699. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement