Code Patterns
Copy-paste examples for common plugin tasks. Commands, events, ECS, GUI, and more.
All
225
Command
60
Damage
2
Ecs
27
Entity
5
Gui
75
Interaction
2
Inventory
4
Moderation
3
Permission
2
Player
9
Plugin
4
Storage
2
Teleport
3
Ui
22
Util
5
← Back to Patterns
java
command
Command
/admin command using AbstractAsyncCommand
Example Code
package dev.myplugin.example;
// import dev.myplugin.example.AdminIndexGui; // Anonymized
// import dev.myplugin.example.PermissionList; // Anonymized
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.protocol.GameMode;
import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime;
import com.hypixel.hytale.server.core.command.system.CommandContext;
import com.hypixel.hytale.server.core.command.system.CommandSender;
import com.hypixel.hytale.server.core.command.system.basecommands.AbstractAsyncCommand;
import com.hypixel.hytale.server.core.entity.entities.Player;
import com.hypixel.hytale.server.core.universe.PlayerRef;
import com.hypixel.hytale.server.core.universe.world.World;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import org.checkerframework.checker.nullness.compatqual.NonNullDecl;
import java.util.concurrent.CompletableFuture;
import static com.hypixel.hytale.server.core.command.commands.player.inventory.InventorySeeCommand.MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD;
public class ExampleCommand extends AbstractAsyncCommand {
public ExampleCommand() {
super("admin", "Shows all the admin GUIs" );
this.requirePermission(PermissionList.OPEN_UI.getPermission());
}
@NonNullDecl
@Override
protected CompletableFuture<Void> executeAsync(CommandContext commandContext) {
CommandSender sender = commandContext.sender();
if (sender instanceof Player player) {
player.getWorldMapTracker().tick(0);
Ref<EntityStore> ref = player.getReference();
if (ref != null && ref.isValid()) {
Store<EntityStore> store = ref.getStore();
World world = store.getExternalData().getWorld();
return CompletableFuture.runAsync(() -> {
PlayerRef playerRefComponent = store.getComponent(ref, PlayerRef.getComponentType());
if (playerRefComponent != null) {
player.getPageManager().openCustomPage(ref, store, new AdminIndexGui(playerRefComponent, CustomPageLifetime.CanDismiss));
}
}, world);
} else {
commandContext.sendMessage(MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD);
return CompletableFuture.completedFuture(null);
}
} else {
return CompletableFuture.completedFuture(null);
}
}
}