Actually start actions
This commit is contained in:
@@ -1,15 +1,10 @@
|
||||
package io.github.skippyall.minions.command;
|
||||
|
||||
import io.github.skippyall.minions.fakeplayer.MinionFakePlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.network.packet.LoginPackets;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.text.Text;
|
||||
|
||||
public interface Command {
|
||||
public interface Command extends CommandExecutor {
|
||||
Text getName();
|
||||
Text getDescription();
|
||||
Item getItemRepresentation();
|
||||
|
||||
void onRun(ServerPlayerEntity player, MinionFakePlayer minion);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package io.github.skippyall.minions.command;
|
||||
|
||||
import io.github.skippyall.minions.fakeplayer.MinionFakePlayer;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
|
||||
public interface CommandExecutor {
|
||||
void execute(ServerPlayerEntity player, MinionFakePlayer minion);
|
||||
}
|
||||
@@ -5,20 +5,17 @@ import net.minecraft.item.Item;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.text.Text;
|
||||
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class SimpleCommand implements Command {
|
||||
private final Text name;
|
||||
private final Text description;
|
||||
private final Item itemRepresentation;
|
||||
private final BiConsumer<ServerPlayerEntity, MinionFakePlayer> onRun;
|
||||
private final CommandExecutor executor;
|
||||
|
||||
public SimpleCommand(Text name, Text description, Item itemRepresentation, BiConsumer<ServerPlayerEntity, MinionFakePlayer> onRun) {
|
||||
public SimpleCommand(Text name, Text description, Item itemRepresentation, CommandExecutor executor) {
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.itemRepresentation = itemRepresentation;
|
||||
this.onRun = onRun;
|
||||
this.executor = executor;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -37,7 +34,7 @@ public class SimpleCommand implements Command {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRun(ServerPlayerEntity player, MinionFakePlayer minion) {
|
||||
onRun.accept(player, minion);
|
||||
public void execute(ServerPlayerEntity player, MinionFakePlayer minion) {
|
||||
executor.execute(player, minion);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import eu.pb4.sgui.api.gui.SimpleGui;
|
||||
import io.github.skippyall.minions.command.Command;
|
||||
import io.github.skippyall.minions.fakeplayer.MinionFakePlayer;
|
||||
import io.github.skippyall.minions.module.ModuleItem;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.screen.ScreenHandlerType;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.text.Text;
|
||||
@@ -44,7 +43,7 @@ public class CommandsGui {
|
||||
.setItem(command.getItemRepresentation())
|
||||
.setName(command.getName())
|
||||
.addLoreLine(command.getDescription())
|
||||
.setCallback(() -> command.onRun(player, minion))
|
||||
.setCallback(() -> command.execute(player, minion))
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,13 +4,11 @@ import io.github.skippyall.minions.command.Command;
|
||||
import io.github.skippyall.minions.fakeplayer.MinionFakePlayer;
|
||||
import io.github.skippyall.minions.module.ModuleItem;
|
||||
import io.github.skippyall.minions.program.block.CodeBlock;
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.inventory.Inventories;
|
||||
import net.minecraft.inventory.SimpleInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.registry.RegistryWrapper;
|
||||
import net.minecraft.screen.GenericContainerScreenHandler;
|
||||
import net.minecraft.screen.SimpleNamedScreenHandlerFactory;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.text.Text;
|
||||
|
||||
@@ -52,7 +52,7 @@ public class ModuleInventoryScreenHandler extends ScreenHandler {
|
||||
@Override
|
||||
public ItemStack quickMove(PlayerEntity player, int slot) {
|
||||
ItemStack itemStack = ItemStack.EMPTY;
|
||||
Slot slot2 = (Slot)this.slots.get(slot);
|
||||
Slot slot2 = this.slots.get(slot);
|
||||
if (slot2 != null && slot2.hasStack()) {
|
||||
ItemStack itemStack2 = slot2.getStack();
|
||||
itemStack = itemStack2.copy();
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package io.github.skippyall.minions.module;
|
||||
|
||||
import eu.pb4.sgui.api.elements.GuiElementBuilder;
|
||||
import eu.pb4.sgui.api.gui.SimpleGui;
|
||||
import io.github.skippyall.minions.command.CommandExecutor;
|
||||
import io.github.skippyall.minions.fakeplayer.EntityPlayerActionPack;
|
||||
import io.github.skippyall.minions.fakeplayer.MinionFakePlayer;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.screen.ScreenHandlerType;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.text.Text;
|
||||
|
||||
public class ActionModules {
|
||||
public static void executeOnce(EntityPlayerActionPack.ActionType actionType, ServerPlayerEntity player, MinionFakePlayer minion) {
|
||||
minion.getMinionActionPack().start(actionType, EntityPlayerActionPack.Action.once());
|
||||
}
|
||||
|
||||
public static void intervalExecutor(EntityPlayerActionPack.ActionType actionType, ServerPlayerEntity player, MinionFakePlayer minion) {
|
||||
minion.getMinionActionPack().start(actionType, EntityPlayerActionPack.Action.interval());
|
||||
}
|
||||
|
||||
public static CommandExecutor detailSelectionExecutor(EntityPlayerActionPack.ActionType actionType, Text actionName) {
|
||||
return (player, minion) -> {
|
||||
SimpleGui gui = new SimpleGui(ScreenHandlerType.GENERIC_3X3, player, false);
|
||||
gui.setTitle(Text.translatable("minions.command.action.details", actionName));
|
||||
|
||||
gui.setSlot(1, new GuiElementBuilder()
|
||||
.setItem(Items.COMMAND_BLOCK)
|
||||
.setName(Text.translatable("minions.command.action.once", actionName))
|
||||
.setCallback(() -> executeOnce(actionType, player, minion))
|
||||
);
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user