mirror of
https://github.com/5vl/Staff.git
synced 2025-05-24 06:16:56 +00:00
late night coding ftw
This commit is contained in:
parent
5a2c10d7fd
commit
487b84418d
@ -4,18 +4,18 @@ I made this plugin by request of a friend, and because I didn't have anything to
|
|||||||
- PlaceholderAPI support
|
- PlaceholderAPI support
|
||||||
- Staffmode
|
- Staffmode
|
||||||
- Freezing (through command or freeze wand in staffmode)
|
- Freezing (through command or freeze wand in staffmode)
|
||||||
- Open inventory (through command or inventory wand in staffmode)
|
- Open inventory (through command or inventory wand in staffmode) - To move items in someone elses inventory, you need the permission "staff.invsee.move"
|
||||||
- Knockback Stick (in staffmode)
|
- Knockback Stick (in staffmode)
|
||||||
|
|
||||||
# Commands and permissions:
|
# Commands and permissions:
|
||||||
- /staffmode - staff.staffmode
|
- /staffmode - staff.staffmode
|
||||||
- /freeze - staff.freeze
|
- /freeze - staff.freeze
|
||||||
- /openinv - staff.openinv
|
- /invsee - staff.invsee
|
||||||
- /vanish - /v - staff.vanish
|
- /vanish - /v - staff.vanish
|
||||||
|
|
||||||
# Staff mode items:
|
# Staff mode items:
|
||||||
- Disable staffmode item - staff.staffmode
|
- Disable staffmode item - staff.staffmode
|
||||||
- Freeze wand - staff.freeze.wand
|
- Freeze wand - staff.freeze.wand
|
||||||
- Inventory wand - staff.openinv.wand
|
- Inventory wand - staff.invsee.wand
|
||||||
- Knockback Stick - staff.kbstick
|
- Knockback Stick - staff.kbstick
|
||||||
- Vanish item - staff.vanish.item
|
- Vanish item - staff.vanish.item
|
@ -3,10 +3,14 @@ package me.fivevl.staff
|
|||||||
object Config {
|
object Config {
|
||||||
val mustBePlayer = Utils.instance!!.config.getString("must-be-player")!!
|
val mustBePlayer = Utils.instance!!.config.getString("must-be-player")!!
|
||||||
val noPermission = Utils.instance!!.config.getString("no-permission")!!
|
val noPermission = Utils.instance!!.config.getString("no-permission")!!
|
||||||
|
val playerNotFound = Utils.instance!!.config.getString("player-not-found")!!
|
||||||
val toggleStaffmodeOn = Utils.instance!!.config.getString("toggle-staffmode-on")!!
|
val toggleStaffmodeOn = Utils.instance!!.config.getString("toggle-staffmode-on")!!
|
||||||
val toggleStaffmodeOff = Utils.instance!!.config.getString("toggle-staffmode-off")!!
|
val toggleStaffmodeOff = Utils.instance!!.config.getString("toggle-staffmode-off")!!
|
||||||
val toggleVanishOn = Utils.instance!!.config.getString("toggle-vanish-on")!!
|
val toggleVanishOn = Utils.instance!!.config.getString("toggle-vanish-on")!!
|
||||||
val toggleVanishOff = Utils.instance!!.config.getString("toggle-vanish-off")!!
|
val toggleVanishOff = Utils.instance!!.config.getString("toggle-vanish-off")!!
|
||||||
|
val toggleFreezeOn = Utils.instance!!.config.getString("toggle-freeze-on")!!
|
||||||
|
val toggleFreezeOff = Utils.instance!!.config.getString("toggle-freeze-off")!!
|
||||||
|
val currentlyFrozen = Utils.instance!!.config.getString("currently-frozen")!!
|
||||||
val staffmodeHotbar = HashMap<Int, String>().apply {
|
val staffmodeHotbar = HashMap<Int, String>().apply {
|
||||||
Utils.instance!!.config.getConfigurationSection("staffmode-hotbar")?.getKeys(false)?.forEach {
|
Utils.instance!!.config.getConfigurationSection("staffmode-hotbar")?.getKeys(false)?.forEach {
|
||||||
put(it.toInt(), Utils.instance!!.config.getString("staffmode-hotbar.$it")!!)
|
put(it.toInt(), Utils.instance!!.config.getString("staffmode-hotbar.$it")!!)
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package me.fivevl.staff
|
package me.fivevl.staff
|
||||||
|
|
||||||
import me.fivevl.staff.commands.InvseeCommand
|
import me.fivevl.staff.commands.InvseeCommand
|
||||||
import me.fivevl.staff.commands.StaffModeCommand
|
import me.fivevl.staff.commands.StaffmodeCommand
|
||||||
import me.fivevl.staff.commands.VanishCommand
|
import me.fivevl.staff.commands.VanishCommand
|
||||||
import me.fivevl.staff.listeners.JoinListener
|
import me.fivevl.staff.listeners.JoinListener
|
||||||
|
import me.fivevl.staff.listeners.StaffmodeListener
|
||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
import org.bukkit.plugin.java.JavaPlugin
|
import org.bukkit.plugin.java.JavaPlugin
|
||||||
|
|
||||||
@ -13,29 +14,16 @@ class Main : JavaPlugin() {
|
|||||||
|
|
||||||
saveDefaultConfig()
|
saveDefaultConfig()
|
||||||
|
|
||||||
getCommand("staffmode")!!.setExecutor(StaffModeCommand())
|
getCommand("staffmode")!!.setExecutor(StaffmodeCommand())
|
||||||
getCommand("vanish")!!.setExecutor(VanishCommand())
|
getCommand("vanish")!!.setExecutor(VanishCommand())
|
||||||
getCommand("invsee")!!.setExecutor(InvseeCommand())
|
getCommand("invsee")!!.setExecutor(InvseeCommand())
|
||||||
|
|
||||||
Bukkit.getPluginManager().registerEvents(JoinListener(), this)
|
Bukkit.getPluginManager().registerEvents(JoinListener(), this)
|
||||||
|
Bukkit.getPluginManager().registerEvents(StaffmodeListener(), this)
|
||||||
logger.info("Staff plugin enabled.")
|
logger.info("Staff plugin enabled.")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDisable() {
|
override fun onDisable() {
|
||||||
logger.info("Staff plugin disabled.")
|
logger.info("Staff plugin disabled.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
FEATURES:
|
|
||||||
DONE:
|
|
||||||
- PlaceholderAPI support
|
|
||||||
- Config
|
|
||||||
- Vanish command
|
|
||||||
NOT DONE:
|
|
||||||
- Staff mode (Invisibility/vanish, fly, items)
|
|
||||||
- Freeze (Command and freeze wand in staff mode)
|
|
||||||
- Open inventory (Command and wand in staff mode) with permission for being able to edit it
|
|
||||||
- Knockback Stick (Extra, useful to check if the player has no kb)
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,8 @@ object Utils {
|
|||||||
var instance: Main? = null
|
var instance: Main? = null
|
||||||
val inStaffmode = HashMap<Player, Inventory>()
|
val inStaffmode = HashMap<Player, Inventory>()
|
||||||
val inVanish = ArrayList<Player>()
|
val inVanish = ArrayList<Player>()
|
||||||
|
val inOtherInv = ArrayList<Player>()
|
||||||
|
val frozen = ArrayList<Player>()
|
||||||
@Suppress("deprecation")
|
@Suppress("deprecation")
|
||||||
fun mm(s: String): Component {
|
fun mm(s: String): Component {
|
||||||
return MiniMessage.miniMessage().deserialize(s)
|
return MiniMessage.miniMessage().deserialize(s)
|
||||||
@ -36,11 +38,11 @@ object Utils {
|
|||||||
for (i: Int in Config.staffmodeHotbar.keys) {
|
for (i: Int in Config.staffmodeHotbar.keys) {
|
||||||
var item = ItemStack(Material.AIR)
|
var item = ItemStack(Material.AIR)
|
||||||
when (Config.staffmodeHotbar[i]) {
|
when (Config.staffmodeHotbar[i]) {
|
||||||
"DISABLE_STAFFMODE" -> item = Items.DISABLE_STAFFMODE.item
|
"DISABLE_STAFFMODE" -> if (p.hasPermission("staff.staffmode")) item = Items.DISABLE_STAFFMODE.item
|
||||||
"FREEZE_WAND" -> item = Items.FREEZE_WAND.item
|
"FREEZE_WAND" -> if (p.hasPermission("staff.freeze.wand")) item = Items.FREEZE_WAND.item
|
||||||
"INVENTORY_WAND" -> item = Items.INVENTORY_WAND.item
|
"INVENTORY_WAND" -> if (p.hasPermission("staff.invsee.wand")) item = Items.INVENTORY_WAND.item
|
||||||
"KB_STICK" -> item = Items.KB_STICK.item
|
"KB_STICK" -> if (p.hasPermission("staff.kbstick")) item = Items.KB_STICK.item
|
||||||
"VANISH_ITEM" -> item = Items.VANISH_ITEM.item
|
"VANISH_ITEM" -> if (p.hasPermission("staff.vanish.item")) item = Items.VANISH_ITEM.item
|
||||||
}
|
}
|
||||||
p.inventory.setItem(i - 1, item)
|
p.inventory.setItem(i - 1, item)
|
||||||
}
|
}
|
||||||
@ -62,4 +64,13 @@ object Utils {
|
|||||||
p.sendMessage(mm(getPlaceholders(p, Config.toggleVanishOn)))
|
p.sendMessage(mm(getPlaceholders(p, Config.toggleVanishOn)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fun toggleFreeze(p: Player) {
|
||||||
|
if (frozen.contains(p)) {
|
||||||
|
p.sendMessage(mm(getPlaceholders(p, Config.toggleFreezeOff)))
|
||||||
|
frozen.remove(p)
|
||||||
|
} else {
|
||||||
|
p.sendMessage(mm(getPlaceholders(p, Config.toggleFreezeOn)))
|
||||||
|
frozen.add(p)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -2,6 +2,7 @@ package me.fivevl.staff.commands
|
|||||||
|
|
||||||
import me.fivevl.staff.Config
|
import me.fivevl.staff.Config
|
||||||
import me.fivevl.staff.Utils
|
import me.fivevl.staff.Utils
|
||||||
|
import org.bukkit.Bukkit
|
||||||
import org.bukkit.command.Command
|
import org.bukkit.command.Command
|
||||||
import org.bukkit.command.CommandExecutor
|
import org.bukkit.command.CommandExecutor
|
||||||
import org.bukkit.command.CommandSender
|
import org.bukkit.command.CommandSender
|
||||||
@ -22,6 +23,13 @@ class InvseeCommand : CommandExecutor {
|
|||||||
p.sendMessage(Utils.mm("<red><hover:show_text:Click me to insert command!><click:suggest_command:/invsee >Usage: /invsee <player></click></hover></red>"))
|
p.sendMessage(Utils.mm("<red><hover:show_text:Click me to insert command!><click:suggest_command:/invsee >Usage: /invsee <player></click></hover></red>"))
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
val target = Bukkit.getPlayer(args[0])
|
||||||
|
if (target == null) {
|
||||||
|
p.sendMessage(Utils.mm(Utils.getPlaceholders(p, Config.playerNotFound)))
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
p.openInventory(target.inventory)
|
||||||
|
Utils.inOtherInv.add(p)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ import org.bukkit.command.CommandExecutor
|
|||||||
import org.bukkit.command.CommandSender
|
import org.bukkit.command.CommandSender
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
|
|
||||||
class StaffModeCommand : CommandExecutor {
|
class StaffmodeCommand : CommandExecutor {
|
||||||
override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
|
override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
|
||||||
if (sender !is Player) {
|
if (sender !is Player) {
|
||||||
sender.sendMessage(Utils.mm(Utils.getPlaceholders(null, Config.mustBePlayer)))
|
sender.sendMessage(Utils.mm(Utils.getPlaceholders(null, Config.mustBePlayer)))
|
74
src/main/java/me/fivevl/staff/listeners/StaffmodeListener.kt
Normal file
74
src/main/java/me/fivevl/staff/listeners/StaffmodeListener.kt
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
package me.fivevl.staff.listeners
|
||||||
|
|
||||||
|
import me.fivevl.staff.Config
|
||||||
|
import me.fivevl.staff.Items
|
||||||
|
import me.fivevl.staff.Utils
|
||||||
|
import org.bukkit.entity.Player
|
||||||
|
import org.bukkit.event.EventHandler
|
||||||
|
import org.bukkit.event.Listener
|
||||||
|
import org.bukkit.event.inventory.InventoryClickEvent
|
||||||
|
import org.bukkit.event.inventory.InventoryCloseEvent
|
||||||
|
import org.bukkit.event.player.PlayerDropItemEvent
|
||||||
|
import org.bukkit.event.player.PlayerInteractAtEntityEvent
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent
|
||||||
|
import org.bukkit.event.player.PlayerMoveEvent
|
||||||
|
|
||||||
|
|
||||||
|
class StaffmodeListener : Listener {
|
||||||
|
@EventHandler
|
||||||
|
fun onDrop(e: PlayerDropItemEvent) {
|
||||||
|
if (Utils.inStaffmode.containsKey(e.player)) {
|
||||||
|
e.isCancelled = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@EventHandler
|
||||||
|
fun onInvClick(e: InventoryClickEvent) {
|
||||||
|
if (Utils.inOtherInv.contains(e.whoClicked) && !e.whoClicked.hasPermission("staff.invsee.move")) {
|
||||||
|
e.isCancelled = true
|
||||||
|
}
|
||||||
|
if (!Utils.inStaffmode.containsKey(e.whoClicked)) {return}
|
||||||
|
if (!e.whoClicked.hasPermission("staff.inventory")) {
|
||||||
|
e.isCancelled = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@EventHandler
|
||||||
|
fun onInvClose(e: InventoryCloseEvent) {
|
||||||
|
Utils.inOtherInv.remove(e.player)
|
||||||
|
}
|
||||||
|
@EventHandler
|
||||||
|
fun onInteract(e: PlayerInteractEvent) {
|
||||||
|
if (!Utils.inStaffmode.containsKey(e.player)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
val p = e.player
|
||||||
|
if (p.inventory.itemInMainHand.equals(Items.DISABLE_STAFFMODE)) {
|
||||||
|
Utils.toggleStaffmode(p)
|
||||||
|
}
|
||||||
|
if (p.inventory.itemInMainHand.equals(Items.VANISH_ITEM)) {
|
||||||
|
Utils.toggleVanish(p)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@EventHandler
|
||||||
|
fun onEntityInteract(e: PlayerInteractAtEntityEvent) {
|
||||||
|
if (!Utils.inStaffmode.containsKey(e.player)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (e.rightClicked !is Player) return
|
||||||
|
val p = e.player
|
||||||
|
val target = e.rightClicked as Player
|
||||||
|
if (p.inventory.itemInMainHand.equals(Items.INVENTORY_WAND)) {
|
||||||
|
p.openInventory(target.inventory)
|
||||||
|
Utils.inOtherInv.add(p)
|
||||||
|
}
|
||||||
|
if (p.inventory.itemInMainHand.equals(Items.FREEZE_WAND)) {
|
||||||
|
Utils.toggleFreeze(target)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@EventHandler
|
||||||
|
fun onMove(e: PlayerMoveEvent) {
|
||||||
|
if (Utils.frozen.contains(e.player)) {
|
||||||
|
e.isCancelled = true
|
||||||
|
e.player.sendMessage(Utils.mm(Utils.getPlaceholders(e.player, Config.currentlyFrozen)))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -2,12 +2,14 @@
|
|||||||
# For messages please use the minimessage formatting, see https://docs.adventure.kyori.net/minimessage/format.html#minimessage-format
|
# For messages please use the minimessage formatting, see https://docs.adventure.kyori.net/minimessage/format.html#minimessage-format
|
||||||
must-be-player: "<red>You must be a player to use this command!</red>" # Message shown when a player tries to use a command that requires them to be a player
|
must-be-player: "<red>You must be a player to use this command!</red>" # Message shown when a player tries to use a command that requires them to be a player
|
||||||
no-permission: "<red>You do not have permission to use this command!</red>" # Message shown when a player tries to use a command that they don't have permission to use
|
no-permission: "<red>You do not have permission to use this command!</red>" # Message shown when a player tries to use a command that they don't have permission to use
|
||||||
|
player-not-found: "<red>Player not found!</red>" # Message shown when a player does not exist
|
||||||
toggle-staffmode-on: "<green>Toggled staffmode on!</green>" # Message shown when a player toggles staffmode on
|
toggle-staffmode-on: "<green>Toggled staffmode on!</green>" # Message shown when a player toggles staffmode on
|
||||||
toggle-staffmode-off: "<red>Toggled staffmode off!</red>" # Message shown when a player toggles staffmode off
|
toggle-staffmode-off: "<red>Toggled staffmode off!</red>" # Message shown when a player toggles staffmode off
|
||||||
toggle-vanish-on: "<green>Toggled vanish on!</green>" # Message shown when a player toggles vanish on
|
toggle-vanish-on: "<green>Toggled vanish on!</green>" # Message shown when a player toggles vanish on
|
||||||
toggle-vanish-off: "<red>Toggled vanish off!</red>" # Message shown when a player toggles vanish off
|
toggle-vanish-off: "<red>Toggled vanish off!</red>" # Message shown when a player toggles vanish off
|
||||||
toggle-fly-on: "<green>Toggled fly on!</green>" # Message shown when a player toggles fly on
|
toggle-freeze-on: "<red>You have been frozen! Do not log out.</red>" # Message shown when a player gets frozen.
|
||||||
toggle-fly-off: "<red>Toggled fly off!</red>" # Message shown when a player toggles fly off
|
toggle-freeze-off: "<green>You have been unfrozen!</green>" # Message shown when a player gets unfrozen.
|
||||||
|
currently-frozen: "<red>You are currently frozen! Do not log out.</red>" # Message shown when a player tries to use a move while they are frozen.
|
||||||
|
|
||||||
# In this section of the config you can change the items given to you in staffmode. Please do not use colors here.
|
# In this section of the config you can change the items given to you in staffmode. Please do not use colors here.
|
||||||
staffmode-hotbar: # List of items to give the player when they toggle staffmode, available items: "DISABLE_STAFFMODE", "FREEZE_WAND", "INVENTORY_WAND", "KB_STICK", "VANISH_ITEM"
|
staffmode-hotbar: # List of items to give the player when they toggle staffmode, available items: "DISABLE_STAFFMODE", "FREEZE_WAND", "INVENTORY_WAND", "KB_STICK", "VANISH_ITEM"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user