Skript 2.15.3 中文开发手册

第一章:Skript简介

什么是 Skript

Skript 是一个运行在 Bukkit / Spigot / Paper 服务端上的脚本插件。

它允许服务器管理员使用接近自然语言的语法开发功能,而无需编写 Java 插件。

on join:
    send "欢迎来到服务器!" to player

第二章:脚本结构

options:
    prefix: &6[服务器]

variables:
    {join-count} = 0

on join:
    add 1 to {join-count}
    send "{@prefix} 欢迎来到服务器"

第三章:变量系统

普通变量

set {money} to 100

玩家变量

set {money.%player%} to 100

UUID变量

set {money.%player's uuid%} to 100

列表变量

add player to {online::*}

第四章:事件系统

on join:
    send "欢迎"

on quit:
    broadcast "%player% 离开了服务器"

on death:
    broadcast "%victim% 死亡了"

第五章:命令系统

command /hello:
    trigger:
        send "Hello"

权限命令

command /admin:
    permission: admin.use
    permission message: 无权限
    trigger:
        send "管理员面板"

第六章:函数系统

function hello():
    broadcast "Hello World"

返回值

function getMoney(p: player) :: number:
    return {money.%{_p}'s uuid%}

第七章 GUI 菜单开发

创建基础菜单

command /menu:
    trigger:
        open chest inventory with 3 rows named "&6主菜单" to player

添加物品

set slot 13 of player's current inventory to diamond named "&b充值中心"

点击事件

on inventory click:
    if name of event-inventory is "&6主菜单":
        cancel event

第八章 Inventory GUI 实战

商店菜单

command /shop:
    trigger:
        open chest inventory with 6 rows named "&a服务器商店" to player
        set slot 10 of player's current inventory to diamond

购买逻辑

on inventory click:
    if name of event-inventory is "&a服务器商店":
        cancel event
        if clicked slot is 10:
            remove 100 from {money.%player's uuid%}
            give diamond to player

第九章 MySQL 数据库

数据库变量

variables:
    {money::*}

推荐使用插件:SkBee、skript-db。

保存玩家数据

on quit:
    set {money.%player's uuid%} to balance of player

第十章 BossBar 开发

创建BossBar

send bossbar "&a欢迎来到服务器" with progress 100 to player

删除BossBar

remove all bossbars from player

第十一章 Scoreboard 开发

基础记分板

set name of sidebar of player to "&6服务器"
set score "&a金币" in sidebar of player to 100

第十二章 NBT 开发(SkBee)

设置NBT

set nbt tag "pay_item" of player's tool to "true"

判断NBT

if nbt tag "pay_item" of player's tool is "true":
    send "这是支付物品"

第十三章 SkBee 开发

JSON消息

send json "{""text"":""点击领取奖励""}" to player

粒子效果

draw sphere of flame at player with radius 2

第十四章 Minecraft支付二维码地图

生成二维码图片

Java后台生成二维码:

BufferedImage image = MatrixToImageWriter.toBufferedImage(matrix);

Skript接收二维码地址

command /pay:
    trigger:
        send "&a正在生成支付二维码..."

地图展示

推荐由 Java 插件将二维码渲染至 128×128 MapView。

第十五章 大型服务器架构实践

推荐分层:

scripts/
├─ command/
├─ gui/
├─ player/
├─ economy/
├─ pay/
├─ task/
└─ util/

性能优化

避免:

loop all players:

每Tick执行。

推荐:

every 5 seconds:

执行批量任务。

第十六章 PlaceholderAPI 集成

send "%player_name%" to player

自定义占位符:

set {_money} to placeholder "vault_eco_balance" from player

第十七章 实战:签到系统

command /sign:
    trigger:
        if {sign.%player's uuid%} is today:
            send "今天已签到"
            stop
        set {sign.%player's uuid%} to today
        add 100 to {money.%player's uuid%}

第十八章 实战:礼包码系统

command /redeem <text>:
    trigger:
        if arg-1 is "VIP2026":
            give diamond to player

第十九章 实战:服务器公告系统

every 10 minutes:
    broadcast "&6欢迎来到服务器"
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐