GroupArgumentType class
Пакет: com.hypixel.hytale.server.core.permissions.commands
Файл: com/hypixel/hytale/server/core/permissions/commands/GroupArgumentType.java
extends: SingleArgumentType<String>
Поля (17)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
GroupArgumentType |
INSTANCE |
|
String |
var1 |
|
Map |
var1 |
|
List |
var10 |
|
String |
var13 |
|
Set |
var2 |
|
String |
var3 |
|
Set |
var4 |
|
int |
var4 |
|
Set |
var5 |
|
List |
var5 |
|
String |
var5 |
|
Map |
var6 |
|
int |
var6 |
|
String |
var7 |
|
String |
var7 |
|
String |
var8 |
Методы (8)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(String var12 : var10) |
|
|
for for(String var4 : var2) |
|
|
for for(String var5 : var2) |
|
|
for for(String var11 : var2) |
|
|
for for(String var3 : var0) |
|
|
if if(var3 != null) |
|
|
if if(var6 >= 0) |
abstract |
|
super super("group", "server.commands.setgroup.group.desc", "Admin", "hytale:Admin", "Adventurer") |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.permissions.commands;
class="kw">import com.hypixel.hytale.common.util.StringUtil;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandSender;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandUtil;
class="kw">import com.hypixel.hytale.server.core.command.system.ParseResult;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.SingleArgumentType;
class="kw">import com.hypixel.hytale.server.core.command.system.suggestion.SuggestionResult;
class="kw">import com.hypixel.hytale.server.core.permissions.PermissionsModule;
class="kw">import com.hypixel.hytale.server.core.permissions.provider.HytalePermissionsProvider;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.HashMap;
class="kw">import java.util.List;
class="kw">import java.util.Locale;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class GroupArgumentType class="kw">extends SingleArgumentType<String> {
class="kw">public class="kw">static class="kw">final GroupArgumentType INSTANCE = new GroupArgumentType();
class="kw">private GroupArgumentType() {
super("group", "server.commands.setgroup.group.desc", "Admin", "hytale:Admin", "Adventurer");
}
@Override
class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
Set var5 = PermissionsModule.get().getAllRegisteredGroups();
Map var6 = buildShortNameMap(var5);
String var7 = var2.toLowerCase(Locale.ROOT);
for (Entry var9 : var6.entrySet()) {
List var10 = var9.getValue();
if (var10.size() == 1) {
String var13 = var9.getKey();
if (var13.toLowerCase(Locale.ROOT).startsWith(var7)) {
var4.suggest(var13);
}
} else {
for (String var12 : var10) {
if (var12.toLowerCase(Locale.ROOT).startsWith(var7)) {
var4.suggest(var12);
}
}
}
}
}
@Nullable
class="kw">public String parse(@Nonnull String var1, @Nonnull ParseResult var2) {
String var3 = resolveGroup(var1);
if (var3 != null) {
class="kw">return var3;
}
Set var4 = PermissionsModule.get().getAllRegisteredGroups();
List var5 = new ObjectArrayList(var4);
var2.fail(
Message.empty()
.insert(Message.translation("server.commands.setgroup.unknownGroup").param("group", var1))
.insert(Message.raw(" "))
.insert(
Message.translation("server.general.failed.didYouMean")
.param("choices", StringUtil.sortByFuzzyDistance(var1.toLowerCase(Locale.ROOT), var5, CommandUtil.RECOMMEND_COUNT).toString())
)
);
class="kw">return null;
}
@Nullable
class="kw">private class="kw">static String resolveGroup(@Nonnull String var0) {
String var1 = HytalePermissionsProvider.resolveGroupName(var0);
Set var2 = PermissionsModule.get().getAllRegisteredGroups();
if (var2.contains(var1)) {
class="kw">return var1;
}
for (String var4 : var2) {
if (var4.equalsIgnoreCase(var1)) {
class="kw">return var4;
}
}
String var8 = "hytale:" + var0;
for (String var5 : var2) {
if (var5.equalsIgnoreCase(var8)) {
class="kw">return var5;
}
}
for (String var11 : var2) {
int var6 = var11.indexOf(58);
if (var6 >= 0) {
String var7 = var11.substring(var6 + 1);
if (var7.equalsIgnoreCase(var0)) {
class="kw">return var11;
}
}
}
class="kw">return null;
}
@Nonnull
class="kw">private class="kw">static Map<String, List<String>> buildShortNameMap(@Nonnull Set<String> var0) {
Map var1 = new HashMap<>();
for (String var3 : var0) {
int var4 = var3.indexOf(58);
String var5 = var4 >= 0 ? var3.substring(var4 + 1) : var3;
var1.computeIfAbsent(var5, var0x -> new ObjectArrayList()).add(var3);
}
class="kw">return var1;
}
}