主题
MoneyCore Python 接入指南
v2.1.0本指南介绍如何在 Python 插件中接入 MoneyCore 经济系统。
无需下载
MoneyCore 启动时自动生成 Python API 模块,直接 import 使用!
快速开始
1. 声明依赖
python
class MyPlugin(Plugin):
api_version = "0.10"
depend = ["money_core"]2. 在 on_enable 中导入并初始化
python
def on_enable(self):
from money_api import MoneyAPI
self.money = MoneyAPI(self)重要
必须在 on_enable() 内 import,不能在文件顶部 import!因为 API 模块在 MoneyCore 启动后才会生成。
完整示例
python
from endstone.plugin import Plugin
from endstone import Player
class MyShopPlugin(Plugin):
api_version = "0.10"
depend = ["money_core"]
commands = {
"shop": {
"description": "打开商店",
"usages": ["/shop <buy> <item: string>"],
"permissions": ["myshop.command.shop"]
}
}
permissions = {
"myshop.command.shop": {
"description": "使用商店",
"default": True
}
}
def on_enable(self):
from money_api import MoneyAPI
self.money = MoneyAPI(self)
if self.money.is_connected():
self.logger.info("MoneyAPI 连接成功")
def on_command(self, sender, command, args):
if command.name == "shop":
if not isinstance(sender, Player):
sender.send_error_message("仅玩家可用")
return True
player = sender
if len(args) >= 2 and args[0] == "buy":
item = args[1]
price = 100.0
if self.money.try_sub_money(player.name, price, f"购买{item}"):
player.send_message(f"§a购买成功!")
else:
player.send_message(f"§c余额不足!")
return True
return FalseAPI 方法一览
| 方法 | 返回值 | 说明 |
|---|---|---|
is_connected() | bool | 检查数据库连接 |
get_money(player_name) | float | 获取余额 |
set_money(player_name, amount) | None | 设置余额 |
add_money(player_name, amount, reason) | None | 增加余额 |
sub_money(player_name, amount, reason) | None | 扣除余额 |
has_money(player_name, amount) | bool | 检查余额是否足够 |
try_sub_money(player_name, amount, reason) | bool | 尝试扣款 ✨推荐 |
transfer(from, to, amount, reason) | bool | 转账 |
player_exists(player_name) | bool | 玩家是否存在 |
format_money(amount) | str | 格式化金额 |
get_currency_suffix() | str | 获取货币后缀 |
get_top_players(limit) | list | 获取排行榜 |
get_total_economy() | float | 获取服务器总经济 |
get_economy_type() | str | 获取经济类型 |
is_sync_enabled() | bool | 是否启用计分板同步 |
注意事项
必须声明依赖
你的插件必须添加 depend = ["money_core"],确保 MoneyCore 先加载并生成 API 模块。
import 位置
必须在 on_enable() 内 import,不能在文件顶部!
python
# ❌ 错误
from money_api import MoneyAPI
# ✅ 正确
def on_enable(self):
from money_api import MoneyAPI推荐使用 try_sub_money
try_sub_money 是原子操作,先检查余额再扣款,避免竞态条件。