EmoteCommand class
Пакет: com.hypixel.hytale.server.core.cosmetics.commands
Файл: com/hypixel/hytale/server/core/cosmetics/commands/EmoteCommand.java
extends: AbstractPlayerCommand
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
|
String |
var6 |
|
Map |
var7 |
|
IndexedLookupTableAssetMap |
var8 |
|
Set |
var9 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
|
super super("emote", "server.commands.emote.desc") |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.cosmetics.commands;
class="kw">import com.hypixel.hytale.assetstore.map.IndexedLookupTableAssetMap;
class="kw">import com.hypixel.hytale.common.util.StringUtil;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.protocol.AnimationSlot;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandUtil;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.RequiredArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.cosmetics.CosmeticsModule;
class="kw">import com.hypixel.hytale.server.core.cosmetics.Emote;
class="kw">import com.hypixel.hytale.server.core.cosmetics.EmoteAsset;
class="kw">import com.hypixel.hytale.server.core.entity.AnimationUtils;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PreventEmotes;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;
class="kw">public class EmoteCommand class="kw">extends AbstractPlayerCommand {
@Nonnull
class="kw">private class="kw">final RequiredArg<String> emoteArg = this.withRequiredArg("emote", "server.commands.emote.emote.desc", ArgTypes.STRING);
class="kw">public EmoteCommand() {
super("emote", "server.commands.emote.desc");
this.setPermissionGroups("hytale:Adventurer");
}
@Override
class="kw">protected void execute(
@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
) {
if (!var2.getArchetype(var3).contains(PreventEmotes.getComponentType())) {
String var6 = this.emoteArg.get(var1);
Map var7 = CosmeticsModule.get().getRegistry().getEmotesInGame();
IndexedLookupTableAssetMap var8 = EmoteAsset.getAssetMap();
if (var7.get(var6) == null && var8.getAsset(var6) == null) {
var1.sendMessage(Message.translation("server.commands.emote.emoteNotFound").param("id", var6));
Set var9 = Set.of(var7.keySet(), var8.getAssetMap().keySet());
var1.sendMessage(
Message.translation("server.general.failed.didYouMean")
.param("choices", StringUtil.sortByFuzzyDistance(var6, var9, CommandUtil.RECOMMEND_COUNT).toString())
);
} else {
AnimationUtils.playAnimation(var3, AnimationSlot.Emote, null, var6, true, var2);
}
}
}
}