Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for sukukai

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

Report NotItem?

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 で自由に変更可能)

Information

Category
Protection
Published
December 23, 2025
License
MIT
12Downloads
1Stars

Pinned Versions

Members

1