Здесь описаны все функции, классы с их методами и хуки которые предоставляет API лаунчера Horrible.
- Техническая справка
- Глобальные функции
- Data
- Module
- ModuleManager
- Setting
- ButtonSetting
- ModeSetting
- SliderSetting
- StateSetting
- TextFieldSetting
- Level
- Block
- LocalPlayer
- Player
- Inventory
- Item
- Memory
- Константые классы
- Hooks
Прочтите этот раздел перед написанием кода, чтобы избежать вылетов приложения.
- JavaScript Движок: Rhino 1.7.7+ (Модифицированный).
- Поддерживается (ES6 Features):
- ✅ Стрелочные функции:
const func = () => { ... } - ✅ Переменные:
let,const - ✅ Шаблонные строки:
`Текст: ${переменная}` - ✅ Методы массивов:
.find(),.includes(),.map(),.filter()
- ✅ Стрелочные функции:
- НЕ Поддерживается:
- ❌
BigInt(числа вида100n) - ❌
async/await - ❌
class(работает нестабильно, используйте функции-конструкторы)
- ❌
В лаунчере действует строгая изоляция потоков. Нарушение этих правил приведет к моментальному вылету:
- ⛔ Запрещены фоновые потоки: Нельзя использовать
new java.lang.Thread(),java.util.Timer,android.os.HandlerилиExecutors. - ⛔ Запрещен доступ к UI из фона: Попытка обратиться к буферу обмена или экрану до полной загрузки мира убьет процесс.
- Правильное использование: Весь код должен запускаться синхронно через систему Module (по нажатию кнопки или переключателя в меню).
// Создаем модуль в категории Other
const myModule = new Module("TestMod", false, false, "Other");
// Создаем кнопку действия
const myBtn = new ButtonSetting("Click Me", (view) => {
// Весь код пишем здесь (это безопасно)
if (typeof LocalPlayer !== "undefined" && LocalPlayer.isInGame()) {
print(`Привет, ${LocalPlayer.getNameTag()}!`);
} else {
print("Зайдите в мир!");
}
});
// Регистрируем
myModule.addSetting(myBtn);
ModuleManager.addModule(myModule);Переменная data уже занята самим JavaScript. Если попытаться ее определить в скрипте, то Rhino может подумать что скрипт пытается ее повторно объявить.
getContext();- возвращает контекст приложения.print(String text);- выводит контекстное сообщение.preventDefault();- в зависимости от места вызова, отменяет вызов хука.getScreenName();- возвращает название игрового экрана.getFriends();- возвращает массивString[]с никами друзей изFriendManager.isFriend(String name);- возвращаетtrueесли игрок с никомnameнаходится вFriendManagerиfalseесли нет.addFriend(String name);- добавляет игрока с никомnameвFriendManager.removeFriend(String name);- удаляет игрока с никомnameизFriendManager.
Класс для сохранения любых данных скрипта в корневой папке приложения
Статические методы
-
Data.getString(String key, String defaultValue);- ищет строку с ключомkeyи возвращает ее. ВозвращаетdefaultValueесли не находит ее. -
Data.getNumber(String key, double defaultValue);- ищет число с ключомkeyи возвращает его. ВозвращаетdefaultValueесли не находит его. -
Data.getBoolean(String key, boolean defaultValue);- ищет логическое значение (true/false) с ключомkeyи возвращает его. ВозвращаетdefaultValueесли не находит его. -
Data.saveString(String key, String value);- сохраняет строку с ключомkeyи значениемvalue. -
Data.saveNumber(String key, double value);- сохраняет число с ключомkeyи значениемvalue. -
Data.saveBoolean(String key, boolean value);- сохраняет логическое значение (true/false) с ключомkeyи значениемvalue. -
Data.remove(String key);- удаляет значение с ключомkey
Класс для создания кастомных модулей (функции)
Конструктор: Module(String name, boolean toggleable, boolean bindable, String category)
Методы
-
Module.getName();- возвращает имя кастомного модуля. -
Module.isToggleable();- возвращаетtrueесли модуль можно переключать, иfalseесли нет. -
Module.isBindable();- возвращаетtrueесли модуль можно биндить, иfalseесли нет. -
Module.getCategory();- возвращает строку с названием категории в которой находится модуль. -
Module.isActive();- возвращает текущее состояние модуля (true/false). (всегда возвращаетfalseесли модуль нельзя переключать) -
Module.isBindActive();- возвращаетtrueилиfalseв зависимости от того, стоит ли бинд на модуле. (всегда возвращаетfalseесли модуль нельзя биндить) -
Module.hasSettings();- возвращаетtrueесли модуль имеет настройки, иfalseесли нет. -
Module.getSetting(String name);- ищет среди настроек модуля настройку с названиемnameи возвращает объектSetting(объект будет являться экземпляромButtonSetting,ModeSetting,SliderSetting,StateSettingилиTextFieldSettingв зависимости от типа). БросаетRuntimeExceptionесли не находит настройку. -
Module.getSettings();- возвращает массив объектовSetting. -
Module.addSetting(Setting setting);- добавляет настройку к модулю. -
Module.addSettings(Setting[] settings);- тоже самое что иModule.addSetting(Setting setting);, просто позволяет одной строкой добавить сразу несколько настроек. -
Module.setOnToggleListener(function(View view, boolean active));- добавляет действиеfunction(View view, boolean active)вызываемое при переключении модуля. -
Module.setOnClickListener(function(View view));- добавляет действиеfunction(View view)вызываемое при клике по кнопке модуля.
Статические методы
Эти методы предназначены для работы с дефолтными модулями, они делают тоже самое, что и методы выше, просто первым аргументом требуют имя метода. Бросают RuntimeException если модуль не найден. Пока что только так.
Module.isToggleable(String moduleName);Module.isBindable(String moduleName);Module.getCategory(String moduleName);Module.isActive(String moduleName);Module.isBindActive(String moduleName);Module.hasSettings(String moduleName);Module.getSettingNames(String moduleName);
Примеры: скоро.
Класс для добавления/удаления кастомных модулей
Статические методы
ModuleManager.addModule(Module module);- добавляет модуль в одну из пяти категорий меню.ModuleManager.addModules(Modules[] modules);- тоже самое, просто позволяет добавить сразу несколько модулей одной строкой.ModuleManager.removeModule(Module module);- удаляет модуль.ModuleManager.removeModules(Module[] modules);- тоже самое, просто позволяет удалить сразу несколько модулей одной строкой.ModuleManager.getModuleNames();- возвращает массив с именами всех модулей (имена кастомных модулей тоже).
Примеры: скоро.
Класс для получения какой-либо информации о настройках дефолтных модулей (ситуация та же что и с Module)
Статические методы
Setting.getType(String moduleName, String settingName);- ищет настройкуsettingNameу модуляmoduleNameи возвращает его тип.Setting.isVisible(String moduleName, String settingName);- ищет настройкуsettingNameу модуляmoduleNameи возвращает логическое значение (trueесли настройка видима иfalseесли нет).Setting.setVisibility(String moduleName, String settingName, boolean visibility);- ищет настройкуsettingNameу модуляmoduleNameи устанавливает ей видимостьvisibility(true/false).Setting.getCurrentMode(String moduleName, String settingName);- ищет настройкуsettingNameу модуляmoduleNameи возвращает текущий выбранный режим. БроситRuntimeExceptionесли тип настройки окажется неmode.Setting.getCurrentValue(String moduleName, String settingName);- ищет настройкуsettingNameу модуляmoduleNameи возвращает текущее значение ползунка. БроситRuntimeExceptionесли тип настройки окажется неslider.Setting.isActive(String moduleName, String settingName);- ищет настройкуsettingNameу модуляmoduleNameи возвращает текущее состояние. БроситRuntimeExceptionесли тип настройки окажется неstate.Setting.getText(String moduleName, String settingName);- ищет настройкуsettingNameу модуляmoduleNameи возвращает текущий текст. БроситRuntimeExceptionесли тип настройки окажется неtext-field.
Обратите внимание, что каждый из этих методов может бросить RuntimeException если вы ошибетесь в названии модуля или настройки.
Примеры: скоро.
Класс для создания настройки кнопки. Можно добавлять не только к кастомным модулям, но и к дефолтным
Конструктор: ButtonSetting(String name, function(View view));
Методы
ButtonSetting.getName();- возвращает имя настройки.ButtonSetting.getType();- возвращает"button".ButtonSetting.isVisible();- возвращаетtrueесли настройка видима иfalseесли нет.ButtonSetting.setVisibility(boolean visibility);- устанавливает настройке видимостьvisibility(true/false).
Примеры: скоро.
Класс для создания настройки режима. Можно добавлять не только к кастомным модулям, но и к дефолтным
Конструктор: ModeSetting(String name, String[] modes);
Методы
-
ModeSetting.getName();- возвращает имя настройки. -
ModeSetting.getType();- возвращает"mode". -
ModeSetting.isVisible();- возвращаетtrueесли настройка видима иfalseесли нет. -
ModeSetting.setVisibility(boolean visibility);- устанавливает настройке видимостьvisibility(true/false). -
ModeSetting.getCurrentMode();- возвращает текущий выбранный режим. -
ModeSetting.setOnModeSelectedListener(function(String mode));- устанавливает действиеfunction(String mode)выполняемое после выбора режима.
Примеры: скоро.
Класс для создания настройки ползунка. Можно добавлять не только к кастомным модулям, но и к дефолтным
Конструктор: SliderSetting(String name, [double default, double min, double max, double step]);
ВАЖНО: Второй аргумент (параметры ползунка) обязательно должен быть передан как массив в квадратных скобках
[]. Если передать числа просто через запятую, игра вылетит с ошибкойjava.lang.NullPointerException: Attempt to read from null array.
Методы
-
SliderSetting.getName();- возвращает имя настройки. -
SliderSetting.getType();- возвращает"slider". -
SliderSetting.isVisible();- возвращаетtrueесли настройка видима иfalseесли нет. -
SliderSetting.setVisibility(boolean visibility);- устанавливает настройке видимостьvisibility(true/false). -
SliderSetting.getCurrentValue();- возвращает текущее значение. -
SliderSetting.setOnCurrentValueChangedListener(function(double currentValue));- устанавливает действиеfunction(double currentValue)выполняемое после любого изменения значения.
Пример правильного использования:
// Правильно: параметры в массиве []
const speed = new SliderSetting("Скорость", [5.0, 1.0, 20.0, 0.5]);
// Неправильно: вызовет краш
const speed = new SliderSetting("Скорость", 5.0, 1.0, 20.0, 0.5); Класс для создания настройки состояния. Можно добавлять не только к кастомным модулям, но и к дефолтным
Конструктор: StateSetting(String name, boolean state);
Методы
-
StateSetting.getName();- возвращает имя настройки. -
StateSetting.getType();- возвращает"state". -
StateSetting.isVisible();- возвращаетtrueесли настройка видима иfalseесли нет. -
StateSetting.setVisibility(boolean visibility);- устанавливает настройке видимостьvisibility(true/false). -
StateSetting.isActive();- возвращаетtrueесли настройка активна иfalseесли нет. -
StateSetting.setOnStateToggleListener(function(boolean state));- устанавливает действиеfunction(boolean state)выполняемое при переключении настройки.
Примеры: скоро.
Класс для создания настройки текстового поля. Можно добавлять не только к кастомным модулям, но и к дефолтным
Конструктор: TextFieldSetting(String name, String hint, String text);
Методы
-
TextFieldSetting.getName();- возвращает имя настройки. -
TextFieldSetting.getType();- возвращает"text-field". -
TextFieldSetting.isVisible();- возвращаетtrueесли настройка видима иfalseесли нет. -
TextFieldSetting.setVisibility(boolean visibility);- устанавливает настройке видимостьvisibility(true/false). -
TextFieldSetting.getText();- возвращает текущий текст. -
TextFieldSetting.setOnTextChangedListener(function(String text));- устанавливает действиеfunction(String text)выполняемое при изменении текста.
Примеры: скоро.
Класс для работы с уровнем/сервером
Статические методы
-
Level.getAddress();- возвращает строку с адресом сервера на котором ты находишься. -
Level.getPort();- возвращает порт сервера на котором ты находишься. -
Level.getAllPlayers();- возвращает массив с айдишниками всех игроков с сервера. -
Level.getTime();- возвращает время суток в игре. -
Level.getGameSpeed();- возвращает текущую скорость игры. -
Level.addParticle(int type, double x, double y, double z, double velX, double velY, double velZ, int size);- добавляет партикл типаtypeна координатахxyzс ускорениемvelXvelYvelZи размеромsize. -
Level.setTime(int time);- устанавливает время суток в игре. -
Level.setGameSpeed(double speed);- устанавливает скорость игры. (по умолчанию 20) -
Level.setTitle(String text);- вызывает сообщение на весь экран. -
Level.setSubtitle(String text);- вызывает сообщение на весь экран но поменьше. -
Level.displayClientMessage(String text);- отправляет в чат сообщение которое видишь только ты. -
Level.showTipMessage(String text);- вызывает сообщение-подсказку. (типо как когда берешь предмет в руку)
Примеры: скоро.
Класс для работы с блоками
Статические методы
Block.getID(int x, int y, int z);- возвращает айди блока по координатамxyz.Block.getBrightness(int x, int y, int z);- возвращает яркость блока по координатамxyz.Block.getFriction(int id);- возвращает скольжение блока с айдиid.Block.isSolid(int id);- возвращаетtrueесли блок с айдиidявляется полным и наоборот. (Например, если блок является сундуком, вернетfalse)Block.setFriction(int id, double friction);- устанавливает скольжениеfrictionдля блока с айдиid.Block.setDestroyTime(int id, double time);- устанавливает длительность разрушенияtimeдля блока с айдиid.
Примеры: скоро.
Класс для работы с твоим игроком
Статические методы
-
LocalPlayer.getUniqueID();- возвращает айди твоего игрока. -
LocalPlayer.getPointedPlayer();- возвращает айди игрока на которого смотрит твой игрок. -
LocalPlayer.getPointedVector();- возвращает массив с координатами по которым направлен взгляд твоего игрока. -
LocalPlayer.attack(int playerID);- атакует игрока с айдиplayerID. -
LocalPlayer.attackTp(int playerID);- атакует игрока с айдиplayerIDтелепортируясь. Т.е. издалека. -
LocalPlayer.click(boolean rightClick);- кликает ЛКМ еслиrightClickравенfalseи ПКМ еслиtrue. -
LocalPlayer.longClick();- делает клик с зажатием. Так, например, можно кидать перлы или зельки. -
LocalPlayer.buildBlock(int x, int y, int z, int side);- ставит блок по координатамxyzсо сторонойside. -
LocalPlayer.destroyBlock(int x, int y, int z);- уничтожает блок по координатамxyz. -
LocalPlayer.openContainer(int x, int y, int z);- открывает контейнер (сундук, верстак и т.п.) по координатамxyz. -
LocalPlayer.openInventory();- открывает инвентарь. -
LocalPlayer.closeScreen();- закрывает ЛЮБОЕ окно (можно даже "закрыть" рендер игры, так что осторожнее). -
LocalPlayer.sendChatMessage(String text);- отправляет в чат сообщение от твоего лица. -
LocalPlayer.isMoveButtonPressed(int id);- возвращаетtrueесли кнопка с таким-тоidзажата иfalseесли нет. -
LocalPlayer.setMoveButtonStatus(int id, boolean status);- выдает кнопке управленияidстатусstatus. (кароче чтобы зажимать кнопку) -
LocalPlayer.setStepHeight(double height);- устанавливает высоту шага. (по дефолту 0.5625). -
LocalPlayer.setOnGround(boolean onGround);- устанавливает состояние для переменнойonGround, проще говоря, игра будет думать что вы на земле, даже если это не так. -
LocalPlayer.setSprinting(boolean sprinting);- включает или выключает спринт на 1 тик в зависимости отsprinting. -
LocalPlayer.setStatusFlag(int flag, boolean status);- устанавливает флагуflagстатусstatus. -
LocalPlayer.addEffect(int id, int duration, int amplifier, boolean showParticles);- добавляет эффект на твоего игрока. -
LocalPlayer.removeEffect(int id);- удаляет эффект с твоего игрока. -
LocalPlayer.setRot(double yaw, double pitch);- поворот головы. -
LocalPlayer.setPosition(double x, double y, double z);- телепорт по координатамxyz. -
LocalPlayer.setPositionX(double x);- телепорт поx. -
LocalPlayer.setPositionY(double y);- телепорт поy. -
LocalPlayer.setPositionZ(double z);- телепорт поz. -
LocalPlayer.setPositionRelative(double x, double y, double z);- телепорт по координатамxyzотносительно текущих. -
LocalPlayer.setPositionRelativeX(double x);- телепорт поxотносительно текущего. -
LocalPlayer.setPositionRelativeY(double y);- телепорт поyотносительно текущего. -
LocalPlayer.setPositionRelativeZ(double z);- телепорт поzотносительно текущего. -
LocalPlayer.setVelocity(double x, double y, double z);- задает ускорение поxyz. -
LocalPlayer.setVelocityX(double x);- задает ускорение поx -
LocalPlayer.setVelocityY(double y);- задает ускорение поy -
LocalPlayer.setVelocityZ(double z);- задает ускорение поz -
LocalPlayer.isInGame();- возвращаетtrueесли ты находишься в мире или на сервере и наоборот. -
LocalPlayer.getViewPerspective();- возвращает число в зависимости от выбранного вида. -
LocalPlayer.setViewPerspective(int view);- устанавливает вид (типа F5) -
LocalPlayer.isMovingForward();- вернетtrueесли игрок двигается вперед иfalseесли нет. -
LocalPlayer.getDistanceTo(int playerID);- возвращает дистанцию до игрока с айдиplayerIDв блоках. -
LocalPlayer.getDistanceToCoords(double x, double y, double z);- возвращает дистанцию до координатxyzв блоках. -
LocalPlayer.getNearestPlayer(double radius);- возвращает айди ближайшего игрока в радиусеradius. -
LocalPlayer.lookAt(int playerID);- резко поворачивает голову в сторону игрокаplayerID -
LocalPlayer.smoothLookAt(int playerID, double smoothness);- плавно поворачивает голову в сторону игрока с айдиplayerIDс плавностьюsmoothness(чтобы работало нужно использовать либо вonFastTickлибо вonLevelTick). -
LocalPlayer.getNameTag();- возвращает строку с никнеймом. -
LocalPlayer.setNameTag(String nameTag);- визуально меняет ник наnameTag. -
LocalPlayer.getHealth();- возвращает текущее здоровье. -
LocalPlayer.getYaw();- возвращает поворот головы по горизонтали в градусах. -
LocalPlayer.getPitch();- возвращает поворот головы по вертикали в градусах. -
LocalPlayer.getPositionX();- возвращает позицию поx. -
LocalPlayer.getPositionY();- возвращает позицию поy. -
LocalPlayer.getPositionZ();- возвращает позицию поz. -
LocalPlayer.getVelocityX();- возвращает ускорение поx. -
LocalPlayer.getVelocityY();- возвращает ускорение поy. -
LocalPlayer.getVelocityZ();- возвращает ускорение поz. -
LocalPlayer.getCollisionSize();- возвращает массив с размерами хитбокса по горизонтали и вертикали. -
LocalPlayer.getStatusFlag(int flag);- возвращаетtrueесли флагflagактивен и наоборот. -
LocalPlayer.getFallDistance();- возвращает дистанцию с которой падает игрок. -
LocalPlayer.isInCreativeMode();- возвращаетtrueесли игрок находится в креативе и наоборот. -
LocalPlayer.isInLava();- возвращаетtrueесли игрок находится в лаве. -
LocalPlayer.isInvisible();- возвращаетtrueесли игрок находится под эффектом невидимости. -
LocalPlayer.isInWall();- возвращаетtrueесли игрок находится в блоках. -
LocalPlayer.isInWater();- возвращаетtrueесли игрок находится в воде. -
LocalPlayer.isOnFire();- возвращаетtrueесли игрок находится в огне. -
LocalPlayer.isOnGround();- возвращаетtrueесли игрок находится на земле. -
LocalPlayer.isFalling();- возвращаетtrueесли игрок падает. -
LocalPlayer.isImmobile();- возвращаетtrueесли игрок не может двигаться. -
LocalPlayer.isSitting();- возвращаетtrueесли игрок сидит. -
LocalPlayer.isSneaking();- возвращаетtrueесли игрок на шифте. -
LocalPlayer.isAlive();- возвращаетtrueесли игрок живой. -
LocalPlayer.isOnLadder();- возвращаетtrueесли игрок находится на лестнице. -
LocalPlayer.canFly();- возвращаетtrueесли игрок может летать. -
LocalPlayer.canShowNameTag();- возвращаетtrueесли ник игрока видимый.
Примеры: скоро.
Класс для работы с игроками на сервере
Статические методы
Player.isLocalPlayer(int playerID);- возвращаетtrueесли игрок является локальным игроком (тобой).Player.getNameTag(int playerID);- возвращает никнейм игрока.Player.setNameTag(int playerID, String nameTag);- визуально меняет ник игроку с айдиplayerIDнаnameTag.Player.getYaw(int playerID);- возвращает поворот головы по горизонтали в градусах.Player.getPitch(int playerID);- возвращает поворот головы по вертикали в градусах.Player.getPositionX(int playerID);- возвращает позицию поx.Player.getPositionY(int playerID);- возвращает позицию поy.Player.getPositionZ(int playerID);- возвращает позицию поz.Player.getVelocityX(int playerID);- возвращает ускорение поx.Player.getVelocityY(int playerID);- возвращает ускорение поy.Player.getVelocityZ(int playerID);- возвращает ускорение поz.Player.getCollisionSize(int playerID);- возвращает массив с размерами хитбокса игрока по горизонтали и вертикали.Player.setCollisionSize(int playerID, double horizontal, double vertical);- устанавливает размеры хитбокса игрока по горизонталиhorizontalи по вертикалиvertical.Player.setShadowRadius(int playerID, double radius);- устанавливает радиусradiusтеней игрока.Player.getStatusFlag(int playerID, int flag);- возвращаетtrueесли у игрока активен флагflagи наоборот.Player.getFallDistance(int playerID);- возвращает дистанцию с которой падает игрок.Player.isInCreativeMode(int playerID);- возвращаетtrueесли игрок находится в креативе и наоборот.Player.isInLava(int playerID);- возвращаетtrueесли игрок находится в лаве.Player.isInvisible(int playerID);- возвращаетtrueесли игрок находится под эффектом невидимости.Player.isInWall(int playerID);- возвращаетtrueесли игрок находится в блоках.Player.isInWater(int playerID);- возвращаетtrueесли игрок находится в воде.Player.isInWorld(int playerID);- возвращаетtrueесли игрок находится на сервере.Player.isOnFire(int playerID);- возвращаетtrueесли игрок находится в огне.Player.isOnGround(int playerID);- возвращаетtrueесли игрок находится на земле.Player.isFalling(int playerID);- возвращаетtrueесли игрок падает.Player.isImmobile(int playerID);- возвращаетtrueесли игрок не может двигаться.Player.isSitting(int playerID);- возвращаетtrueесли игрок сидит.Player.isSneaking(int playerID);- возвращаетtrueесли игрок на шифте.Player.isAlive(int playerID);- возвращаетtrueесли игрок живой.Player.isOnLadder(int playerID);- возвращаетtrueесли игрок находится на лестнице.Player.canFly(int playerID);- возвращаетtrueесли игрок может летать.Player.canShowNameTag(int playerID);- возвращаетtrueесли ник игрока видимый.
Аргумент playerID - это айди игрока.
Примеры: скоро.
Класс для работы с твоим инвентарем
Статические методы
Inventory.swapSlots(int fromSlot, int toSlot);- меняет слотыfromSlotиtoSlotместами.Inventory.dropSlot(int slot, boolean dropAll, boolean deleteDrop);- выкидывает предмет из слотаslot. Если dropAll равенtrue- выкидывает весь стак. Если deleteDrop равенtrue- удаляет выкидываемый предмет.Inventory.clearSlot(int slot);- очищает слотslot.Inventory.getSelectedSlot();- возвращает айди выбранного слота.Inventory.getOffhandSlot();- возвращает айди предмета в левой руке.Inventory.getArmor(int armorSlot);- возвращает айди предмета в слоте брониarmorSlot(от 0 до 3).Inventory.setSelectedSlot(int slot);- выбирает слотslotиз хотбара (от 0 до 8).Inventory.setOffhandSlot(int slot);- перемещает предмет из слотаslotв левую руку.Inventory.setArmor(int slot, int armorSlot, int freeSlot);- надевает предмет из слотаslotв слот брониarmorSlot, и перетаскивает броню (если она есть) из слотаarmorSlotв слотfreeSlot.
Примеры: скоро.
Класс для работы с предметами из твоего инвентаря
Статические методы
Item.getID(int slot);- возващает айди предмета из слотаslot.Item.getData(int slot);- возвращает вторичный айди предмета из слотаslot. (Например, если предмет в слотеslot- диорит, то вернет 3).Item.getName(int slot);- возвращает имя предмета из слотаslot.Item.enchant(int slot, int enchantment, int level);- зачаровывает предмет из слотаslotнаenchantmentс уровнемlevel.Item.getUseDuration(int slot);- возвращает длительность использования предмета из слотаslot.Item.getMaxStackSize(int slot);- возвращает максимальный размер стака предмета из слотаslot.Item.getMaxDamage(int slot);- возвращает максимальную прочность предмета из слотаslot.Item.getDamage(int slot);- возвращает текущую прочность предмета из слотаslot.Item.getCount(int slot);- возвращает текущее количество предметов в слотеslot.Item.isArmor(int slot);- возвращаетtrueесли предмет из слотаslotявляется броней.Item.isBlock(int slot);- возвращаетtrueесли предмет из слотаslotявляется блоком.Item.isDamageable(int slot);- возвращаетtrueесли предмет из слотаslotимеет прочность.Item.isStackable(int slot);- возвращаетtrueесли предмет из слотаslotстакается.Item.isFullStack(int slot);- возвращаетtrueесли в слотеslotнаходится стак любых предметов.Item.isThrowable(int slot);- возвращаетtrueесли предмет из слотаslotможно метать. (перл, снежок и т.п.)Item.isDamaged(int slot);- возвращаетtrueесли предмет из слотаslotимеет не полную прочность.Item.isPotion(int slot);- возвращаетtrueесли предмет из слотаslotявляется зельем.Item.isEnchanted(int slot);- возвращаетtrueесли предмет из слотаslotзачарован.Item.setName(int slot, String name);- изменяет имя предмета из слотаslotнаname.Item.setUseDuration(int slot, int duration);- устанавливает предмету из слотаslotдлительность использованияduration.Item.setCount(int slot, int count);- устанавливает количество предметов из слотаslotнаcount.
Примеры: скоро.
Класс для работы с памятью (ТОЛЬКО ДЛЯ ОСОБО УМНЫХ)
Статические методы
-
Memory.write(int address, int[] patch);- редактирует участок памяти по адресуaddressнаpatch. -
Memory.read(int address, int length);- читает и возвращает строку байтов с адресаaddressв количествеlength. -
Memory.getLibrary();- возвращает адрес либы майна. -
Memory.getSymbol(String symbol);- возвращает адрес символаsymbolотносительно либы. -
Memory.getPlayer(int playerID);- возвращает адрес игрока с айдиplayerIDвнутри игры. -
Memory.getLocalPlayer();- возвращает адрес локального игрока (твой). -
Memory.getGameMode();- возвращает адрес объектаGameMode. -
Memory.getHitResult();- возвращает адрес объектаHitResult. -
Memory.getLevel();- возвращает адрес объектаLevel. -
Memory.getDimension();- возвращает адрес объектаDimension. -
Memory.getLevelRenderer();- возвращает адрес объектаLevelRenderer. -
Memory.getOptions();- возвращает адрес объектаOptions. -
Memory.getTimer();- возвращает адрес объектаTimer. -
Memory.getString(int address, int offset);- возвращает строку с адресаaddressи смещениемoffset. -
Memory.getBoolean(int address, int offset);- возвращает логическое значение с адресаaddressи смещениемoffset. -
Memory.getInt(int address, int offset);- возвращает число с адресаaddressи смещениемoffset. -
Memory.getFloat(int address, int offset);- возвращает число с плавающей точкой с адресаaddressи смещениемoffset. -
Memory.getChar(int address, int offset);- возвращает символ с адресаaddressи смещениемoffset. -
Memory.setString(int address, int offset, String value);- заменяет строку по адресуaddressи смещениемoffsetнаvalue. -
Memory.setBoolean(int address, int offset, boolean value);- заменяет логическое значение по адресуaddressи смещениемoffsetнаvalue. -
Memory.setInt(int address, int offset, int value);- заменяет число по адресуaddressи смещениемoffsetнаvalue. -
Memory.setFloat(int address, int offset, float value);- заменяет число с плавающей точкой по адресуaddressи смещениемoffsetнаvalue. -
Memory.setChar(int address, int offset, char value);- заменяет символ по адресуaddressи смещениемoffsetнаvalue.
Внимание: этот класс очень опасная хуйня, если не шарите - не рекомендую вообще к нему прикасаться, иначе ни один метод не будет делать ничего, кроме как вызывать краш игры.
Примеры: скоро.
Константы категорий модулей. Используются при создании модуля в конструкторе new Module(...) для определения вкладки, в которой он появится.
ModuleCategory.COMBAT- Боевые модули. Сдесь лежат: KillAura, Aimbot, HitAim.ModuleCategory.MOVEMENT- Модули движения. Сдесь лежат: AirJump, Move, JetPack.ModuleCategory.PLAYER- Модули игрока. Сдесь лежат: AntiAFK, AutoClicker, AutoSprint.ModuleCategory.MISC- Разное (Miscellaneous). Сдесь лежат: ArmorHud, AspectRatio, Chams, ChatMacros.ModuleCategory.OTHER- Другое. Дополнительная категория для скрипт менеджера, конфиги, гост мод.
Константы клавиш управления движением. Используются в методах LocalPlayer.isMoveButtonPressed(id) и LocalPlayer.setMoveButtonStatus(id, status).
MoveButton.JUMP- Кнопка прыжка. На суше заставляет игрока подпрыгнуть, в воде — плыть вверх.MoveButton.SHIFT- Кнопка приседания (Sneak). Игрок передвигается медленно, скрывает свой никнейм и не падает с края блоков. А еще тут можно заняться КЕКС.MoveButton.JUMP_IN_FLIGHT- Кнопка набора высоты в режиме полета (Creative). Работает только если игрок уже находится в режиме полета.MoveButton.FORWARD- Кнопка движения вперед. Перемещает игрока в ту сторону, куда направлен его взгляд.MoveButton.BACK- Кнопка движения назад. Перемещает игрока спиной вперед.MoveButton.LEFT- Кнопка движения (стрейфа) влево. Перемещает игрока влево относительно его взгляда.MoveButton.RIGHT- Кнопка движения (стрейфа) вправо. Перемещает игрока вправо относительно его взгляда.MoveButton.LEFT_TOP- Кнопка диагонального движения: Вперед + Влево. Обычно используется на сенсорных крестовинах (D-Pad).MoveButton.RIGHT_TOP- Кнопка диагонального движения: Вперед + Вправо. Обычно используется на сенсорных крестовинах (D-Pad).
Тип отправляемого пакета, нужно для onSendPacket (ЭТО ТОЖЕ ТОЛЬКО ДЛЯ ОСОБО УМНЫХ)
PacketType.ADD_BEHAVIOR_TREE_PACKET
PacketType.ADD_ENTITY_PACKET
PacketType.ADD_ITEM_ENTITY_PACKET
PacketType.ADD_ITEM_PACKET
PacketType.ADD_PAINTING_PACKET
PacketType.ADD_PLAYER_PACKET
PacketType.ADVENTURE_SETTINGS_PACKET
PacketType.ANIMATE_PACKET
PacketType.AVAILABLE_COMMANDS_PACKET
PacketType.BLOCK_ENTITY_DATA_PACKET
PacketType.BLOCK_EVENT_PACKET
PacketType.BLOCK_PICK_REQUEST_PACKET
PacketType.BOSS_EVENT_PACKET
PacketType.CAMERA_PACKET
PacketType.CHANGE_DIMENSION_PACKET
PacketType.CHUNK_RADIUS_UPDATED_PACKET
PacketType.CLIENT_TO_SERVER_HANDSHAKE_PACKET
PacketType.COMMAND_BLOCK_UPDATE_PACKET
PacketType.CONTAINER_CLOSE_PACKET
PacketType.CONTAINER_OPEN_PACKET
PacketType.CONTAINER_SET_CONTENT_PACKET
PacketType.CONTAINER_SET_DATA_PACKET
PacketType.CONTAINER_SET_SLOT_PACKET
PacketType.CRAFTING_DATA_PACKET
PacketType.CRAFTING_EVENT_PACKET
PacketType.DISCONNECT_PACKET
PacketType.DROP_ITEM_PACKET
PacketType.ENTITY_EVENT_PACKET
PacketType.ENTITY_FALL_PACKET
PacketType.EXPLODE_PACKET
PacketType.FULL_CHUNK_DATA_PACKET
PacketType.GAME_RULES_CHANGED_PACKET
PacketType.HURT_ARMOR_PACKET
PacketType.INVENTORY_ACTION_PACKET
PacketType.INTERACT_PACKET
PacketType.ITEM_FRAME_DROP_ITEM_PACKET
PacketType.LEVEL_EVENT_PACKET
PacketType.LEVEL_SOUND_EVENT_PACKET
PacketType.LOGIN_PACKET
PacketType.MAP_INFO_REQUEST_PACKET
PacketType.MINING_FATIGUE_PARTICLE
PacketType.MOB_ARMOR_EQUIPMENT_PACKET
PacketType.MOB_EFFECT_PACKET
PacketType.MOB_EQUIPMENT_PACKET
PacketType.MOVE_ENTITY_PACKET
PacketType.MOVE_PLAYER_PACKET
PacketType.PLAYER_ACTION_PACKET
PacketType.PLAYER_INPUT_PACKET
PacketType.PLAYER_LIST_PACKET
PacketType.PLAY_SOUND_PACKET
PacketType.PLAY_STATUS_PACKET
PacketType.PURCHASE_RECEIPT_PACKET
PacketType.REMOVE_BLOCK_PACKET
PacketType.REMOVE_ENTITY_PACKET
PacketType.REPLACE_ITEM_IN_SLOT_PACKET
PacketType.REQUEST_CHUNK_RADIUS_PACKET
PacketType.RESPAWN_PACKET
PacketType.RESOURCE_PACK_CHUNK_DATA_PACKET
PacketType.RESOURCE_PACK_CHUNK_REQUEST_PACKET
PacketType.RESOURCE_PACK_DATA_INFO_PACKET
PacketType.RESOURCE_PACK_STACK_PACKET
PacketType.RESOURCE_PACKS_INFO_PACKET
PacketType.RIDER_JUMP_PACKET
PacketType.SERVER_TO_CLIENT_HANDSHAKE_PACKET
PacketType.SET_COMMANDS_ENABLED_PACKET
PacketType.SET_DIFFICULTY_PACKET
PacketType.SET_ENTITY_DATA_PACKET
PacketType.SET_ENTITY_LINK_PACKET
PacketType.SET_ENTITY_MOTION_PACKET
PacketType.SET_HEALTH_PACKET
PacketType.SET_PLAYER_GAME_TYPE_PACKET
PacketType.SET_TIME_PACKET
PacketType.SET_TITLE_PACKET
PacketType.SHOW_CREDITS_PACKET
PacketType.SHOW_STORE_OFFER_PACKET
PacketType.SIMPLE_EVENT_PACKET
PacketType.SPAWN_EXPERIENCE_ORB_PACKET
PacketType.START_GAME_PACKET
PacketType.STOP_SOUND_PACKET
PacketType.STRUCTURE_BLOCK_UPDATE_PACKET
PacketType.TAKE_ITEM_ENTITY_PACKET
PacketType.TEXT_PACKET
PacketType.TRANSFER_PACKET
PacketType.UPDATE_ATTRIBUTES_PACKET
PacketType.UPDATE_BLOCK_PACKET
PacketType.UPDATE_EQUIP_PACKET
PacketType.UPDATE_TRADE_PACKET
PacketType.USE_ITEM_PACKETКонстанты типов зачарований. Используются в методе Item.enchant(slot, enchantment, level).
Enchantment.PROTECTION- Защита. Снижает общий получаемый урон от большинства источников.Enchantment.FIRE_PROTECTION- Огнестойкость. Снижает урон от огня и лавы, а также уменьшает время горения.Enchantment.FEATHER_FALLING- Невесомость. Снижает урон от падения и телепортации эндер-жемчугом.Enchantment.BLAST_PROTECTION- Взрывоустойчивость. Снижает урон от взрывов (криперов, тнт).Enchantment.PROJECTILE_PROTECTION- Защита от снарядов. Снижает урон от стрел, трезубцев и фаерболов.Enchantment.THORNS- Шипы. С шансом наносит урон противнику, который вас ударил.Enchantment.RESPIRATION- Подводное дыхание. Увеличивает время, которое можно провести под водой без потери воздуха.Enchantment.AQUA_AFFINITY- Подводник. Убирает штраф к скорости добычи блоков под водой.Enchantment.DEPTH_STRIDER- Подводная ходьба. Увеличивает скорость передвижения (плавания) под водой.Enchantment.SHARPNESS- Острота. Увеличивает урон в ближнем бою по всем мобам.Enchantment.SMITE- Небесная кара. Увеличивает урон по нежити (зомби, скелеты, визеры).Enchantment.BANE_OF_ARTHROPODS- Бич членистоногих. Увеличивает урон по паукам, чешуйницам и пчелам.Enchantment.KNOCKBACK- Отдача. Отбрасывает противника назад при ударе мечом.Enchantment.FIRE_ASPECT- Заговор огня. Поджигает противника при ударе мечом.Enchantment.LOOTING- Добыча. Увеличивает количество предметов, выпадающих с убитых мобов.Enchantment.EFFICIENCY- Эффективность. Увеличивает скорость разрушения блоков инструментами.Enchantment.SILK_TOUCH- Шелковое касание. Позволяет добыть блок в его исходном виде (например, камень вместо булыжника или руду вместо алмазов).Enchantment.UNBREAKING- Прочность. Увеличивает срок службы предмета (он медленнее теряет прочность).Enchantment.FORTUNE- Удача. Увеличивает количество ресурсов, выпадающих из руды, или шанс выпадения редких предметов (семена, саженцы).Enchantment.POWER- Сила. Увеличивает урон при стрельбе из лука.Enchantment.PUNCH- Откидывание. Отбрасывает противника назад при попадании из лука.Enchantment.FLAME- Воспламенение. Стрелы поджигают цель при попадании.Enchantment.INFINITY- Бесконечность. Позволяет стрелять из лука, не тратя стрелы (при наличии хотя бы одной стрелы в инвентаре).Enchantment.LUCK_OF_THE_SEA- Везучий рыбак. Повышает шанс поймать сокровище и снижает шанс выловить мусор.Enchantment.LURE- Приманка. Уменьшает время ожидания поклевки при рыбалке.Enchantment.FROST_WALKER- Ледоход. Превращает воду под ногами в лед при ходьбе и защищает от урона магма-блоков.Enchantment.MENDING- Починка. Автоматически чинит предмет за счет подбираемого опыта.
Константы типов визуальных частиц (партиклов). Используются в методе Level.addParticle(type, x, y, z, ...).
ParticleType.BUBBLE- Пузырьки. Обычно появляются под водой или когда сущность тонет.ParticleType.CRITICAL- Критический удар. Коричневые звездочки, вылетающие при нанесении критического урона (в прыжке).ParticleType.EXPLODE- Взрыв. Маленькое облачко дыма от взрыва.ParticleType.EVAPORATION- Испарение. Белый дым, появляющийся, например, когда вода касается лавы.ParticleType.FLAME- Пламя. Маленькие огоньки, исходящие от факелов, спаунеров или горящих мобов.ParticleType.LAVA- Лава. Оранжевые искры, вылетающие из лавы.ParticleType.RED_DUST- Красная пыль. Частицы, исходящие от редстоуна или редстоун-факелов.ParticleType.SNOW_BALL_POOF- Разрушение снежка. Эффект при попадании снежком в блок или сущность.ParticleType.LARGE_EXPLODE- Большой взрыв. Большое облако дыма (как от ТНТ).ParticleType.ULTRA_LARGE_EXPLODE- Гигантский взрыв. Огромное облако дыма (как от шара Гаста).ParticleType.MOB_FLAME- Огонь мобов. Огонь, который появляется рядом с горящим спаунером мобов.ParticleType.HEART- Сердечки. Появляются при размножении или приручении животных.ParticleType.TERRAIN- Разрушение блока. Частицы, вылетающие при ломании блоков (текстура зависит от блока под ногами).ParticleType.TOWN_AURA- Аура города. Серые частицы, парящие над мицелием (грибным биомом).ParticleType.PORTAL- Портал. Фиолетовые частицы, летающие вокруг портала в Незер или Эндерменов.ParticleType.WATER_SPLASH- Брызги воды. Эффект удара об воду.ParticleType.WATER_WAKE- След на воде. Появляется за плывущей лодкой или рыбой.ParticleType.DRIP_WATER- Капающая вода. Капли, падающие с потолка, если над блоком вода.ParticleType.DRIP_LAVA- Капающая лава. Капли, падающие с потолка, если над блоком лава.ParticleType.FALLING_DUST- Падающая пыль. Эффект осыпания песка или гравия, висящих в воздухе.ParticleType.SLIME- Слизь. Зеленые частицы, вылетающие при прыжках слизней.ParticleType.RAIN_SPLASH- Брызги дождя. Эффект удара капель дождя о землю.ParticleType.VILLAGE_ANGRY- Злость жителя. Грозовые тучки над головой жителя (отказ от торговли или удар).ParticleType.VILLAGE_HAPPY- Радость жителя. Зеленые звездочки (успешная торговля или использование костной муки).ParticleType.ENCHANTING_TABLE- Знаки чародея. Глифы, летящие от книжных полок к столу зачарования.ParticleType.NOTE- Нота. Цветные ноты, вылетающие из нотного блока.
Все игровые хуки на данный момент
onScriptEnabled();- вызывается после включения скрипта.onScriptDisabled();- вызывается до выключения скрипта.onFastTick();- вызывается 1000 раз за секунду. Примечание: не игровой хук.onLevelTick();- вызывается 20 раз за секунду.onAttack(int playerID);- вызывается когда ты бьешь игрока.playerID- айди игрока которого ты ударил. Для этого хука можно использоватьpreventDefault();(наебал, нельзя).onPlayerAdded(int playerID);- вызывается когда на сервер заходит игрока.playerID- айди игрока который зашел.onUseItem(int x, int y, int z, int side, int itemId, int blockId);- вызывается когда ты нажимаешь по блоку.x,y,z- координаты блока,side- сторона блока по которой ты нажал,itemId- айди предмета которым ты нажал,blockId- айди блока по которому ты нажал. Для этого хука можно использоватьpreventDefault();.onTeleport(int playerID, int x, int y, int z);- вызывается когда игрок телепортируется.playerID- айди игрока который телепортировался,x,y,z- координаты куда он телепортировался.onChat(String text);- вызывается когда ты пишешь сообщение в чат.text- текст твоего сообщения. Для этого хука можно использоватьpreventDefault();.onReceiveServerMessage(String message);- вызывается когда в чат отправляется сообщение от сервера/игрока. Для этого хука можно использоватьpreventDefault();.onScreenChange(String screen);- вызывается когда ты переходишь между игровыми экранами.screen- экран на который ты перешел.onServerConnect(String address, int port);- вызывается когда ты заходишь на сервер.address- адрес сервера,port- порт сервера.onServerDisconnect();- вызывается когда ты выходишь с сервера.onSendPacket(String name, int address);- вызывается при отправке пакета.name- название пакета,address- адрес пакета в памяти. Для этого хука можно использоватьpreventDefault();. (ТОЖЕ ТОЛЬКО ДЛЯ ОСОБО УМНЫХ)