Made staff mode work for the most part

This commit is contained in:
5vl 2022-04-07 12:14:46 +02:00
parent d4332868c4
commit c74afd6316
No known key found for this signature in database
GPG Key ID: DA8938F22548E4D5
5 changed files with 50 additions and 5 deletions

View File

@ -11,9 +11,11 @@ I made this plugin by request of a friend, and because I didn't have anything to
- /staffmode - staff.staffmode
- /freeze - staff.freeze
- /openinv - staff.openinv
- /vanish - /v - staff.vanish
# Staff mode items:
- Disable staffmode - staff.staffmode
- Disable staffmode item - staff.staffmode
- Freeze wand - staff.freeze.wand
- Inventory wand - staff.openinv.wand
- Knockback Stick - staff.kbstick
- Knockback Stick - staff.kbstick
- Vanish item - staff.vanish.item

View File

@ -6,4 +6,10 @@ object Config {
var config: FileConfiguration? = null
val mustBePlayer = config?.getString("must-be-player")
val noPermission = config?.getString("no-permission")
val toggleStaffmode = config?.getString("toggle-staffmode")
val staffmodeHotbar = HashMap<Int, String>().apply {
config?.getConfigurationSection("staffmode-hotbar")?.getKeys(false)?.forEach {
put(it.toInt(), config?.getString("staffmode-hotbar.$it")!!)
}
}
}

View File

@ -1,12 +1,15 @@
package me.fivevl.staff
import me.clip.placeholderapi.PlaceholderAPI
import net.md_5.bungee.api.ChatColor
import org.bukkit.Material
import org.bukkit.entity.Player
import org.bukkit.inventory.ItemStack
import org.bukkit.inventory.PlayerInventory
import java.util.regex.Pattern
object Utils {
private val inStaffmode = HashMap<Player, PlayerInventory>()
@Suppress("deprecation")
fun hex(s: String): String {
var s2 = s
@ -22,4 +25,26 @@ object Utils {
fun getPlaceholders(p: Player?, s: String): String {
return PlaceholderAPI.setPlaceholders(p, s)
}
fun toggleStaffmode(p: Player) {
if (inStaffmode.containsKey(p)) {
p.inventory.clear()
p.inventory.contents = inStaffmode[p]!!.contents
inStaffmode.remove(p)
} else {
inStaffmode[p] = p.inventory
p.inventory.clear()
for (i: Int in Config.staffmodeHotbar.keys) {
var item = ItemStack(Material.AIR)
when (Config.staffmodeHotbar[i]) {
"DISABLE_STAFFMODE" -> item = ItemStack(Material.AIR)
"FREEZE_WAND" -> item = ItemStack(Material.AIR)
"INVENTORY_WAND" -> item = ItemStack(Material.AIR)
"KB_STICK" -> item = ItemStack(Material.AIR)
"VANISH_ITEM" -> item = ItemStack(Material.AIR)
}
p.inventory.setItem(i - 1, item)
}
}
p.sendMessage(hex(getPlaceholders(p, Config.toggleStaffmode!!)))
}
}

View File

@ -18,6 +18,7 @@ class StaffModeCommand : CommandExecutor {
p.sendMessage(Utils.hex(Utils.getPlaceholders(p, Config.noPermission!!)))
return true
}
Utils.toggleStaffmode(p)
return true
}
}

View File

@ -1,2 +1,13 @@
must-be-player: "&cYou must be a player to use this command!"
no-permission: "&cYou don't have permission to use this command!"
must-be-player: "&cYou must be a player to use this command!" # Message shown when a player tries to use a command that requires them to be a player
no-permission: "&cYou don't have permission to use this command!" # Message shown when a player tries to use a command that they don't have permission to use
toggle-staffmode: "&aToggled staffmode!" # Message shown when a player toggles staffmode
staffmode-hotbar: # List of items to give the player when they toggle staffmode, available items: "AIR", "DISABLE_STAFFMODE", "FREEZE_WAND", "INVENTORY_WAND", "KB_STICK", "VANISH_ITEM"
1: "AIR"
2: "AIR"
3: "AIR"
4: "AIR"
5: "AIR"
6: "AIR"
7: "AIR"
8: "AIR"
9: "AIR"