Resource icon

Addon Skerm (Simple Permission Addon) 1.3

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

gherm

New Member
Jan 31, 2025
7
2
3
24
gherm submitted a new resource:

Skerm (Simple Permission Addon) - Vanilla Permission Addon (No Required Permission Plugins)

Features:
- Lets you add/remove permissions to/from a player in Skript
- Doesn't require LuckPerms or any other permission plugin dependency
It also does not remove LuckPerms/plugin added permissions!!!
- Works with Skript's default player has permission condition
- Saves data in binary file

I do not plan on adding LuckPerms permission support in the...

Read more about this resource...
 
Thanks for this addon but the delete player permissions of player or reset player permissions of player doesn't work, the permissions is not removed.

Edit:
To reset the permissions granted to the player, remove the permissions one by one. Example (with spaces to simplify reading):

Code:
on join:

    remove "permission.permission1" from player permissions of player
    remove "permission.permission2" from player permissions of player
    remove "permission.permission3" from player permissions of player

    if {rank::%player%} is "op":

        add "permission.permission1" to player permissions of player
        add "permission.permission2" to player permissions of player
        add "permission.permission3" to player permissions of player

    if {rank::%player%} is "player":
    
        add "permission.permission1" to player permissions of player
 
Last edited:
Thanks for this addon but the delete player permissions of player or reset player permissions of player doesn't work, the permissions is not removed.

Edit:
To reset the permissions granted to the player, remove the permissions one by one. Example (with spaces to simplify reading):

Code:
on join:

    remove "permission.permission1" from player permissions of player
    remove "permission.permission2" from player permissions of player
    remove "permission.permission3" from player permissions of player

    if {rank::%player%} is "op":

        add "permission.permission1" to player permissions of player
        add "permission.permission2" to player permissions of player
        add "permission.permission3" to player permissions of player

    if {rank::%player%} is "player":
   
        add "permission.permission1" to player permissions of player
Hey thanks for the catch! Looks like I forgot to update the clear permission method... oopsie. I'll be posting an update in a few minutes. Thanks again!
 
  • Like
Reactions: JaynitXI
Code:
[07:37:33 ERROR]: Could not pass event PlayerQuitEvent to Skerm v1.2
java.lang.NullPointerException: Cannot invoke "java.util.Map.keySet()" because the return value of "java.util.Map.get(Object)" is null
at Skerm-1.2.jar/me.gherm.skerm.data.DataManager.writeData(DataManager.java:99) ~[Skerm-1.2.jar:?]
at Skerm-1.2.jar/me.gherm.skerm.listeners.JoinLeaveListener.onPlayerLeaveEvent(JoinLeaveListener.java:24) ~[Skerm-1.2.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
at net.minecraft.server.players.PlayerList.remove(PlayerList.java:513) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.server.players.PlayerList.remove(PlayerList.java:500) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.server.network.ServerGamePacketListenerImpl.removePlayerFromWorld(ServerGamePacketListenerImpl.java:2088) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.server.network.ServerGamePacketListenerImpl.onDisconnect(ServerGamePacketListenerImpl.java:2067) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.server.network.ServerGamePacketListenerImpl.onDisconnect(ServerGamePacketListenerImpl.java:2053) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.network.Connection.handleDisconnection(Connection.java:866) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.server.network.ServerConnectionListener.tick(ServerConnectionListener.java:270) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.server.MinecraftServer.tickConnection(MinecraftServer.java:1762) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.server.dedicated.DedicatedServer.tickConnection(DedicatedServer.java:427) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1738) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1529) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1251) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:310) ~[paper-1.21.4.jar:1.21.4-118-73f7736]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
[07:37:33 ERROR]: #!#!
[07:37:33 ERROR]: #!#! [Skript] Severe Error:
[07:37:33 ERROR]: #!#!
[07:37:33 ERROR]: #!#! You're running an outdated version of Skript! Update to the latest version here: https://github.com/SkriptLang/Skript/releases/latest
[07:37:33 ERROR]: #!#!
[07:37:33 ERROR]: #!#! Stack trace:
[07:37:33 ERROR]: #!#! Caused by: java.lang.NullPointerException: Cannot invoke "java.util.Map.keySet()" because "permissions" is null
[07:37:33 ERROR]: #!#!     at Skerm-1.2.jar//me.gherm.skerm.utilities.PermissionUtils.clearPermissions(PermissionUtils.java:36)
[07:37:33 ERROR]: #!#!     at Skerm-1.2.jar//me.gherm.skerm.elements.expressions.PlayerPermissions.change(PlayerPermissions.java:76)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.effects.EffChange.execute(EffChange.java:276)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.lang.Effect.run(Effect.java:32)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:40)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:67)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.lang.Trigger.execute(Trigger.java:33)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.SkriptEventHandler.lambda$execute$2(SkriptEventHandler.java:165)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.SkriptEventHandler.lambda$execute$3(SkriptEventHandler.java:176)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.util.Task.callSync(Task.java:147)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.util.Task.callSync(Task.java:131)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.SkriptEventHandler.execute(SkriptEventHandler.java:174)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.SkriptEventHandler.check(SkriptEventHandler.java:120)
[07:37:33 ERROR]: #!#!     at Skript-2.10.0.jar//ch.njol.skript.SkriptEventHandler$PriorityListener.lambda$new$0(SkriptEventHandler.java:46)
[07:37:33 ERROR]: #!#!     at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80)
[07:37:33 ERROR]: #!#!     at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[07:37:33 ERROR]: #!#!     at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54)
[07:37:33 ERROR]: #!#!     at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131)
[07:37:33 ERROR]: #!#!     at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.players.PlayerList.remove(PlayerList.java:513)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.players.PlayerList.remove(PlayerList.java:500)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.network.ServerGamePacketListenerImpl.removePlayerFromWorld(ServerGamePacketListenerImpl.java:2088)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.network.ServerGamePacketListenerImpl.onDisconnect(ServerGamePacketListenerImpl.java:2067)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.network.ServerGamePacketListenerImpl.onDisconnect(ServerGamePacketListenerImpl.java:2053)
[07:37:33 ERROR]: #!#!     at net.minecraft.network.Connection.handleDisconnection(Connection.java:866)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.network.ServerConnectionListener.tick(ServerConnectionListener.java:270)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.MinecraftServer.tickConnection(MinecraftServer.java:1762)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.dedicated.DedicatedServer.tickConnection(DedicatedServer.java:427)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1738)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1529)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1251)
[07:37:33 ERROR]: #!#!     at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:310)
[07:37:33 ERROR]: #!#!     at java.base/java.lang.Thread.run(Thread.java:1583)
[07:37:33 ERROR]: #!#!
[07:37:33 ERROR]: #!#! Skript: 2.10.0 (outdated)
[07:37:33 ERROR]: #!#!     Flavor: skriptlang-github
[07:37:33 ERROR]: #!#!     Date: 17:18:40.825111800
[07:37:33 ERROR]: #!#! Bukkit: 1.21.4-R0.1-SNAPSHOT
[07:37:33 ERROR]: #!#! Minecraft: 1.21.4
[07:37:33 ERROR]: #!#! Java: 21.0.3 (OpenJDK 64-Bit Server VM 21.0.3+9-Ubuntu-1ubuntu120.04.1)
[07:37:33 ERROR]: #!#! OS: Linux amd64 6.1.0-31-cloud-amd64
[07:37:33 ERROR]: #!#!
[07:37:33 ERROR]: #!#! Server platform: Paper
[07:37:33 ERROR]: #!#!
[07:37:33 ERROR]: #!#! Current node: null
[07:37:33 ERROR]: #!#! Current item: delete/clear player permissions of the player
[07:37:33 ERROR]: #!#! Current trigger: quit (simple event) (Entity.sk, line 558)
[07:37:33 ERROR]: #!#! Thread: Server thread
[07:37:33 ERROR]: #!#! Language: english
[07:37:33 ERROR]: #!#! Link parse mode: DISABLED
[07:37:33 ERROR]: #!#! End of Error.
[07:37:33 ERROR]: #!#!
 
Hi! I've just noticed that despite the fact that the permission has been added, when I start typing the command, it doesn't appear in the tab-complete. It's a small detail but it can be annoying.

Edit: If I reload all Skript scripts, the commands appear in tab-complete.