Back to Plugins
gridstorage icon

gridstorage

Active tab
Overview
Latest version
Not specified
Minecraft support
0 versions
Topics synced
0
Claim this plugin

This plugin was imported from Spiget and is currently unclaimed.

Live badges: Downloads badge for gridstorage Spigot Downloads badge for gridstorage GitHub Stars badge for gridstorage License badge for gridstorage How to embed →

Plugin Information

Type: Minecraft plugin
Spigot Resource: Open on SpigotMC
Created by: Spiget Importer

Description

GridStorage

一个功能完整的 Minecraft 网格存储插件,支持 Spigot 和 Folia。

功能特性

  • 54格大型存储空间: 每个仓库槽位提供54格的独立存储空间
  • 网格化GUI设计: 简洁直观的网格界面
  • 多页浏览系统: 支持最多100个仓库槽位,通过翻页轻松管理
  • 独立存储: 每个玩家拥有独立的仓库空间
  • 实时更新: GUI更新仅影响当前操作玩家,避免物品被篡改
  • 持久化存储: 使用 SQLite 数据库存储物品数据,支持 NBT 完整序列化
  • 自动保存: 每5分钟自动保存所有玩家数据
  • 多语言支持: 支持中文和英文界面

命令使用

玩家命令

  • /gridstorage - 打开网格仓库主界面
  • /gridstorage help - 显示帮助信息
  • /gridstorage open [槽位号] - 直接打开指定槽位

管理员命令

  • /gridstorageadmin reload - 重新加载配置
  • /gridstorageadmin help - 显示管理员帮助

权限系统

权限节点 描述 默认
gridstorage.use 允许使用网格存储系统 true
gridstorage.admin 网格存储管理员权限 op
gridstorage.create 允许创建网格 true
gridstorage.access 允许访问网格 true
gridstorage.delete 允许删除网格 op
gridstorage.invite 允许邀请玩家访问网格 true
gridstorage.kick 允许踢出网格访问者 true
gridstorage.administrate 允许管理网格权限 op
gridstorage.economy 允许管理网格经济 true

GUI布局

主网格GUI (54格)

  • 槽位1-45: 仓库槽位按钮(点击打开对应仓库)
  • 槽位46: 前一页按钮
  • 槽位47-53: 玻璃板装饰
  • 槽位54: 后一页按钮

单个仓库GUI (54格)

  • 槽位1-54: 可用的存储空间

配置文件

config.yml

# 数据库配置
database:
  # 数据存储类型: sqlite(本地文件) 或 mysql(数据库)
  type: sqlite

# 网格配置
grid:
  # 网格名称
  name: "网格仓库"
  # 最大仓库槽位数量
  max-storage-count: 100
  # 每页显示的槽位数量
  page-size: 45
  # GUI大小
  gui-size: 54

# 语言配置
language:
  # 默认语言: zh(中文), en(英文)
  default: "zh"
  # 是否允许玩家切换语言
  allow-player-switch: false

# 消息配置
messages:
  # 是否启用消息
  enabled: true
  # 消息前缀
  prefix: "&6[网格存储] &r"
  # 消息颜色
  colors:
    success: "&a"
    error: "&c"
    info: "&e"
    warning: "&6"

# 日志配置
logging:
  # 是否启用日志
  enabled: true
  # 日志级别: DEBUG, INFO, WARN, ERROR
  level: INFO
  # 是否记录到文件
  file-logging: true
  # 日志文件路径
  log-file: "logs/gridstorage.log"
  # 最大日志文件大小(MB)
  max-file-size: 10
  # 保留的日志文件数量
  max-files: 5

messages_zh.yml (中文消息)

storage:
  gui:
    title: "&6网格仓库 &7- 第 &e{0}&7/&e{1} &7页"
    slot-title: "&6仓库 #{0}"
    slot-lore:
      - "&7点击打开此仓库"
      - "&7容量: 54 格"

messages_en.yml (英文消息)

storage:
  gui:
    title: "&6Grid Storage &7- Page &e{0}&7/&e{1}"
    slot-title: "&6Storage #{0}"
    slot-lore:
      - "&7Click to open this storage"
      - "&7Capacity: 54 slots"

开发说明

项目结构

src/main/java/com/gridstorage/
├── GridStorage.java          # 主类
├── config/
│   └── ConfigManager.java   # 配置管理器
├── model/
│   ├── StorageSlot.java      # 槽位数据模型
│   └── PlayerStorage.java    # 玩家仓库模型
├── manager/
│   ├── GUIManager.java       # GUI管理器
│   └── StorageManager.java  # 存储管理器
├── database/
│   └── DatabaseManager.java  # 数据库管理器
├── command/
│   └── GridStorageCommand.java # 命令处理器
└── listener/
    └── GUIListener.java     # GUI事件监听器

依赖

  • Spigot API 1.21+
  • NBT-API 2.15.5+
  • SQLite (内置)

构建项目

mvn clean package

构建后的 JAR 文件位于 target/ 目录。

数据库设计

表结构

player_storage 表

CREATE TABLE player_storage (
    player_uuid TEXT PRIMARY KEY,
    current_page INTEGER NOT NULL DEFAULT 0,
    max_pages INTEGER NOT NULL DEFAULT 1
);

storage_slots 表

CREATE TABLE storage_slots (
    player_uuid TEXT NOT NULL,
    slot_id INTEGER NOT NULL,
    items_nbt TEXT NOT NULL,
    PRIMARY KEY (player_uuid, slot_id),
    FOREIGN KEY (player_uuid) REFERENCES player_storage(player_uuid)
);

NBT 序列化说明

插件使用 NBT-API 完整序列化物品数据,包括物品 ID、数量、附魔、自定义 NBT 标签等。

序列化方法:

// 将物品序列化为 NBT
ReadWriteNBT itemNbt = NBT.itemStackToNBT(item);

// 将 NBT 反序列化为物品
ItemStack item = NBT.itemStackFromNBT(itemNbt);

自动保存机制

  • 自动保存: 每 5 分钟(300秒)自动保存所有玩家数据
  • GUI关闭保存: 当玩家关闭仓库 GUI 时自动保存当前槽位内容
  • 服务器关闭保存: 服务器关闭时强制保存所有数据

技术实现

线程安全

  • 数据库操作在异步线程执行,避免阻塞主线程
  • Folia 区域化调度支持
  • 使用读写锁保护并发访问

数据一致性

  • 使用 SQLite WAL 模式提高并发性能
  • GUI 关闭事件确保数据同步
  • 服务器优雅关闭时保存所有数据

常见问题

Q: 数据会丢失吗?

A: 不会。插件使用 SQLite 数据库持久化存储,并有多重保护机制:

  • 自动保存(每5分钟)
  • GUI关闭时保存
  • 服务器关闭时保存

Q: 支持哪些物品?

A: 支持所有 Minecraft 物品,包括:

  • 基础物品和方块
  • 附魔物品
  • 自定义 NBT 标签物品
  • 药水、旗帜等复杂物品

Q: 如何备份仓库数据?

A: 仓库数据存储在 plugins/GridStorage/database/ 目录下的 SQLite 数据库文件中,直接复制该文件即可备份。

许可证

GPLv3 License

作者

chenasyd

版本历史

v1.0.0

  • 初始版本
  • 实现基础GUI框架
  • 实现仓库槽位管理
  • 实现翻页功能
  • 实现 SQLite 数据库持久化
  • 实现完整 NBT 序列化
  • 实现自动保存机制
  • 实现多语言支持

相关链接

Minecraft Plugin Badges

Use these badge images in docs, README files, or forum posts.

Badge Guide
Downloads
Downloads badge for gridstorage
![Downloads](https://ezbanners.org/shields/plugins/0d5a6602-c2e7-4088-b607-e8be7576bb3f/downloads.png)
Spigot Downloads
Spigot Downloads badge for gridstorage
![Spigot Downloads](https://ezbanners.org/shields/plugins/0d5a6602-c2e7-4088-b607-e8be7576bb3f/spigot-downloads.png)
GitHub Stars
GitHub Stars badge for gridstorage
![GitHub Stars](https://ezbanners.org/shields/plugins/0d5a6602-c2e7-4088-b607-e8be7576bb3f/github-stars.png)
License
License badge for gridstorage
![License](https://ezbanners.org/shields/plugins/0d5a6602-c2e7-4088-b607-e8be7576bb3f/license.png)