MiaoScript/src/main/resources/script.yml

114 lines
4.5 KiB
YAML

#脚本名称
#xxxxx:
# 脚本表达式
# expression: | [这里写"|"则下方缩进均为一行 请看案例]
# if( x = y ) {
# 省略代码
# }
# expression: "Player.getDisplayName()"
# PS: JS表达式 支持调用Bukkit的内部方法
# 当前支持Bukkit(Server),Player,Event
# Bukkit(或Server): 调用的是服务器数据
# - getOnlinePlayer().size(): 在线玩家数量
# - broadcastMessage('xxx'): 公告xxx
# - getConsoleSender(): 获得控制台
# - dispatchCommand(Bukkit.getConsoleSender(),"xxx"): 控制台执行xxx命令
# - dispatchCommand(Player,"xxx"): 玩家执行xxx命令
# 更多的方法请查询: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Bukkit.html
#
# Player: 调用玩家对象 常用方法有:
# - getName(): 玩家名称
# - getDisplayName(): 玩家显示名称
# - hasPermission("xxx"): 判断玩家是否有xxx权限
# - sendMessage("xxx"): 向玩家发送xxx消息
# - isOp():是否为OP
# - setFlying(true 或 false): 设置飞行
# - setHealth(20): 设置玩家血量
# 更多的方法请查询: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/Player.html
#
# Event: 调用事件 不同事件有不同的参数 常用方法如下:
# - setCancelled(true): 用于取消事件
# 更多的方法请查询: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/player/PlayerEvent.html
#
# Data: 数据库支持
# - get("def") 获得默认数据库配置 详见config.yml
# 例:
# var db = Data.get("def");
# == 创建表 ======================================
# var sql = 'CREATE TABLE IF NOT EXISTS `MiaoScript` ( `id` INTEGER PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(30), `script` VARCHAR(600)) ENGINE = InnoDB DEFAULT CHARSET=UTF8"';
# db.execute(sql);
#增删改 返回值为数据库改动条数
# == 插入数据 ====================================
# var sql = 'INSERT INTO `MiaoScript` (`name`, `script`) VALUES ("setOp", "Player.setOp(false)")';
# var result = db.update(sql);
# if ( result >1 ){
# Log.info("数据添加成功!");
# }
# == 更新数据 ====================================
# var sql = 'UPDATE `MiaoScript` SET `script` = "Player.setOp(true)" WHERE name = "setOp"';
# var result = db.update(sql);
# == 删除数据 ====================================
# var sql = 'DELETE FROM `MiaoScript` WHERE name = "setOp"';
# var result = db.update(sql);
# ===============================================
# [Config, PlayerConfig(玩家数据)]: 调用数据存储 若崩服数据可能丢失
# - set("key","value"): 保存一条键为key值为value的数据
# - get("key"): 获得键为key的值
# - getStringList("dirChat"): 获得键为dirChat的字符串列表
# - save(): 保存数据到硬盘
# 更多的方法请查询: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/configuration/ConfigurationSection.html
#
# Log: 调用插件日志系统
# - info("xxx"): 输出信息xxx到日志
# - warning("xxx"): 输出警告xxx
# 更多的方法请查询: http://docs.oracle.com/javase/7/docs/api/java/util/logging/Logger.html
#
# type: "boolean" 或 "string" 不写 默认为string
# #下面两个参数 当type为boolean时才有效
# trueResult: '&c管理员' [脚本返回True时的返回值]
# falseResult: '&a玩家' [脚本返回False时的返回值]
#
#脚本名称
welcome:
#脚本表达式
expression: 'file: welcome.js'
#物品丢弃检测
checkDrop:
expression: |
function handle(Event){
if( Event.getItemDrop().getItemStack().getType().name().contains("DIAMOND") ){
Player.sendMessage("&6[&b警告&6] &c您可能丢弃了一件贵重物品!");
}
}
#获得玩家前缀
getPrefix:
expression: Player.isOp()
#脚本返回值
type: boolean
#脚本返回True时的返回值
trueResult: '&c管理员'
#脚本返回False时的返回值
falseResult: '&a玩家'
#获取玩家的显示名称
getDisplayName:
expression: Player.getDisplayName()
type: string
#开启玩家飞行模式
flyon:
expression: 'Player.setAllowFlight(true);Player.sendMessage("&6[&bMiaoScript&6] &a已为您开启飞行模式!")'
#关闭玩家飞行模式
flyoff:
expression: |
Player.setAllowFlight(false);
Player.sendMessage("&6[&bMiaoScript&6] &a已为您关闭飞行模式!");
#top命令
top:
expression: |
Player.teleport(Player.getWorld().getHighestBlockAt(Player.getLocation()).getLocation());
commands: [top]