Learn class

Пакет: com.hypixel.hytale.builtin.crafting.commands

Файл: com/hypixel/hytale/builtin/crafting/commands/RecipeCommand.java

extends: AbstractPlayerCommand

Поля (14)

МодификаторыТипИмя
private final RequiredArg<Item> itemArg
private final RequiredArg<Item> itemArg
private final RequiredArg<PlayerRef> playerArg
PlayerRef var2
Ref var3
Store var4
World var5
Player var5
Item var6
Item var6
String var7
String var7
Message var8
Message var8

Методы (6)

МодификаторыВозвратСигнатура
LearnOther LearnOther()
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
protected void executeSyncprotected void executeSync(@Nonnull CommandContext var1)
if if(var5 == null)
abstract super super("learn", "server.commands.recipe.learn.desc")
abstract super super("server.commands.recipe.learn.other.desc")

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.crafting.commands;

class="kw">import com.hypixel.hytale.builtin.crafting.CraftingPlugin;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.Item;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
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.AbstractCommandCollection;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.CommandBase;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.permissions.HytalePermissions;
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.awt.Color;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;

class="kw">public class RecipeCommand class="kw">extends AbstractCommandCollection {
   class="kw">public RecipeCommand() {
      super("recipe", "server.commands.recipe.desc");
      this.setPermissionGroups("hytale:WorldEditor");
      this.addSubCommand(new RecipeCommand.Learn());
      this.addSubCommand(new RecipeCommand.Forget());
      this.addSubCommand(new RecipeCommand.List());
   }

   class="kw">static class Forget class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<Item> itemArg = this.withRequiredArg("item", "server.commands.recipe.forget.item.desc", ArgTypes.ITEM_ASSET);

      Forget() {
         super("forget", "server.commands.recipe.forget.desc");
         this.setPermissionGroups("hytale:Builder");
         this.addUsageVariant(new RecipeCommand.Forget.ForgetOther());
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         Item var6 = this.itemArg.get(var1);
         String var7 = var6.getId();
         if (CraftingPlugin.forgetRecipe(var3, var7, var2)) {
            var1.sendMessage(Message.translation("server.commands.recipe.forgotten").param("id", var7).color(Color.GREEN));
         } else {
            var1.sendMessage(Message.translation("server.commands.recipe.alreadyNotKnown").param("id", var7).color(Color.RED));
         }
      }

      class="kw">private class="kw">static class ForgetOther class="kw">extends CommandBase {
         @Nonnull
         class="kw">private class="kw">final RequiredArg<Item> itemArg = this.withRequiredArg("item", "server.commands.recipe.forget.item.desc", ArgTypes.ITEM_ASSET);
         @Nonnull
         class="kw">private class="kw">final RequiredArg<PlayerRef> playerArg = this.withRequiredArg("player", "server.commands.argtype.player.desc", ArgTypes.PLAYER_REF);

         ForgetOther() {
            super("server.commands.recipe.forget.other.desc");
            this.requirePermission(HytalePermissions.fromCommand("recipe.forget.other"));
         }

         @Override
         class="kw">protected void executeSync(@Nonnull CommandContext var1) {
            PlayerRef var2 = this.playerArg.get(var1);
            Ref var3 = var2.getReference();
            if (var3 != null && var3.isValid()) {
               Store var4 = var3.getStore();
               World var5 = var4.getExternalData().getWorld();
               var5.execute(
                  () -> {
                     Player var5 = var4.getComponent(var3, Player.getComponentType());
                     if (var5 == null) {
                        var1.sendMessage(Message.translation("server.commands.errors.playerNotInWorld"));
                     } else {
                        Item var6 = this.itemArg.get(var1);
                        String var7 = var6.getId();
                        if (CraftingPlugin.forgetRecipe(var3, var7, var4)) {
                           var1.sendMessage(
                              Message.translation("server.commands.recipe.forgotten.other")
                                 .param("username", var2.getUsername())
                                 .param("id", var7)
                                 .color(Color.GREEN)
                           );
                        } else {
                           var1.sendMessage(
                              Message.translation("server.commands.recipe.alreadyNotKnown.other")
                                 .param("username", var2.getUsername())
                                 .param("id", var7)
                                 .color(Color.RED)
                           );
                        }
                     }
                  }
               );
            } else {
               var1.sendMessage(Message.translation("server.commands.errors.playerNotInWorld"));
            }
         }
      }
   }

   class="kw">static class Learn class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<Item> itemArg = this.withRequiredArg("item", "server.commands.recipe.learn.item.desc", ArgTypes.ITEM_ASSET);

      Learn() {
         super("learn", "server.commands.recipe.learn.desc");
         this.setPermissionGroups("hytale:Builder");
         this.addUsageVariant(new RecipeCommand.Learn.LearnOther());
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         Item var6 = this.itemArg.get(var1);
         String var7 = var6.getId();
         Message var8 = var6.getTranslationMessage();
         if (CraftingPlugin.learnRecipe(var3, var7, var2)) {
            var1.sendMessage(Message.translation("server.modules.learnrecipe.success").param("name", var8).color(Color.GREEN));
         } else {
            var1.sendMessage(Message.translation("server.modules.learnrecipe.alreadyKnown").param("name", var8).color(Color.RED));
         }
      }

      class="kw">private class="kw">static class LearnOther class="kw">extends CommandBase {
         @Nonnull
         class="kw">private class="kw">final RequiredArg<Item> itemArg = this.withRequiredArg("item", "server.commands.recipe.learn.item.desc", ArgTypes.ITEM_ASSET);
         @Nonnull
         class="kw">private class="kw">final RequiredArg<PlayerRef> playerArg = this.withRequiredArg("player", "server.commands.argtype.player.desc", ArgTypes.PLAYER_REF);

         LearnOther() {
            super("server.commands.recipe.learn.other.desc");
            this.requirePermission(HytalePermissions.fromCommand("recipe.learn.other"));
         }

         @Override
         class="kw">protected void executeSync(@Nonnull CommandContext var1) {
            PlayerRef var2 = this.playerArg.get(var1);
            Ref var3 = var2.getReference();
            if (var3 != null && var3.isValid()) {
               Store var4 = var3.getStore();
               World var5 = var4.getExternalData().getWorld();
               var5.execute(
                  () -> {
                     Player var5 = var4.getComponent(var3, Player.getComponentType());
                     if (var5 == null) {
                        var1.sendMessage(Message.translation("server.commands.errors.playerNotInWorld"));
                     } else {
                        Item var6 = this.itemArg.get(var1);
                        String var7 = var6.getId();
                        Message var8 = var6.getTranslationMessage();
                        if (CraftingPlugin.learnRecipe(var3, var7, var4)) {
                           var1.sendMessage(
                              Message.translation("server.commands.recipe.learn.success.other")
                                 .param("username", var2.getUsername())
                                 .param("name", var8)
                                 .color(Color.GREEN)
                           );
                        } else {
                           var1.sendMessage(
                              Message.translation("server.commands.recipe.learn.alreadyKnown.other")
                                 .param("username", var2.getUsername())
                                 .param("name", var8)
                                 .color(Color.RED)
                           );
                        }
                     }
                  }
               );
            } else {
               var1.sendMessage(Message.translation("server.commands.errors.playerNotInWorld"));
            }
         }
      }
   }

   class="kw">static class List class="kw">extends AbstractPlayerCommand {
      List() {
         super("list", "server.commands.recipe.list.desc");
         this.setPermissionGroups("hytale:Adventurer");
         this.addUsageVariant(new RecipeCommand.List.ListOther());
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         Player var6 = var2.getComponent(var3, Player.getComponentType());
         assert var6 != null;
         Set var7 = var6.getPlayerConfigData().getKnownRecipes();
         var1.sendMessage(Message.translation("server.commands.recipe.knownRecipes").param("list", var7.toString()));
      }

      class="kw">private class="kw">static class ListOther class="kw">extends CommandBase {
         @Nonnull
         class="kw">private class="kw">final RequiredArg<PlayerRef> playerArg = this.withRequiredArg("player", "server.commands.argtype.player.desc", ArgTypes.PLAYER_REF);

         ListOther() {
            super("server.commands.recipe.list.other.desc");
            this.requirePermission(HytalePermissions.fromCommand("recipe.list.other"));
         }

         @Override
         class="kw">protected void executeSync(@Nonnull CommandContext var1) {
            PlayerRef var2 = this.playerArg.get(var1);
            Ref var3 = var2.getReference();
            if (var3 != null && var3.isValid()) {
               Store var4 = var3.getStore();
               World var5 = var4.getExternalData().getWorld();
               var5.execute(
                  () -> {
                     Player var4 = var4.getComponent(var3, Player.getComponentType());
                     if (var4 == null) {
                        var1.sendMessage(Message.translation("server.commands.errors.playerNotInWorld"));
                     } else {
                        Set var5 = var4.getPlayerConfigData().getKnownRecipes();
                        var1.sendMessage(
                           Message.translation("server.commands.recipe.knownRecipes.other")
                              .param("username", var2.getUsername())
                              .param("list", var5.toString())
                        );
                     }
                  }
               );
            } else {
               var1.sendMessage(Message.translation("server.commands.errors.playerNotInWorld"));
            }
         }
      }
   }
}