public CommandResult execute(CommandSource src, CommandContext ctx) throws CommandException { EntityType entityType = ctx.<EntityType>getOne("mob").get(); if (src instanceof Player) { Player player = (Player) src; ItemStack mobSpawnerStack = ItemStack.builder().itemType(ItemTypes.MOB_SPAWNER).quantity(1).build(); Optional<MobSpawnerData> mobSpawnerData = mobSpawnerStack.getOrCreate(MobSpawnerData.class); if (mobSpawnerData.isPresent()) { MobSpawnerData data = mobSpawnerData.get(); data.nextEntityToSpawn().set(entityType, null); if (mobSpawnerStack.offer(data).isSuccessful()) { player.setItemInHand(mobSpawnerStack); player.sendMessage( Text.of(TextColors.GREEN, "Success! ", TextColors.YELLOW, "Created mob spawner.")); } else { player.sendMessage( Text.of( TextColors.DARK_RED, "Error! ", TextColors.RED, "Failed to set mob spawner entity.")); } } else { player.sendMessage( Text.of( TextColors.DARK_RED, "Error! ", TextColors.RED, "Failed to create mob spawner.")); } } else { src.sendMessage( Text.of( TextColors.DARK_RED, "Error! ", TextColors.RED, "Must be an in-game player to use /mobspawner!")); } return CommandResult.success(); }