NotItem

NotItem

A simple plugin that makes it easy to create banned items in the chest menu

130 downloads 3 followers

NotItem

日本語の説明は ページ下部 にあります

chest

NotItem is a lightweight plugin that restricts specific items per world or globally.

Manage restricted items easily via a GUI — no item IDs required.

Perfect for lobby servers, adventure maps, and controlled survival environments.


Features

  • Per-world restrictions and a global list (all)
  • Simple GUI-based management (/notitem gui)
  • Quick commands: add the item in your hand with a single /notitem add
  • Instant item removal with minimal performance impact
    • Pickup, inventory clicks, dragging, crafting and item use are blocked
    • Armor, off-hand, cursor and shulker box contents are checked too
  • Bypass permission (notitem.bypass, OP by default)
  • Fully customizable messages via language.yml
  • Anti-spam: repeated "item removed" messages are throttled
  • Automatic update of config.yml / language.yml from older versions

Commands & Permissions

Commands

/notitem gui [world | all]            - Open the GUI to manage restricted items (default: all)
/notitem list [world | all]           - View restricted items
/notitem add [world | all] [item]     - Add a restricted item
/notitem remove [world | all] [item]  - Remove a restricted item
/notitem reload                       - Reload config.yml and language.yml

add / remove shortcuts:

Command Effect
/notitem add Adds the item in your main hand to all
/notitem add <world> Adds the item in your main hand to <world>
/notitem add <item> Adds <item> to all (when it is not a world name)
/notitem add <world> <item> Adds <item> to <world>

remove works the same way. <world> must be all or an existing world.

Permissions

Permission Description Default
notitem.admin Use all /notitem commands OP
notitem.bypass Not affected by item restrictions OP

Configuration

config.yml

# "all" applies to every world.
restricted-items:
  world:
    - TNT
    - BEDROCK
  all:
    - COMMAND_BLOCK

# Interval (in ticks) of the periodic inventory scan. 20 = 1 second, 0 = disabled.
scan-interval-ticks: 20

# Minimum time (in milliseconds) between 'item removed' messages for the same item.
message-cooldown-ms: 3000

Replace world with a specific world name, or use all to apply restrictions globally. World names containing dots (e.g. survival.nether) are supported.

language.yml

language.yml (default: Japanese)
# Message language file
# lang-version is managed by the plugin. Do not edit it.
lang-version: 1
prefix: "&7[&cNotItem&7] &r"
item-removed: "&e%world%&r では &c%item%&r の所持は禁止されているため削除しました。"
reload-success: "&a設定を再読み込みしました。"
no-permission: "&c権限がありません。"
usage: "&e使用法: /notitem <add | remove | list | gui | reload>"
item-added: "&a%item% を %world% の禁止リストに追加しました。"
item-already-listed: "&e%item% は既に %world% の禁止リストに登録されています。"
item-removed-list: "&e%item% を %world% の禁止リストから削除しました。"
item-not-listed: "&e%item% は %world% の禁止リストに登録されていません。"
invalid-material: "&c無効なアイテム名です。"
invalid-world: "&c無効なワールド名です。(all または存在するワールド名を指定してください)"
no-held-item: "&c手にアイテムを持っていません。アイテム名を指定するか、アイテムを手に持ってください。"
player-only: "&cこのコマンドはプレイヤーのみ実行できます。"
save-failed: "&c設定ファイルの保存に失敗しました。コンソールを確認してください。"

# List command
list-header: "&e--- 禁止アイテムリスト (%world%) ---"
list-item: "&7- &f%item%"
list-empty: "&7このワールドには禁止アイテムはありません。"
list-all-header: "&e--- 全世界の禁止アイテムリスト ---"
list-world-format: "&b%world%&f: &7%items%"

# Help messages
help-header: "&e======= &bNotItem Help &e======="
help-add: "&b/notitem add [world | all] [item] &7- 禁止アイテムを追加 (省略時: all / 手持ちのアイテム)"
help-remove: "&b/notitem remove [world | all] [item] &7- 禁止アイテムを削除 (省略時: all / 手持ちのアイテム)"
help-list: "&b/notitem list [world | all] &7- 禁止リストを表示"
help-gui: "&b/notitem gui [world | all] &7- GUIで禁止アイテムを管理 (省略時: all)"
help-reload: "&b/notitem reload &7- 設定を再読み込み"
help-footer: "&e============================"

# GUI
gui-title: "&8禁止アイテム設定: &5%world%"
gui-saved: "&a%world% の禁止リストを保存しました。"
gui-overflow: "&eGUIに表示しきれない %count% 件のアイテムがあります。これらは /notitem remove で個別に削除できます。"
language.yml (example: English)
# Message language file
# lang-version is managed by the plugin. Do not edit it.
lang-version: 1
prefix: "&7[&cNotItem&7] &r"
item-removed: "&e%item%&r is not allowed in &e%world%&r and has been removed."
reload-success: "&aConfiguration reloaded successfully."
no-permission: "&cYou do not have permission."
usage: "&eUsage: /notitem <add | remove | list | gui | reload>"
item-added: "&aAdded %item% to the restricted list of %world%."
item-already-listed: "&e%item% is already in the restricted list of %world%."
item-removed-list: "&eRemoved %item% from the restricted list of %world%."
item-not-listed: "&e%item% is not in the restricted list of %world%."
invalid-material: "&cInvalid item name."
invalid-world: "&cInvalid world name. (use 'all' or an existing world)"
no-held-item: "&cYou are not holding an item. Specify an item name or hold one in your hand."
player-only: "&cThis command can only be used by players."
save-failed: "&cFailed to save the configuration file. Check the console."

# List command
list-header: "&e--- Restricted Items (%world%) ---"
list-item: "&7- &f%item%"
list-empty: "&7No restricted items in this world."
list-all-header: "&e--- Global Restricted Items ---"
list-world-format: "&b%world%&f: &7%items%"

# Help messages
help-header: "&e======= &bNotItem Help &e======="
help-add: "&b/notitem add [world | all] [item] &7- Add a restricted item (default: all / held item)"
help-remove: "&b/notitem remove [world | all] [item] &7- Remove a restricted item (default: all / held item)"
help-list: "&b/notitem list [world | all] &7- Show restricted items"
help-gui: "&b/notitem gui [world | all] &7- Manage restricted items via GUI (default: all)"
help-reload: "&b/notitem reload &7- Reload configuration"
help-footer: "&e============================"

# GUI
gui-title: "&8Restricted Items: &5%world%"
gui-saved: "&aSaved the restricted list of %world%."
gui-overflow: "&e%count% item(s) do not fit in the GUI. Use /notitem remove to delete them individually."

To switch the plugin language to English, replace the contents of language.yml with the example above and run /notitem reload.


Updating from an older version

Just replace the jar and restart (or reload) the server. On first start the plugin:

  • adds the new keys to config.yml and language.yml (your existing values are kept)
  • updates messages that are still the old defaults to the new wording; messages you customized are not touched
  • keeps a backup of the previous files as config.yml.bak and language.yml.bak
  • restores restricted lists of worlds whose names contain dots, which older versions saved incorrectly

Changes since 1.0.0

  • New: /notitem add / remove shortcuts (held item, default all), gui opens all by default
  • New: notitem.bypass permission, scan-interval-ticks and message-cooldown-ms options
  • New: shulker box contents, armor, off-hand and cursor are checked
  • Fixed: restricted items beyond 54 were lost when closing the GUI
  • Fixed: items could still be used or picked up for a moment; events are now cancelled
  • Fixed: wrong messages when adding an already listed item / removing an unlisted one
  • Fixed: worlds with dots in their name were not handled correctly
  • Fixed: too many "item removed" messages when clicking repeatedly
  • Runs on Java 8+ again (built as Java 8 bytecode) and supports Minecraft 1.13 – 1.21.x

Compatibility

  • Server: Spigot / Paper 1.13 – 1.21.x
  • Java: 8 or higher (the jar is built as Java 8 bytecode, so it also runs on newer Java)
  • Built against the Spigot API 1.20.1 with api-version: 1.13

The source is compile-checked against the Spigot API 1.13.2, 1.16.5, 1.19.4 and 1.21.4 in CI. Minecraft versions other than 1.20.1 are not actively tested on a live server.


Notes

  • This plugin does not use NMS or version-specific code.
  • Designed to be lightweight and safe for long-term server operation.
  • Works best on Paper / Spigot-based servers.

日本語説明

NotItem は、特定のワールド(または全ワールド)で特定のアイテムの所持・使用を制限できる、軽量な Minecraft サーバー用プラグインです。 GUI ベースの直感的な管理により、アイテム ID を調べることなく簡単に制限設定を行えます。

ロビーサーバー、アドベンチャーマップ、管理されたサバイバル環境など、 アイテム制御が必要なあらゆるサーバーに最適です。


主な機能

  • ワールド別・全ワールド共通(all)のアイテム制限に対応
  • /notitem gui による GUI 管理(アイテム ID 入力不要)
  • /notitem add だけで 手に持っているアイテムを禁止リストに追加
  • アイテムの取得・移動・ドラッグ・クラフト・使用を検知し、即座に削除・キャンセル
    • 防具・オフハンド・カーソル・シュルカーボックスの中身も対象
  • notitem.bypass 権限を持つプレイヤー(デフォルトは OP)は制限対象外
  • language.yml による完全なメッセージカスタマイズ対応
  • 連打時の「削除しました」通知を自動的に間引き
  • 旧バージョンの config.yml / language.yml を自動で更新

コマンドと権限

コマンド

/notitem gui [world | all]            - GUI で禁止アイテムを管理 (省略時: all)
/notitem list [world | all]           - 禁止アイテム一覧を表示
/notitem add [world | all] [item]     - 禁止アイテムを追加
/notitem remove [world | all] [item]  - 禁止アイテムを削除
/notitem reload                       - config.yml と language.yml を再読み込み

add / remove の省略形:

コマンド 動作
/notitem add メインハンドに持っているアイテムを all に追加
/notitem add <world> 持っているアイテムを <world> に追加
/notitem add <item> <item> を all に追加(ワールド名として解決できない場合)
/notitem add <world> <item> <item> を <world> に追加

remove も同様です。<world> は all または存在するワールド名を指定してください。

権限

権限 説明 デフォルト
notitem.admin /notitem の全コマンドを使用 OP
notitem.bypass アイテム制限の対象外になる OP

設定ファイル

config.yml

# "all" は全ワールドに適用されます
restricted-items:
  world:
    - TNT
    - BEDROCK
  all:
    - COMMAND_BLOCK

# 所持品を定期チェックする間隔(tick)。20 = 1秒、0 = 無効
scan-interval-ticks: 20

# 同じアイテムの「削除しました」通知の最小間隔(ミリ秒)
message-cooldown-ms: 3000

world の部分は実際のワールド名に置き換えてください。all は全ワールド共通です。 survival.nether のようにドットを含むワールド名にも対応しています。

language.yml

デフォルトは日本語です。全文は上の英語セクションの language.yml (default: Japanese) を参照してください。 英語に切り替えるには、language.yml (example: English) の内容に置き換えて /notitem reload を実行します。


旧バージョンからのアップデート

jar を差し替えてサーバーを再起動(または reload)するだけです。初回起動時に次の処理を自動で行います。

  • config.yml と language.yml に新しい項目を追加(既存の値は保持)
  • 旧バージョンの既定のままのメッセージだけを新しい文言に更新(自分で書き換えたメッセージは変更しません)
  • 更新前のファイルを config.yml.bak / language.yml.bak として保存
  • 旧バージョンで正しく保存されなかった、ドットを含むワールド名の設定を復元

1.0.0 からの変更点

  • 追加: /notitem add / remove の省略形(手持ちのアイテム、省略時は all)、gui は省略時 all を開く
  • 追加: notitem.bypass 権限、scan-interval-ticks / message-cooldown-ms 設定
  • 追加: シュルカーボックスの中身・防具・オフハンド・カーソルのチェック
  • 修正: GUI を閉じると 54 件を超える禁止アイテムが失われる問題
  • 修正: アイテムの取得・使用が一瞬通ってしまう問題(イベントをキャンセルするよう変更)
  • 修正: 登録済みアイテムの追加・未登録アイテムの削除時のメッセージ
  • 修正: ドットを含むワールド名が正しく扱われない問題
  • 修正: 連打時に通知が大量に出る問題
  • Java 8 以上で動作(Java 8 向けにビルド)。Minecraft 1.13 – 1.21.x に対応

対応環境

  • サーバー: Spigot / Paper 1.13 – 1.21.x
  • Java: 8 以上(Java 8 向けのバイトコードでビルドしているため、新しい Java でも動作します)
  • Spigot API 1.20.1 でビルド(api-version: 1.13)

Spigot API 1.13.2 / 1.16.5 / 1.19.4 / 1.21.4 に対するコンパイルを CI で確認しています。 1.20.1 以外のバージョンについては、実サーバーでの継続的な検証は行っていません。


デフォルト言語:日本語(language.yml で自由に変更可能)

Version Minecraft Loader Download

NotItem 1.2.0

1.2.0

1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3
bukkit, paper, purpur, spigot
Download

NotItem 1.0.0

1.0.0

1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1
bukkit, paper, purpur, spigot
Download