Skocz do zawartości
  • 0
xKubeQ

UserManager POMOCY.

Pytanie

Użytkownik

Siemka.
Potrzebuje pomocy z UserManager, myślę, że ktoś mi pomoże bo nie jestem przekonany czy dobrze bym zrobił.
Oto kod: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
Trzeba w nim zrobić poprawić to getUser by pobierało po kluczu a nie iterowało po całej mapie.

Z tego co wiem to jak jest możliwość Key zamienić na uuid Jak nie to przy oddawaniu nick.toLowerCase W get users.get(nick.toLowerCase ()) I w remove też nic tolowercase

Pomoże ktoś? :D

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

6 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Użytkownik
  • 0

kiedy domcraft tu ReNe XD

 

tworzysz sobie mapke jako klucz uuid Map<UUID, User> userMap // zamiast uuid mozesz dac  stringa jako name ale zalecam uzywac uuid

i potem z tego klucza pobierasz obiekt za pomoca userMap.get(klucz) < chyba o to Ci chodzilo

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik
  • 0
private static final ConcurrentHashMap<UUID, User> users = new ConcurrentHashMap();
  public static User getUser(Player p)
  {
    for (User u : users.values()) {
      if (u.getUniqueId().equalsIgnoreCase(p.getUniqueId())) {
        return u;
      }
    }
    return null;
  }
  public static void createrUser(Player p)
  {
    User u = new User(p);
    users.put(p.getUniqueId(), u);
    RankingManager.addRanking(u);
    KillManager.addKill(u);
    DeathManager.addDeath(u);
    AssistManager.addAssist(u);
    CoinsManager.addCoins(u);
    BreakManager.addBreak(u);
  }

i tak dalej... po co tworzysz 2 metody 'createrUser' (wtf czemu nie create? Bo jak już creater to userCreater, ale tak się nie nazywa metod raczej :P)  

Musisz sobie do usera dopisać UUID i je zapisywać do bazy danych. Jak umiesz podstawy programowania obiektowego w javie to sobie oczywiście poradzisz.

Jeżeli jednak nie potrafisz tego zrobić to lepiej ucz się javy a nie przeprabiasz jakieś EndrjuCory ;)

Powodzenia.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik
  • 0
11 godzin temu, STEINER napisał:
private static final ConcurrentHashMap<UUID, User> users = new ConcurrentHashMap();
  public static User getUser(Player p)
  {
    for (User u : users.values()) {
      if (u.getUniqueId().equalsIgnoreCase(p.getUniqueId())) {
        return u;
      }
    }
    return null;
  }
  public static void createrUser(Player p)
  {
    User u = new User(p);
    users.put(p.getUniqueId(), u);
    RankingManager.addRanking(u);
    KillManager.addKill(u);
    DeathManager.addDeath(u);
    AssistManager.addAssist(u);
    CoinsManager.addCoins(u);
    BreakManager.addBreak(u);
  }

i tak dalej... po co tworzysz 2 metody 'createrUser' (wtf czemu nie create? Bo jak już creater to userCreater, ale tak się nie nazywa metod raczej :P)  

Musisz sobie do usera dopisać UUID i je zapisywać do bazy danych. Jak umiesz podstawy programowania obiektowego w javie to sobie oczywiście poradzisz.

Jeżeli jednak nie potrafisz tego zrobić to lepiej ucz się javy a nie przeprabiasz jakieś EndrjuCory ;)

Powodzenia.

Cytat
  public static User getUser(Player p)
  {
    for (User u : users.values()) {
      if (u.getUniqueId().equalsIgnoreCase(p.getUniqueId())) {
        return u;
      }
    }
    return null;
  }

nie zmieniles najwazniejszego, czyli branie usera po kluczu (uuid), tylko znowu loopujesz całą mape, a tego wlasnie autor tematu nie chce, do tego od dawna jest pełno fajnych funkcji od javy 8, np. streamy, kod nawet lepiej by z nimi wygladal.

public static User getUser(UUID uuid) {
  return users.get(uuid);
}

do tego zamiast jako typ mozesz trzymac concurrentmap lub map, a nie concurrenthashmap, 

Edytowane przez yooniks

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×