Skip to main content

日志 & 聊天

me.log(Object msg)        // [scriptName] msg 前缀
me.warn(Object msg)
me.subChat(Object msg)    // 显示 > 开头的消息

me.chat(Object msg)            // 发送聊天信息
me.clientCommand(String msg)   // 执行客户端命令需要.开头
me.baritoneCommand(String msg) // 执行Baritone命令需要#开头

玩家 / 世界

LocalPlayer  me.getPlayer()
World        me.getWorld()
String       me.getServer()
String       me.getUsername()
boolean      me.isSingleplayer()
boolean      me.isMoving()
int          me.getFPS()
int[]        me.getDisplaySize()       // { width, height }
List<String> me.getResourcePacks()
Entity       me.getKillAuraTarget()

本模块属性读写

boolean me.getBool(String key)
int     me.getInt(String key)
double  me.getNumber(String key)
String  me.getString(String key)
void    me.setBool(String, boolean)
void    me.setInt(String, int)
void    me.setNumber(String, double)
void    me.setString(String, String)

运动 & 旋转

double[] me.getMovementDelta()                              // { x, y, z }
void     me.setMovementDelta(double x, double y, double z)

float[]  me.getRotation()                                   // { yaw, pitch }
float[]  me.getRotation(double x, double y, double z)       // 到世界点
float[]  me.getRotationsToBlock(int x, int y, int z)
float[]  me.getRotationsToEntity(Entity entity)
void     me.setRotation(float yaw, float pitch, float speed, boolean moveFix)
setRotation(moveFix=true) 必须在 player_update 事件里调,才能正确配对下一帧的 motion 包。

动作

void    me.attack(Entity target)
void    me.command(String cmdOrMessage)            // "/" 开头作为命令
void    me.dropItem(int slot)
void    me.swapItem(int invSlot, int hotbarSlot)
void    me.shiftClick(int slot)
boolean me.placeBlock(int x, int y, int z, String face, String hand)

Raytrace

Hit    me.raycast(double range)        // 实体 + 方块
Hit    me.raycastBlock(double range)   // 仅方块
Entity me.raycastEntity(double range)  // 仅实体

Target 验证

boolean me.isValidTarget(Entity e, double range, float angle, boolean checkTeam)
boolean me.isValidTarget(Entity e, double range, float angle, float expand,
                         boolean checkTeam, boolean players, boolean mobs, boolean invis)

事件派发

void        me.post(String name)
void        me.post(String name, String k, Object v)
void        me.post(String name, String k1, Object v1, String k2, Object v2)
void        me.post(Event event)
Event       me.newEvent(String name)
Map         me.callEvent(String name, Map params)

Screen

boolean me.registerScreen(String name)
void    me.openScreen(String name)
void    me.closeScreen()
boolean me.unregisterScreen(String name)

异步

void me.async(String methodName)       // 后台线程跑本脚本方法

逃生舱

Unsafe me.unsafe()                // 反射访问 MC 原生对象
返回的是Unsafe对象,反射访问工具套装。