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();
}
}