damienjolly/habbo-gamedata
最新稳定版本:1.1.0
Composer 安装命令:
composer require damienjolly/habbo-gamedata
包简介
Reusable Habbo gamedata domain package for Laravel.
README 文档
README
Reusable Habbo gamedata package for Laravel.
This package stores Habbo gamedata in your database, imports source files using Artisan commands, and serves hashed endpoints for client consumption with long-lived cache headers.
Requirements
- PHP 8.3+
- Laravel 13.x (Illuminate 13.x components)
Installation
composer require damienjolly/habbo-gamedata
The service provider is auto-discovered by Laravel.
Configuration
Publish config (optional):
php artisan vendor:publish --tag=habbo-gamedata-config
Config file: config/habbo-gamedata.php
Default endpoint paths:
/gamedata/hashes/gamedata/external_flash_texts/gamedata/external_variables/gamedata/override/external_flash_override_texts/gamedata/productdata_xml/gamedata/figuredata/gamedata/furnidata_xml
Set routes.auto_register to false if you want to register routes yourself.
Database Migrations
Migrations are loaded automatically by the package service provider.
Run migrations:
php artisan migrate
If you want to copy migration files into your app:
php artisan vendor:publish --tag=habbo-gamedata-migrations
Routes
Routes are loaded automatically when routes.auto_register = true.
To publish package routes:
php artisan vendor:publish --tag=habbo-gamedata-routes
Import Commands
Each command accepts an optional path argument. If omitted, the default path under storage/app/imports is used.
php artisan gamedata:import-external-texts {path?}- default:
storage/app/imports/external_flash_texts.txt
- default:
php artisan gamedata:import-external-variables {path?}- default:
storage/app/imports/external_variables.txt
- default:
php artisan gamedata:import-external-override-texts {path?}- default:
storage/app/imports/external_flash_override_texts.txt
- default:
php artisan gamedata:import-product-data {path?}- default:
storage/app/imports/productdata.xml
- default:
php artisan gamedata:import-figure-data {path?}- default:
storage/app/imports/figuredata.xml
- default:
php artisan gamedata:import-furni-data {path?}- default:
storage/app/imports/furnidata.xml
- default:
All import commands clear relevant caches after successful import.
Endpoint Behavior
All data endpoints use hash-based URLs.
- If the requested hash is missing or outdated, the endpoint responds with
302to the latest hashed URL. - Current hashed URLs are exposed via
/gamedata/hashes. - Responses include:
Cache-Control: public, max-age=31536000, immutableETag: "<current-hash>"
Content types:
external_flash_texts,external_variables,external_flash_override_texts:text/plain; charset=UTF-8productdata_xml,figuredata,furnidata_xml:application/xml; charset=UTF-8
Hashes Endpoint
GET /gamedata/hashes returns:
{
"hashes": [
{ "name": "furnidata", "url": "...", "hash": "..." },
{ "name": "productdata", "url": "...", "hash": "..." },
{ "name": "external_variables", "url": "...", "hash": "..." },
{ "name": "external_texts", "url": "...", "hash": "..." },
{ "name": "external_override_texts", "url": "...", "hash": "..." },
{ "name": "figurepartlist", "url": "...", "hash": "..." }
]
}
Typical Flow
- Import your source files with the Artisan commands.
- Call
/gamedata/hashesfrom your client/bootstrap service. - Use returned URLs/hashes to fetch and cache gamedata assets.
- Re-import data when source files change.
License
MIT
统计信息
- 总下载量: 12
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-04-07