Skip to main content

invite_named_player

Invite a player by name from menu input — action entry.

Entry Information

PropertyValue
Entry IDinvite_named_player
TypeAction
ColorPurple
Iconfa6-solid:user-plus

Description

Action to create a named warp. Prompts the player via chat. / @Entry("create_named_warp", "Create a named warp from menu input", Colors.GREEN, "fa6-solid:map-location-dot") class CreateNamedWarpActionEntry( override val id: String = "create_named_warp", override val name: String = "Create Named Warp", override val criteria: List<Criteria> = emptyList(), override val modifiers: List<Modifier> = emptyList(), override val triggers: List<Ref<TriggerableEntry>> = emptyList() ) : ActionEntry, KoinComponent { private val islandService: IslandService by inject() private val warpService: btc.renaud.btcsky.service.WarpService by inject() override fun ActionTrigger.execute() { player.sendMessage("§eUse §f/island warp create <name> §eto create a warp at your location.") } } /** Action to create a hologram. Prompts the player via chat. / @Entry("create_named_hologram", "Create a hologram from menu input", Colors.GREEN, "fa6-solid:font") class CreateNamedHologramActionEntry( override val id: String = "create_named_hologram", override val name: String = "Create Named Hologram", override val criteria: List<Criteria> = emptyList(), override val modifiers: List<Modifier> = emptyList(), override val triggers: List<Ref<TriggerableEntry>> = emptyList() ) : ActionEntry, KoinComponent { private val hologramService: HologramService by inject() private val islandService: IslandService by inject() override fun ActionTrigger.execute() { val island = islandService.getPlayerIsland(player) ?: return hologramService.createIslandHologram(player, island, listOf("New Hologram"), player.location) player.sendMessage("§aHologram created. Use §f/island holograms edit <id> §ato edit lines.") } } /** Action to edit a hologram's first line. Prompts via chat. / @Entry("edit_named_hologram", "Edit a hologram from menu input", Colors.CYAN, "fa6-solid:pen-to-square") class EditNamedHologramActionEntry( override val id: String = "edit_named_hologram", override val name: String = "Edit Named Hologram", override val criteria: List<Criteria> = emptyList(), override val modifiers: List<Modifier> = emptyList(), override val triggers: List<Ref<TriggerableEntry>> = emptyList() ) : ActionEntry, KoinComponent { private val hologramService: HologramService by inject() private val islandService: IslandService by inject() override fun ActionTrigger.execute() { val session = MenuSessionService.getSession(player) ?: return val menuId = session.definition.id val prefix = "btcsky:hologram_edit_" val hologramId = when { menuId.startsWith(prefix) -> menuId.removePrefix(prefix) menuId.startsWith("island holograms_edit_") -> menuId.removePrefix("island holograms_edit_") else -> null } if (hologramId == null) { player.sendMessage("§cNo hologram selected for editing.") return } val island = islandService.getPlayerIsland(player) ?: return val holoIdUUID = try { java.util.UUID.fromString(hologramId) } catch (e: Exception) { return } val holo = island.holograms.find { it.id == holoIdUUID } ?: return player.sendMessage("§eEditing hologram: §f${holo.displayName ?: "Hologram"}") player.sendMessage("§eCurrent lines: ${holo.lines.joinToString(" | ")}") player.sendMessage("§eUse §f/island holograms edit ${holo.id} §eto open the line editor.") } } /** Action to delete a hologram selected in the GUI menu. / @Entry("delete_named_hologram", "Delete a hologram from menu", Colors.RED, "fa6-solid:trash-can") class DeleteNamedHologramActionEntry( override val id: String = "delete_named_hologram", override val name: String = "Delete Named Hologram", override val criteria: List<Criteria> = emptyList(), override val modifiers: List<Modifier> = emptyList(), override val triggers: List<Ref<TriggerableEntry>> = emptyList() ) : ActionEntry, KoinComponent { private val hologramService: HologramService by inject() private val islandService: IslandService by inject() override fun ActionTrigger.execute() { val session = MenuSessionService.getSession(player) ?: return val menuId = session.definition.id val prefix = "btcsky:hologram_edit_" val hologramId = when { menuId.startsWith(prefix) -> menuId.removePrefix(prefix) menuId.startsWith("island holograms_edit_") -> menuId.removePrefix("island holograms_edit_") else -> null } if (hologramId == null) { player.sendMessage("§cNo hologram selected for deletion.") return } val island = islandService.getPlayerIsland(player) ?: return val holoIdUUID = try { java.util.UUID.fromString(hologramId) } catch (e: Exception) { return } hologramService.deleteIslandHologram(player, island, holoIdUUID) } } /** Action to invite a player by name. Prompts via chat.