VoiceChannels class

Пакет: com.hypixel.hytale.server.core.modules.voice

Файл: com/hypixel/hytale/server/core/modules/voice/VoiceChannels.java

Поля (5)

МодификаторыТипИмя
final Map<UUID, String> channelByPlayer
String var3
String var3
Set var4
HashSet var5

Методы (6)

МодификаторыВозвратСигнатура
synchronized void clearvoid clear()
if if(var2 != null)
if if(var3 == null)
if if(var4 == null)
if if(var2 == null)
synchronized void setChannelvoid setChannel(@Nonnull UUID var1, @Nullable String var2)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.voice;

class="kw">import java.util.HashSet;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">final class VoiceChannels {
   class="kw">private class="kw">final Map<UUID, String> channelByPlayer = new ConcurrentHashMap<>();
   class="kw">private class="kw">final Map<String, Set<UUID>> membersByChannel = new ConcurrentHashMap<>();

   VoiceChannels() {
   }

   class="kw">synchronized void setChannel(@Nonnull UUID var1, @Nullable String var2) {
      String var3 = var2 == null ? this.channelByPlayer.remove(var1) : this.channelByPlayer.put(var1, var2);
      if (var3 != null && !var3.equals(var2)) {
         this.membersByChannel.computeIfPresent(var3, (var1x, var2x) -> {
            var2x.remove(var1);
            class="kw">return var2x.isEmpty() ? null : var2x;
         });
      }

      if (var2 != null) {
         this.membersByChannel.computeIfAbsent(var2, var0 -> ConcurrentHashMap.newKeySet()).add(var1);
      }
   }

   @Nullable
   String getChannel(@Nonnull UUID var1) {
      class="kw">return this.channelByPlayer.get(var1);
   }

   @Nullable
   Set<UUID> getMembers(@Nonnull String var1) {
      class="kw">return this.membersByChannel.get(var1);
   }

   @Nullable
   Set<UUID> restrictAllowed(@Nonnull UUID var1, @Nullable Set<UUID> var2) {
      String var3 = this.channelByPlayer.get(var1);
      if (var3 == null) {
         class="kw">return var2;
      }

      Set var4 = this.membersByChannel.get(var3);
      if (var4 == null) {
         class="kw">return Set.of();
      }

      if (var2 == null) {
         class="kw">return var4;
      }

      HashSet var5 = new HashSet<>(var2);
      var5.retainAll(var4);
      class="kw">return var5;
   }

   class="kw">synchronized void clear() {
      this.channelByPlayer.clear();
      this.membersByChannel.clear();
   }
}