CreativeItemControl (with Saved ToolBar support for 1.12 and above) 3.10.3

Control what items are available in creative mode [1.7.10 - 1.18.x]

  1. vk2gpz
    Tested Minecraft Versions:
    • 1.7
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    • 1.17
    • 1.18
    Contributors:
    vk2gpz, CyberTiger (original CreativeItemControl author)
    This is the updated version re-implementation of CreativeItemControl, which will work with 1.7.10 - 1.18.x (for 1.16 and above support, please contact vk2gpz).

    for 1.16.x and/or above servers, you need to get v4. (The current version os v4.2.0)

    I will leave it here until the original CreativeItemControl is updated.

    New Permissions:
    • creativeitemcontrol.menu.saved : a player with this permission node is allowed to restore items from their "Saved ToolBar" even if the items are not available in the creative inventory. Even if the player does not have this permission node, if s/he has a permission for other menu, from which the saved item came, s/he can restore the item.

    from original CreativeControl:

    CreativeItemControl

    An anticheat plugin to both prevent players from spawning in custom items via hacked clients, and allow restriction of what items can be used from creative menus.

    • Blocks access to items not in creative menus.
    • Selectively block access to specific creative menus.
    • Blocks hacked clients from spawning op me books.
    • Blocks hacked clients from spawning command blocks.
    • Blocks hacked clients from spawning items with custom NBT.
    • Does not block crafted or enchanted items not available in menus unless explicitly blacklisted.
    • Selectively block access to specific items.
    • Custom permission messages.
    • Custom broadcast messages and targets.
    • Custom commands on violations, automatically kick or ban.
    • Ability to broadcast full item NBT so you can see exactly what was blocked.
    • Whitelist to allow custom NBT on some items.

    Commands

    command: /cicreload
    permission: creativeitemcontrol.reload

    Reload the configuration file.

    Permissions

    Permission: creativeitemcontrol.*
    Default: op
    Grants access to all creativeitemcontrol permissions.

    Permission: creativeitemcontrol.reload
    Default: op
    Allows use of the /cicreload command.

    Permission: creativeitemcontrol.bypass
    Default: op
    Bypasses all CreativeItemControl checks.

    Permission: creativeitemcontrol.menu.*
    Default: op
    Grants access to items from all creative menu tabs.

    Permission: creativeitemcontrol.menu.building
    Default: true
    Grants access to items from the building tab in the creative menu.

    Permission: creativeitemcontrol.menu.decoration
    Default: true
    Grants access to items from the decoration tab in the creative menu.

    Permission: creativeitemcontrol.menu.redstone
    Default: true
    Grants access to items from the redstone tab in the creative menu.

    Permission: creativeitemcontrol.menu.transportation
    Default: true
    Grants access to items from the transportation tab in the creative menu.

    Permission: creativeitemcontrol.menu.miscellaneous
    Default: true
    Grants access to items from the miscellanious tab in the creative menu.

    Permission: creativeitemcontrol.menu.foodstuffs
    Default: true
    Grants access to items from the foodstuffs tab in the creative menu.

    Permission: creativeitemcontrol.menu.tools
    Default: true
    Grants access to items from the tools tab in the creative menu.

    Permission: creativeitemcontrol.menu.combat
    Default: true
    Grants access to items from the combat tab in the creative menu.

    Permission: creativeitemcontrol.menu.brewing
    Default: true
    Grants access to items from the brewing tab in the creative menu.

    Permission: creativeitemcontrol.menu.materials
    Default: true
    Grants access to items from the materials tab in the creative menu.

    Permission: creativeitemcontrol.blacklist.*
    Default: op
    Grant access to items listed in all blacklists.

    Permission: creativeitemcontrol.blacklist.<name>
    Default: op
    Grant access to items in the named blacklist (see the configuration section).

    Configuration

    Sample configuration:
    Code (Text):

    # Rate limiting (defaults to disabled)
    # Limits item clicks to rateLimit per rateLimitTime.
    # Example below for limiting to 100 item clicks or drops per 60 seconds.
    #
    # rateLimit: 100
    # rateLimitTime: 60

    # Custom blacklists
    #
    # You can name these whatever you want, a permission with the appropriate name
    # will be created automatically.
    #
    # The lists below serve only as an example, feel free to rename, remove or
    # add lists according to your server's needs.

    blacklist:
      basic:
        items:
        - 'minecraft:barrier'
        - 'minecraft:water_bucket'
        - 'minecraft:flint_and_steel'
        - 'minecraft:monster_egg'
      spawner:
        items:
        - 'minecraft:mob_spawner'
      #     - 'minecraft:spawn_egg'
      limited:
        items:
        - 'minecraft:lava_bucket'
        - 'minecraft:tnt'
        - 'minecraft:tnt_minecart'

    # Whitelist - items to allow arbitrary nbt on.
    # Enchanted items may not be safe e.g. looting 32000.
    whitelist:
    - 'minecraft:skull'
    - 'minecraft:banner'
    - 'minecraft:bow'
    - 'minecraft:iron_sword'
    - 'minecraft:wooden_sword'
    - 'minecraft:stone_sword'
    - 'minecraft:diamond_sword'
    - 'minecraft:golden_sword'
    - 'minecraft:leather_helmet'
    - 'minecraft:leather_chestplate'
    - 'minecraft:leather_leggings'
    - 'minecraft:leather_boots'
    - 'minecraft:chainmail_helmet'
    - 'minecraft:chainmail_chestplate'
    - 'minecraft:chainmail_leggings'
    - 'minecraft:chainmail_boots'
    - 'minecraft:iron_helmet'
    - 'minecraft:iron_chestplate'
    - 'minecraft:iron_leggings'
    - 'minecraft:iron_boots'
    - 'minecraft:diamond_helmet'
    - 'minecraft:diamond_chestplate'
    - 'minecraft:diamond_leggings'
    - 'minecraft:diamond_boots'
    - 'minecraft:golden_helmet'
    - 'minecraft:golden_chestplate'
    - 'minecraft:golden_leggings'
    - 'minecraft:golden_boots'

    # In strings
    # %1$s - player name.
    # %2$s - item name.
    # %3$s - full item nbt.
    # Note: you can limit the length of the strings with the following:
    # %3$.80s - full item nbt (limited to 80 characters).

    # Action when a player spawns an item not in the creative menu.
    unavailable:
      # Optional, defaults to true
      #   block: true

      # Optional, if not set, no message is sent.
      message: 'You do not have permission for %2$s.'

      # Optional, defaults to bukkit.broadcast.admin
      #   broadcastPermission: bukkit.broadcast.admin

      # Optional, if not set, no broadcast is sent.
      broadcastMessage: '%1$s attempted to spawn in %3$s'

    # List of commands, to run.
    #   commands:
    #      - 'kick %1$s You do not have permission for %2$s.'

    # Action when a player spawns an item in the creative menu they have no permission for.
    # Any of the values from the unavailable action can be set here.
    nopermission:
      message: 'You do not have permission for %2$s.'

    # Action when a player spawns an item which is blacklisted.
    # Any of the values from the unavailable action can be set here.
    blacklisted:
      message: 'You do not have permission for %2$s.'

    # Action when a player exceeds the item click/drop rate limit
    # Note: this check is performed first
    # This might be extremely spammy for admins.
    onRateLimit:
      broadcastMessage: '%1$s exceeded rate limit for inventory clicks or dropped items'
      message: 'Do not click so fast!'

    checkInSurvival:
      # setting this option 'true' will check blacklist in survival mode.
      block: false

      # Optional, if not set, no message is sent.
      message: 'You do not have permission for %2$s.'

      # Optional, defaults to bukkit.broadcast.admin
      #   broadcastPermission: bukkit.broadcast.admin

      # Optional, if not set, no broadcast is sent.
      broadcastMessage: '%1$s attempted to spawn in %3$s'

    # List of commands, to run.
    #   commands:
    #      - 'kick %1$s You do not have permission for %2$s.'

    # Action when a player drops an item in the creative menu they have no permission for.
    # Any of the values from the unavailable action can be set here.
    nodroppermission:
      message: 'You do not have permission to drop %2$s.'
     
    Mist_Zep, Osqai, ScuroK and 2 others like this.

Recent Reviews

  1. damonmclovin1
    damonmclovin1
    5/5,
    Version: 3.10.3
    1. vk2gpz
      Author's Response
      You should be careful. It might be considered as an advertising.
  2. Banexplain
    Banexplain
    3/5,
    Version: 3.10.3
    Hey, I tryed this plugin out and I love the funktions it has, but I got this error in the console - because of the fact that there is no Support/Report option/section, could you excuse me for pasting this error in here.
    I hope that you could help me - Best regards

    [23:04:24 ERROR]: [com.vk2gpz.creativeitemcontrol.a.c.c.b] null
    java.lang.NoSuchMethodException: net.minecraft.server.v1_16_R3.TileEntity.a(net.minecraft.server.v1_16_R3.NBTTagCompound)
    at java.lang.Class.getMethod(Unknown Source) ~[?:1.8.0_291]
    at com.vk2gpz.creativeitemcontrol.a.c.c.b.<clinit>(b.java:204) ~[?:?]
    at com.vk2gpz.creativeitemcontrol.CreativeItemControl.onCreativeEvent(CreativeItemControl.java:232) ~[?:?]
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor82.execute(Unknown Source) ~[?:?]
    at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Paper-613]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Paper-613]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Paper-613]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2870) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.PacketPlayInSetCreativeSlot.a(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.PacketPlayInSetCreativeSlot.a(SourceFile:9) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1262) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1255) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1216) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1130) ~[patched_1.16.5.jar:git-Paper-613]
    at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:289) ~[patched_1.16.5.jar:git-Paper-613]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_291]
    [23:04:24 WARN]: java.lang.NullPointerException
    [23:04:24 WARN]: at com.vk2gpz.creativeitemcontrol.a.c.c.b.readItemStack(b.java:649)
    [23:04:24 WARN]: at com.vk2gpz.creativeitemcontrol.CreativeItemControl.onCreativeEvent(CreativeItemControl.java:232)
    [23:04:24 WARN]: at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor82.execute(Unknown Source)
    [23:04:24 WARN]: at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69)
    [23:04:24 WARN]: at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80)
    [23:04:24 WARN]: at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
    [23:04:24 WARN]: at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2870)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.PacketPlayInSetCreativeSlot.a(SourceFile:23)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.PacketPlayInSetCreativeSlot.a(SourceFile:9)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1262)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1255)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1216)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1130)
    [23:04:24 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:289)
    [23:04:24 WARN]: at java.lang.Thread.run(Unknown Source)
    [23:04:25 WARN]: java.lang.NullPointerException
    [23:04:25 WARN]: at com.vk2gpz.creativeitemcontrol.a.c.c.b.readItemStack(b.java:649)
    [23:04:25 WARN]: at com.vk2gpz.creativeitemcontrol.CreativeItemControl.onCreativeEvent(CreativeItemControl.java:234)
    [23:04:25 WARN]: at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor82.execute(Unknown Source)
    [23:04:25 WARN]: at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69)
    [23:04:25 WARN]: at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80)
    [23:04:25 WARN]: at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
    [23:04:25 WARN]: at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2870)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.PacketPlayInSetCreativeSlot.a(SourceFile:23)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.PacketPlayInSetCreativeSlot.a(SourceFile:9)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1262)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1255)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1391)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1126)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:289)
    [23:04:25 WARN]: at java.lang.Thread.run(Unknown Source)
    [23:04:25 WARN]: java.lang.NullPointerException
    [23:04:25 WARN]: at com.vk2gpz.creativeitemcontrol.a.c.c.b.readItemStack(b.java:649)
    [23:04:25 WARN]: at com.vk2gpz.creativeitemcontrol.CreativeItemControl.onCreativeEvent(CreativeItemControl.java:234)
    [23:04:25 WARN]: at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor82.execute(Unknown Source)
    [23:04:25 WARN]: at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69)
    [23:04:25 WARN]: at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80)
    [23:04:25 WARN]: at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
    [23:04:25 WARN]: at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2870)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.PacketPlayInSetCreativeSlot.a(SourceFile:23)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.PacketPlayInSetCreativeSlot.a(SourceFile:9)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1262)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1255)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1216)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1130)
    [23:04:25 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:289)
    [23:04:25 WARN]: at java.lang.Thread.run(Unknown Source)
    1. vk2gpz
      Author's Response
      Putting 3 star review with a stacktrace is not going to help your situation.
  3. MCVantage
    MCVantage
    1/5,
    Version: 3.10.3
    I am using the latest version (4.04).

    The config is totally broken. It doesn't allow you to use any customization options.

    1-star comes from the fact that it does prevent exploits and the saved toolbar, but after so many tries over the course of months, the fact that the config is unable to whitelist or blacklist any items with it explicitly being a feature is pretty silly.

    Additionally, no one can CTRL+Middle Click signs or heads with any NBT data even if they are whitelisted, not from the saved toolbar, or not hacked (vanilla) items.

    Please fix your plugin. Make it paid if you have to.
    1. vk2gpz
      Author's Response
      The version on spigot is 3.10.3
  4. GiladB
    GiladB
    1/5,
    Version: 3.10.3
    Totally broken. Nothing works. The console is being spammed with erros. Items disappear from the ground.
    1. vk2gpz
      Author's Response
      then you should use the latest version rather than this old version.
  5. Patrik35
    Patrik35
    4/5,
    Version: 3.10.3
    Dobrý nápad, ale nejde mě změnit barvu message.
    Budu moc rád za rady ..........................
  6. dice8e
    dice8e
    5/5,
    Version: 3.10.3
    I got it working and it works great I just had to download from the jenkins page.
    1. vk2gpz
      Author's Response
      I don't have a Jenkins, you probably got a different fork.
  7. Rik___
    Rik___
    2/5,
    Version: 3.10.3
    Plugin seemed good at first but blocks potions which I set to allowed. Turns custom heads to steve heads but dev wants problems via a weird (bugged)website and refuses to help via discord. And a lack of source code is very weird for this...
    1. vk2gpz
      Author's Response
      "ev wants problems via a weird (bugged)website", it's a very widely used online support service. If the issue was not reported there, I cannot help you.
  8. Sitmobedaf
    Sitmobedaf
    2/5,
    Version: 3.10.3
    Code obfuscation - this is very baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaad!!!!!!!!!!!!! Yeah?!
    1. vk2gpz
      Author's Response
      can't you read bytecode?
  9. RisDN
    RisDN
    4/5,
    Version: 3.10.3
    How do i enable that so players can use this item?
    [Sun, 5. Apr 2020 12:52:58 GMT INFO] Beni0510 attempted to spawn in {"id" : "minecraft:coal", "Count" : 1b, "tag" : {"display" : {"Name" : "{"text":"Clicker"}"}}}
  10. ItsGJK
    ItsGJK
    3/5,
    Version: 3.10.3
    Good, but seems to block any sort of potions, tipped arrows, or lingering potions, and adding them to the whitelist, reloading the plugin, or restarting the plugin does not work on 1.15.2.