NoEntrance(禁止入内)
PluginLicenseRef-All-Rights-Reserved

NoEntrance(禁止入内)

NoEntrance is a Minecraft Spigot/Paper server plugin for managing player join approval and access control. When a non-whitelisted player joins, the plugin automatically intercepts them, enforces security policies, and notifies online admins for approval.

51
Downloads
2
Followers
1 months ago
Updated
📦
13
Versions

📖About NoEntrance(禁止入内)

NoEntrance

NoEntrance is a Minecraft Spigot/Paper server plugin for managing player join approval and access control. When a non-whitelisted player joins, the plugin automatically intercepts them, enforces security policies, and notifies online admins for approval. Supports token-based self-verification, automatic timeout handling, one-click kick, and more.

NoEntrance 是一个 Minecraft Spigot/Paper 服务端插件,用于管理玩家加入审批与访问控制。当非白名单玩家尝试加入服务器时,插件会自动拦截、执行安全策略,并通知在线管理员审批。支持验证码自助验证、超时自动处理、一键踢出等功能。

⚠️ Please note: If you encounter any errors, please contact the developer via email promptly, otherwise these issues may not be fixed. Email subject must be: "NoEntrance Error Report", otherwise the email may be ignored. Contact: [email protected]

⚠️ 请注意: 如果遇到任何错误请及时通过邮箱联系开发者,否则这些问题可能不会被修复。邮件标题请填写为 "NoEntrance 错误报告",否则邮件可能被忽略。联系邮箱:[email protected]


Features / 功能特性

  • Join Approval — Sends clickable [Allow] / [Deny] chat messages to admins when non-whitelisted players join
  • Token Self-Verification — Admins create time-limited tokens (format tk-xxxxxxxxxx), players self-verify via /token
  • Notify Whitelist — Optionally restrict approval notifications to a specific list of OPs
  • One-Click Kick/noe <player> kick removes from whitelist, bans, and kicks in one step
  • Auto Timeout Handling — Automatically ban, whitelist, or do nothing when admins don't respond in time
  • Security Measures — Force game mode and teleport new players to a set location, independent of verification toggle
  • Interactive GUI — Clickable blacklist, whitelist, and online player lists
  • Console Support — All features available via console commands
  • Multi-Language — Built-in Simplified Chinese and English, extensible
中文
  • 加入审批 — 非白名单玩家进入时,向管理员发送可点击的 [允许] / [拒绝] 聊天消息
  • 验证码自助验证 — 管理员创建有时效的验证码(格式 tk-xxxxxxxxxx),玩家通过 /token 自行验证
  • 验证消息白名单 — 可配置仅向指定 OP 发送审批通知,避免骚扰无关管理员
  • 一键踢出/noe <玩家名> kick 移出白名单 + 拉黑 + 踢出,一步完成
  • 超时自动处理 — 管理员未响应时,自动执行封禁 / 加白名单 / 不处理
  • 安全措施 — 新玩家强制设置游戏模式并传送至指定坐标,与验证开关独立运作
  • 交互式 GUI — 黑白名单、在线玩家列表均支持点击操作
  • 控制台支持 — 所有功能均可在控制台通过文本方式使用
  • 多语言 — 内置简体中文和英文,可自行扩展

Workflow / 工作流程

Player Join Approval

Non-whitelisted player joins
  │
  ├─ ① Security measures take effect immediately
  │     ├─ Game mode set to configured mode (default: ADVENTURE)
  │     └─ Teleport to configured location (toggleable, world/xyz/yaw/pitch)
  │
  ├─ ② Notify the player
  │     ├─ "You are waiting for admin verification, please wait..."
  │     └─ "If you have a token, use /token <tk-xxxxxxxxxx> to verify directly"
  │
  ├─ ③ Notify admins
  │     ├─ Online OPs/admins receive clickable chat messages [✔Allow] [✖Deny]
  │     ├─ If notify whitelist is enabled, only listed OPs receive them
  │     └─ Console also prints approval command hints
  │
  ├─ ④ Start timeout timer (default: 30s, configurable)
  │     │
  │     ├─ Admin clicks [✔Allow]    → Whitelisted, player can play normally
  │     ├─ Admin clicks [✖Deny]     → Banned + kicked
  │     ├─ Player uses /token       → Verified, whitelisted (admins notified)
  │     │
  │     └─ Timeout with no action
  │           ├─ timeout-action: BAN       → Auto ban
  │           ├─ timeout-action: WHITELIST → Auto whitelist
  │           └─ timeout-action: NONE      → Do nothing (player stays but not whitelisted)
  │
  └─ ⑤ If timeout=0, skip approval, player enters directly (security measures still apply)

Token Verification Flow

Admin creates token                    Player uses token
  │                                      │
  ├─ /noe token tk-xxxxxxxxxx           ├─ Join server (non-whitelisted)
  │   Generates tk- + 10 letters/digits  │
  │   Valid for 30 min by default        ├─ Receive wait-for-verification message
  │                                      │
  ├─ Duplicate token (not expired)       ├─ Enter /token tk-xxxxxxxxxx
  │   → Rejected with "already exists"   │
  │                                      ├─ Wrong format → format hint shown
  └─ Send token to player externally     │
                                         ├─ Verified → immediately whitelisted
                                         │
                                         └─ Admins notified: "Player XXX verified via token"
                                            (console + online OPs)

Kick Whitelisted Player

Admin runs /noe <player> kick
  │
  ├─ ① Remove from whitelist
  ├─ ② Add to blacklist (ban)
  └─ ③ If online, immediately kick from server
中文

玩家加入审批

非白名单玩家加入服务器
  │
  ├─ ① 安全措施立即生效
  │     ├─ 游戏模式设为指定模式(默认 ADVENTURE,可配置)
  │     └─ 传送到指定坐标(可关闭,可配置世界/xyz/朝向)
  │
  ├─ ② 向玩家发送提示
  │     ├─ "你正在等待管理员验证,请不要离开……"
  │     └─ "如果你有验证码,请输入 /token <tk-xxxxxxxxxx> 直接通过验证"
  │
  ├─ ③ 通知管理员
  │     ├─ 在线 OP/管理员收到可点击聊天消息 [✔允许] [✖拒绝]
  │     ├─ 若开启验证消息白名单,仅列表中的 OP 收到
  │     └─ 控制台同步输出审批指令提示
  │
  ├─ ④ 启动超时计时器(默认 30 秒,可配置)
  │     │
  │     ├─ 管理员点击 [✔允许]  → 加入白名单,正常游戏
  │     ├─ 管理员点击 [✖拒绝]  → 封禁 + 踢出
  │     ├─ 玩家输入 /token      → 验证通过,加入白名单(通知管理员)
  │     │
  │     └─ 超时无人处理
  │           ├─ timeout-action: BAN       → 自动封禁
  │           ├─ timeout-action: WHITELIST → 自动加入白名单
  │           └─ timeout-action: NONE      → 不处理(玩家仍在服务器但未白名单)
  │
  └─ ⑤ 若 timeout=0,跳过审批,玩家直接进入(安全措施仍生效)

验证码使用流程

管理员创建验证码
  │
  ├─ /noe token tk-xxxxxxxxxx
  │   生成 tk- + 10位字母/数字
  │   有效期默认 30 分钟(可配置)
  │
  ├─ 重复创建未过期验证码
  │   → 提示"已存在"拒绝创建
  │
  └─ 通过外部渠道发给玩家

玩家使用验证码
  │
  ├─ 加入服务器(非白名单)
  │
  ├─ 收到等待验证提示
  │
  ├─ 输入 /token tk-xxxxxxxxxx
  │
  ├─ 若格式错误 → 提示正确格式
  │
  ├─ 验证通过 → 立即加入白名单
  │
  └─ 通知管理员"玩家 XXX 通过验证码验证"
     (控制台 + 在线 OP 均收到)

踢出白名单玩家

管理员执行 /noe <玩家名> kick
  │
  ├─ ① 移出白名单
  ├─ ② 加入黑名单(封禁)
  └─ ③ 若在线,立即踢出服务器

Compatibility / 兼容性

Component / 项目 Version Support / 版本 支持
Server / 服务端 Spigot / Paper / Arclight 1.19 ~ 26.1
Java 17+ / 21+ / 26+

Installation / 安装

  1. Download NoEntrance.jar
  2. Place it in the server's plugins/ directory
  3. Restart the server or run /reload confirm
  4. Edit plugins/NoEntrance/config.yml to adjust settings (restart or /reload confirm required after changes)
  5. (Optional) Edit language files in plugins/NoEntrance/language/ to customize messages
中文
  1. 下载 NoEntrance.jar
  2. 放入服务器 plugins/ 目录
  3. 重启服务器或执行 /reload confirm
  4. 编辑 plugins/NoEntrance/config.yml 调整配置(调整配置后需重启服务器或执行 /reload confirm
  5. (可选)编辑 plugins/NoEntrance/language/ 下的语言文件自定义文本

Commands / 命令

Admin (requires noentrance.admin permission) / 管理员

Command / 命令 Description / 说明
/noe <player> allow Approve and whitelist the player / 审批通过,加入白名单
/noe <player> ban Deny and ban the player / 审批拒绝,封禁玩家
/noe <player> kick Remove from whitelist → ban → kick / 移出白名单 → 拉黑 → 踢出
/noe token <tk-xxxxxxxxxx> Create a token (tk- + 10 letters/digits) / 创建验证码
/noe blacklist View blacklist (banned players) / 查看黑名单
/noe whitelist View whitelist / 查看白名单
/noe players View online players / 查看在线玩家
/noe reload Reload configuration and language files / 重载配置和语言文件

Player / 玩家

Command / 命令 Description / 说明
/token <tk-xxxxxxxxxx> Use a token to verify / 使用验证码通过验证

Permissions / 权限

Permission / 权限节点 Description / 说明 Default / 默认
noentrance.admin Use /noe command and receive approval notifications / 使用 /noe 命令及接收审批通知 OP

Configuration / 配置文件

Configuration file is located at plugins/NoEntrance/config.yml, with the following defaults:

配置文件位于 plugins/NoEntrance/config.yml,默认内容如下:

# 语言设置:CN (简体中文) 或 EN (英文)
# Language: CN (Simplified Chinese) or EN (English)
language: CN

# 验证等待时间(秒),设为 0 则不启用验证直接放行
# Verification timeout in seconds. Set to 0 to disable verification and allow all.
timeout: 30

# 超时未验证时的操作: BAN (拉黑/ban), WHITELIST (加白名单/whitelist), NONE (不处理/do nothing)
# Action on timeout: BAN, WHITELIST, or NONE
timeout-action: "BAN"

# 验证码有效期(分钟)
# Token expiry time in minutes.
token-expiry: 30

# 封禁时长(分钟),0 = 永久
# Ban duration in minutes. 0 = permanent.
ban-duration: 0

# 验证码速率限制
# Token rate limiting
token-rate-limit:
  # 时间窗口内最大尝试次数
  # Max attempts within the time window
  max-attempts: 5
  # 时间窗口(秒)
  # Time window in seconds
  window-seconds: 10
  # 连续失败多少次后封禁,0 = 禁用
  # Ban after this many consecutive failures. 0 = disabled.
  max-failures: 10

# 通知冷却时间(秒):同一玩家在此时间内不重复通知 OP,0 = 无冷却
# Notification cooldown in seconds. Same player won't trigger repeat OP notifications within this period. 0 = disabled.
notify-cooldown: 0

# 是否在控制台输出加入请求日志
# Whether to log join requests to the console
notify-console: true

# 安全设置
# Security Settings
security:
  # 是否将玩家传送到指定坐标
  # Teleport player to specified location
  teleport-enabled: true
  # 传送坐标:世界名, x, y, z, 水平朝向(yaw), 俯仰角(pitch)
  # Teleport location: world, x, y, z, yaw, pitch
  location:
    world: "world"
    x: 100.0
    y: 64.0
    z: 100.0
    yaw: 0
    pitch: 0
  # 强制游戏模式:
  #   SURVIVAL  - 生存模式,有生命值/饥饿度
  #   CREATIVE  - 创造模式,无限资源可飞行
  #   ADVENTURE - 冒险模式,无法破坏方块
  #   SPECTATOR - 观察者模式,可穿墙飞行
  # Force game mode:
  #   SURVIVAL  - Survival with HP & hunger
  #   CREATIVE  - Creative with unlimited resources & flight
  #   ADVENTURE - Adventure, cannot break blocks
  #   SPECTATOR - Spectator, noclip & flight
  game-mode: "ADVENTURE"

# 是否向在线 OP/管理员 发送可点击的验证消息
# Send clickable verification messages to online OPs/admins.
notify-ops: true

# 验证消息白名单:开启后仅向列表中的玩家发送验证消息(不在列表中的 OP 不会收到)
# 列表区分大小写,玩家必须同时是 OP 或拥有 noentrance.admin 权限
# 关闭后恢复默认行为:向所有在线 OP/管理员 发送
# ---
# Notify whitelist: if enabled, only listed players receive verification messages.
# Names are case-sensitive. Players must also be OP or have noentrance.admin permission.
# Disable to restore default: all online OPs/admins receive messages.
notify-whitelist:
  enabled: true
  players:
    - "Notch"
    - "Player1"

To customize messages, edit lang-cn.yml or lang-en.yml under plugins/NoEntrance/language/. Supports & color codes. Changes take effect after restart. To add a new language, create lang-xx.yml and set language: XX in config.yml.

中文

如需修改语言文本,编辑 plugins/NoEntrance/language/ 下的 lang-cn.ymllang-en.yml。支持 & 颜色代码,修改后重启生效。添加新语言:新建 lang-xx.yml,在 config.yml 中设置 language: XX