Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Błąd w pluginie - PlayerQuitEvent


Rekomendowane odpowiedzi

Opublikowano

Linijka 83, problem z HashMap.

	        at java.util.HashMap$EntryIterator.next(HashMap.java:960) ~[?:1.7.0_75]
	        at me.vik1395.PlayerThrottleBukkit.Main.onLeave(Main.java:83) ~[?:?]
Opublikowano

@єяιρѕσи Żeś mu pomógł... Brawo.

Caused by: java.util.ConcurrentModificationException
for(HashMap.Entry<String, String> entry1 : throttle1.entrySet())
throttle1.remove(entry1.getKey());

Nie możesz wykonywać operacji usuwania, i odczytywania z mapy np. w jednym forze/whilu/whatever (tj. tak jakby w jednym momencie).

Najprościej jest, zrobić sobie klona tej mapy i z niego odczytywać, a z oryginału usuwać, wtedy nie wyrzuci Ci tego wyjątku.

 

W ogóle:

private HashMap<String, String> throttle1 = ...;
[...]
int s = Integer.parseInt(throttle1.get(ip));

wtf.

Opublikowano

@єяιρѕσи Żeś mu pomógł... Brawo.

Caused by: java.util.ConcurrentModificationException
for(HashMap.Entry<String, String> entry1 : throttle1.entrySet())
throttle1.remove(entry1.getKey());

Nie możesz wykonywać operacji usuwania, i odczytywania z mapy np. w jednym forze/whilu/whatever (tj. tak jakby w jednym momencie).

Najprościej jest, zrobić sobie klona tej mapy i z niego odczytywać, a z oryginału usuwać, wtedy nie wyrzuci Ci tego wyjątku.

 

W ogóle:

private HashMap<String, String> throttle1 = ...;
[...]
int s = Integer.parseInt(throttle1.get(ip));

wtf.

 

Problem naprawiony, zero błędów.

 

Jeszcze mam tylko jeden problem, ogólnym zamierzeniem pluginu jest limitowanie kont online na IP.

Problem jest taki, że gdy gracz jest zbanowany i próbuje wejść to się nalicza do map konta online z IP ale wtedy PlayerQuitEvent już nie łapie i po 3 próbach takich wejść gracza IP nie może już wejść.

 

Reasumując, jak sprawdzić czy gracz po AsyncPlayerPreLoginEvent wszedł na serwer czy też został wyrzucony?

Potrzebujesz tanich punktów na Pukawka.pl?


Pisz PW! ;)

Opublikowano

--------------

Dałem radę.

Close i lecę dawać like

Potrzebujesz tanich punktów na Pukawka.pl?


Pisz PW! ;)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...