Исходник [1.5.0] moonly / MoonLoader project manager

Musaigen

ihatemyself
Автор темы
Проверенный
1,708
1,596
Со следующих версий в константах можно будет бандлить константы любого типа (раньше только null, числа, строки и boolean). Пример:
JSON:
"constants": {
  "MOONLY_NIL": null,
  "MOONLY_STR": "string",
  "MOONLY_BUNDLED": true,
  "MOONLY_BUNDLE_TIMESTAMP": "<$date>",
  "MOONLY_EMPTY_ARR": [],
  "MOONLY_EMPTY_OBJ": {},
  "MOONLY_ARR": [
    "test",
    true,
    [
      "another array"
    ]
  ],
  "MOONLY_OBJECT": {
    "meta_info": {
      "version": 1.0,
      "is_active": true,
      "description": "Тестовый файл для проверки форматтера",
      "tags": [
        "json",
        "test",
        "formatter",
        "development"
      ],
      "created_at": "2023-10-27T10:00:00Z"
    },
    "data_types": {
      "integer_positive": 42,
      "integer_negative": -15,
      "float_number": 3.14159,
      "scientific_notation": 1.23e-4,
      "null_value": null,
      "empty_string": "",
      "unicode_string": "Привет, мир! 你好世界 🌍"
    },
    "nesting_test": {
      "level_1": {
        "level_2": {
          "level_3": {
            "level_4": {
              "deep_value": "Я очень глубоко",
              "date": "<$date>"
            }
          }
        }
      }
    },
    "complex_arrays": [
      1,
      "two",
      true,
      null,
      {
        "nested_object_in_array": "value"
      },
      [
        "nested",
        "array"
      ]
    ],
    "special_characters": {
      "new_line": "Строка 1\nСтрока 2",
      "tabulation": "Табуляция\tздесь",
      "quotes": "Кавычки \"внутри\" строки",
      "backslash": "Путь C:\\Users\\Admin",
      "slash": "URL https://example.com/path"
    },
    "edge_cases": {
      "empty_object": {},
      "empty_array": [],
      "zero": 0,
      "false_value": false,
      "very_long_string": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
    }
  }
},
Итог:
Lua:
MOONLY_BUNDLE_TIMESTAMP = 1771322019890
MOONLY_ARR = {
  "test",
  true,
  {
    "another array"
  }
}
MOONLY_BUNDLED = true
MOONLY_EMPTY_ARR = {}
MOONLY_STR = "string"
MOONLY_OBJECT = {
  ["complex_arrays"] = {
    1,
    "two",
    true,
    nil,
    {
      ["nested_object_in_array"] = "value"
    },
    {
      "nested",
      "array"
    }
  },
  ["data_types"] = {
    ["empty_string"] = "",
    ["float_number"] = 3.14159,
    ["integer_negative"] = -15,
    ["integer_positive"] = 42,
    ["null_value"] = nil,
    ["scientific_notation"] = 0.000123,
    ["unicode_string"] = "Привет, мир! 你好世界 🌍"
  },
  ["edge_cases"] = {
    ["empty_array"] = {},
    ["empty_object"] = {},
    ["false_value"] = false,
    ["very_long_string"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
    ["zero"] = 0
  },
  ["meta_info"] = {
    ["created_at"] = "2023-10-27T10:00:00Z",
    ["description"] = "Тестовый файл для проверки форматтера",
    ["is_active"] = true,
    ["tags"] = {
      "json",
      "test",
      "formatter",
      "development"
    },
    ["version"] = 1.0
  },
  ["nesting_test"] = {
    ["level_1"] = {
      ["level_2"] = {
        ["level_3"] = {
          ["level_4"] = {
            ["date"] = 1771322019892,
            ["deep_value"] = "Я очень глубоко"
          }
        }
      }
    }
  },
  ["special_characters"] = {
    ["backslash"] = "Путь C:\\Users\\Admin",
    ["new_line"] = "Строка 1\nСтрока 2",
    ["quotes"] = "Кавычки \"внутри\" строки",
    ["slash"] = "URL https://example.com/path",
    ["tabulation"] = "Табуляция\tздесь"
  }
}
MOONLY_NIL = nil
MOONLY_EMPTY_OBJ = {}

Обновление Moonly CLI V3.0.0! Скачать: клик
1. Добавлена команда 'watch'. Работает точно также как и AutoReboot в moonly, но при изменениях либо бандлит, либо собирает в ZIP весь проект заново. Имеет два параметра: (-m, --mode): режим, может быть либо bundle (по умолчанию), либо pack. Выполняет соответствующие команды при изменениях в проекте; (-d, --delay): задержка между итерациями цикла при проверке изменений, указывается в миллисекундах, минимально 50 миллисекунд, по умолчанию стоит ровно 1 секунда (= 1000 мс).
2. Теперь в константах можно бандлить константы любого JSON типа (null, числа, строки, були, массивы, объекты).

Обновление Moonly V1.5.0! Скачать: клик
1. Перебандлен под новый CLI. Это изменение уменьшило размер файла в ~2 раза.
2. Чтобы обновление не было совсем пустым, был добавлен экспериментальный модуль qol (Quality of Life). Этот модуль должен был стать заменой некоторых полезных функций SAMPFUNCS в случае его отсутствия. Добавляет антипаузу (с фиксом курсора при сворачивании игры) и window-mode. Так как модуль экспериментальный он выключен по умолчанию, нужно будет дописать "qol" в список "moonly.runtime.modules", чтобы включить. Модуль имеет два ключа в настройках:
1. "moonly.qol.antipause" (true/false): включает/отключает антипаузу.
2. "moonly.qol.window-mode" (true/false): включает/отключает оконный режим.
 
Последнее редактирование:

Musaigen

ihatemyself
Автор темы
Проверенный
1,708
1,596
Обновление V3.1.0! Скачать: клик
1. Исправлена компиляция на Linux/MacOS и других системах. (Fix #2 от @DZONE)
2. Также решил добавить генератор конфига для nvim/vim в команду init. Пример:
moonly init -e neovim (может быть neovim, nvim, vim) -> создаст файл конфигурации .luarc.json, который подхватит LSP. Из минусов нет поддержки moonloader, но её можно добавить самостоятельно указав путь к определениям в поле workspace.library в .luarc.json.
 

Орк

Известный
448
400
@Musaigen ну я, наверное, переборщил но всё же .json файл как тестовый профиль хотел собрать, но где-то ошибка
[ML] (error) HelperByOrc.lua: ...na Games Launcher\bin\arizona\moonloader\HelperByOrc.lua:15274: unexpected symbol near ']' [ML] (error) HelperByOrc.lua: Script died due to an error. (2B784C14)
Строки рядом с 15274
1773911121522.png
 

kyrtion

Известный
1,365
526
Предлагаю добавить кодировка для бандла в конфиг. Когда @chapo реализовал скрипт с UI погоды, я случайно увидел что в коде сохранено как UTF-8.
Скорее всего раньше писали под CP1251, после бандла сохранился в UTF-8.
И указать что это экстремальная настройка дабы не трогали такой конфиг, если все работает.

Дополнительно добавляют синтаксис если сделаешь 3 скобки - не будет работать, нужно чтобы ставило максимум 2 скобки для комментарии. Если хочешь чтобы уникален для защиты от регулярки(?):
1. [=[ <code> ]=]
2. [==[ <code> ]==]
3. [===[ <code> ]===]
и т.д.
 
Последнее редактирование:

chapo

tg/inst: @moujeek
Всефорумный модератор
9,219
12,600
Предлагаю добавить кодировка для бандла в конфиг. Когда @chapo реализовал скрипт с UI погоды, я случайно увидел что в коде сохранено как UTF-8.
Скорее всего раньше писали под CP1251, после бандла сохранился в UTF-8.
И указать что это экстремальная настройка дабы не трогали такой конфиг, если все работает.


Дополнительно добавляют синтаксис если сделаешь 3 скобки - не будет работать, нужно чтобы ставило максимум 2 скобки для комментарии. Если хочешь чтобы уникален для защиты от регулярки(?):
1. [=[ <code> ]=]
2. [==[ <code> ]==]
3. [===[ <code> ]===]
и т.д.
У меня наебнулся файл потому что писал проекты на гошке и менял кодировку в вскоде на ютф8 по умолчанию, потом благополучно забил хуйца
 

Willy4ka

вилличка
Модератор
767
1,133
У меня наебнулся файл потому что писал проекты на гошке и менял кодировку в вскоде на ютф8 по умолчанию, потом благополучно забил хуйца
1774162365541.png

вот так вот ставишь и заебись, по дефолту ютф8, а в мунлоадере сп1251
 
  • Нравится
Реакции: kyrtion

kyrtion

Известный
1,365
526
  • Нравится
Реакции: Willy4ka