kubejs lint settings

This commit is contained in:
Xikaro
2026-03-22 08:09:23 +05:00
parent 1f9adabb68
commit f99bced68f
12 changed files with 148 additions and 109 deletions

31
.gitattributes vendored
View File

@@ -3,37 +3,16 @@
# On commit, the line endings will be reset to lf
* text=auto
# Text Files
*.txt text
*.md text
LICENSE text
*.cfg text
*.lang text
*.bat text
*.sh text
*.json text
*.yml text
*.yaml text
*.toml text
*.js text
*.ts text
*.zs text
*.groovy text
*.xml text
*.xsd text
*.svg text
# Binary Files
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.pdf binary
*.zip binary
*.jar binary
# GitHub Linguist
dumps/**/*.* linguist-generated=true
*.log linguist-generated=true

View File

@@ -261,13 +261,51 @@ There are two approaches to creating a Pull Request: via terminal and via GitHub
- Always test the integration of your changes with the main project.
- Before sending a Pull Request, it is important to ensure that your changes do not disrupt the modpack's operation and comply with [internal code of conduct](CODE_OF_CONDUCT.md).
- #### Localization:
- If you're looking for Localizing the modpack to a Language, please feel free to head to the [Tools-Modern]
- #### Localization:
- If you're looking for Localizing the modpack to a Language, please feel free to head to the [Crowdin]
- #### Linting & Typescript support
- Install NodeJS and use an editor with Typescript and ESLint support (e.g. Visual Studio Code).
- Run `npm init`, and create a project with default options. (required for language support to work properly)
- Run `npm install --save-dev eslint@latest @eslint/js@latest @stylistic/eslint-plugin`
- To enable type annotations & diagnostics, run [ProbeJS] and set `noCheck: false` in tsconfig.json.
All development tools configuration is located in the `kubejs/` folder.
**Installation:**
```bash
# From the modpack root
npm install --prefix kubejs
# Or from the kubejs folder
npm install
```
**Running the linter:**
```bash
# From the modpack root
npm run lint --prefix kubejs
npm run lint:fix --prefix kubejs
# Or from the kubejs folder
cd kubejs
npm run lint
npm run lint:fix
```
**Code formatting (Prettier):**
```bash
# Format all files
npm run format --prefix kubejs
# Check formatting without changes
npm run format:check --prefix kubejs
```
**TypeScript checking:**
1. Install dependencies (see above)
2. Run ProbeJS to generate types
3. Set `"noCheck": false` in `kubejs/tsconfig.json`
---
@@ -487,9 +525,9 @@ There are two approaches to creating a Pull Request: via terminal and via GitHub
- Регулярно синхронизируйте свой форк с оригинальным репозиторием для избежания конфликтов.
- Используйте понятные сообщения коммитов для лучшего понимания изменений.
- #### Отладка и тестирование:
- Перед внесением ваших изменений убедитесь, что проект запускается без ошибок.
- Проверяйте логи PrismLauncher для выявления возможных проблем.
- #### Отладка и тестирование:
- Перед внесением ваших изменений убедитесь, что проект запускается без ошибок.
- Проверяйте логи PrismLauncher для выявления возможных проблем.
- Использование Visual Studio Code с расширением [ProbeJs] поможет быстрее обнаруживать и устранять ошибки.
- #### Документация и обсуждение:
@@ -497,11 +535,53 @@ There are two approaches to creating a Pull Request: via terminal and via GitHub
- Коллективное обсуждение часто приводит к нахождению оптимальных решений и улучшению проекта в целом.
- #### Совместная разработка:
- Всегда тестируйте интеграцию ваших изменений с основным проектом.
- Всегда тестируйте интеграцию ваших изменений с основным проектом.
- Перед отправкой Pull Request важно убедиться, что ваши изменения не нарушают работу модпака и соответствуют [внутренним соглашениям по коду](CODE_OF_CONDUCT.md).
- #### Локализация:
- Если вы ищете локализацию Modpack на языке, пожалуйста, не стесняйтесь перейти к [Tools-Modern]
- #### Локализация:
- Если вы ищете локализацию Modpack на языке, пожалуйста, не стесняйтесь перейти к [Crowdin]
- #### Линтинг и поддержка TypeScript:
Вся конфигурация инструментов разработки находится в папке `kubejs/`.
**Установка:**
```bash
# Из корня модпака
npm install --prefix kubejs
# Или из папки kubejs
npm install
```
**Запуск линтера:**
```bash
# Из корня модпака
npm run lint --prefix kubejs
npm run lint:fix --prefix kubejs
# Или из папки kubejs
npm run lint
npm run lint:fix
```
**Форматирование кода (Prettier):**
```bash
# Форматировать все файлы
npm run format --prefix kubejs
# Проверка форматирования без изменений
npm run format:check --prefix kubejs
```
**Проверка типов TypeScript:**
1. Установите зависимости (см. выше)
2. Запустите ProbeJS для генерации типов
3. Установите `"noCheck": false` в `kubejs/tsconfig.json`
---
@@ -509,7 +589,7 @@ There are two approaches to creating a Pull Request: via terminal and via GitHub
[TerraFirmaGreg-Modern]: https://github.com/TerraFirmaGreg-Team/Modpack-Modern
[Dev-Modern]: https://github.com/orgs/TerraFirmaGreg-Team/teams/dev-modern
[Contributor-Modern]: https://github.com/orgs/TerraFirmaGreg-Team/teams/contributor-modern
[Tools-Modern]: https://github.com/TerraFirmaGreg-Team/Tools-Modern
[Crowdin]: https://crowdin.com/project/terrafirmagreg-modern
[PrismLauncher]: https://prismlauncher.org
[Visual Studio Code]: https://code.visualstudio.com
[Git]: https://git-scm.com

View File

@@ -1,4 +0,0 @@
{
"tabWidth": 4,
"printWidth": 120
}

4
kubejs/.prettierrc Normal file
View File

@@ -0,0 +1,4 @@
{
"tabWidth": 4,
"printWidth": 120
}

15
kubejs/README.md Normal file
View File

@@ -0,0 +1,15 @@
# Find out more info on the website: https://kubejs.com/
## Directory information:
- assets - Acts as a resource pack, you can put any client resources in here, like textures, models, etc. Example: assets/kubejs/textures/item/test_item.png
- data - Acts as a datapack, you can put any server resources in here, like loot tables, functions, etc. Example: data/kubejs/loot_tables/blocks/test_block.json
- startup_scripts - Scripts that get loaded once during game startup - Used for adding items and other things that can only happen while the game is loading (Can be reloaded with /kubejs reload_startup_scripts, but it may not work!)
- server_scripts - Scripts that get loaded every time server resources reload - Used for modifying recipes, tags, loot tables, and handling server events (Can be reloaded with /reload)
- client_scripts - Scripts that get loaded every time client resources reload - Used for JEI events, tooltips and other client side things (Can be reloaded with F3+T)
- config - KubeJS config storage. This is also the only directory that scripts can access other than world directory
- exported - Data dumps like texture atlases end up here
## You can find type-specific logs in logs/kubejs/ directory

View File

@@ -1,15 +0,0 @@
Find out more info on the website: https://kubejs.com/
Directory information:
assets - Acts as a resource pack, you can put any client resources in here, like textures, models, etc. Example: assets/kubejs/textures/item/test_item.png
data - Acts as a datapack, you can put any server resources in here, like loot tables, functions, etc. Example: data/kubejs/loot_tables/blocks/test_block.json
startup_scripts - Scripts that get loaded once during game startup - Used for adding items and other things that can only happen while the game is loading (Can be reloaded with /kubejs reload_startup_scripts, but it may not work!)
server_scripts - Scripts that get loaded every time server resources reload - Used for modifying recipes, tags, loot tables, and handling server events (Can be reloaded with /reload)
client_scripts - Scripts that get loaded every time client resources reload - Used for JEI events, tooltips and other client side things (Can be reloaded with F3+T)
config - KubeJS config storage. This is also the only directory that scripts can access other than world directory
exported - Data dumps like texture atlases end up here
You can find type-specific logs in logs/kubejs/ directory

View File

@@ -1,12 +0,0 @@
Files located at "assets/x/lang" (where x is the modid youre looking to translate), which are the localization files, are AUTO GENERATED by an external tool in the repo ("minecraft/tools/LanguageMerger")
This means that any changes done to the files in "assets/x/lang" WILL BE OVERWRITTEN the next time the tool is ran!
If you wish to properly write localization for an already supported/translated mod:
1. Go to the [Tools-Modern] repo
2. Go to the folder of your mod of choice.
3. Open the Localization folder for your language, these are the actual locales supported by the mod (ie: en_us)
* If youre looking to add a new language, create a new folder with your chosen locale
4. Edit, or add a new JSON file with your language values.
<!-- Links: -->
[Tools-Modern]: https://github.com/TerraFirmaGreg-Team/Tools-Modern

View File

@@ -5,14 +5,14 @@ import stylistic from '@stylistic/eslint-plugin'
export default defineConfig([
{
files: ["kubejs/startup_scripts/**/*.js", "kubejs/server_scripts/**/*.js", "kubejs/client_scripts/**/*.js"],
plugins: {
"js": js,
{
files: ["**/*.js"],
plugins: {
"js": js,
"@stylistic": stylistic
},
},
extends: ["js/recommended"],
extends: ["js/recommended"],
languageOptions: { globals: globals.node, ecmaVersion: 2020 },
rules: {
"no-undef": "off",
@@ -50,14 +50,14 @@ export default defineConfig([
"prefer-arrow-callback": "warn",
"no-useless-concat": "warn",
"yoda": ["warn", "never"],
"@stylistic/comma-style": [1, "last"],
"@stylistic/function-call-spacing": [1, "never"],
"@stylistic/no-floating-decimal": "error",
"@stylistic/arrow-spacing": [1, { "before": true, "after": true }],
"@stylistic/keyword-spacing": [1, { "before": true, "after": true }],
"@stylistic/dot-location": [1, "property"],
"@stylistic/comma-dangle": [0, "allow"]
"@stylistic/comma-dangle": [0, "allow"]
}
},
]);

View File

@@ -1,13 +1,10 @@
{
"name": "tfg-modern",
"name": "kubejs",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "tfg-modern",
"version": "1.0.0",
"license": "ISC",
"devDependencies": {
"@eslint/js": "^9.31.0",
"@stylistic/eslint-plugin": "^5.2.0",

18
kubejs/package.json Normal file
View File

@@ -0,0 +1,18 @@
{
"type": "module",
"devDependencies": {
"eslint": "^9.31.0",
"@eslint/js": "^9.31.0",
"globals": "^16.3.0",
"typescript-eslint": "^8.37.0",
"@stylistic/eslint-plugin": "^5.2.0",
"prettier": "^3.8.1"
},
"main": "eslint.config.js",
"scripts": {
"lint": "eslint --config ./eslint.config.js",
"lint:fix": "eslint --config ./eslint.config.js --fix",
"format": "prettier --write \"**/*.js\"",
"format:check": "prettier --check \"**/*.js\""
}
}

View File

@@ -9,9 +9,9 @@
"rootDirs": [
"probe/generated",
"probe/user",
"server_scripts",
"startup_scripts",
"client_scripts"
"./server_scripts",
"./startup_scripts",
"./client_scripts"
],
"alwaysStrict": true,
@@ -26,4 +26,4 @@
"noUnusedLocals": true,
"noUnusedParameters": true
}
}
}

View File

@@ -1,23 +0,0 @@
{
"description": "This file exists purely so that eslint works",
"license": "ISC",
"bugs": {"url": "https://github.com/TerraFirmaGreg-Team/Modpack-Modern/issues"},
"devDependencies": {
"eslint": "^9.31.0",
"@eslint/js": "^9.31.0",
"globals": "^16.3.0",
"typescript-eslint": "^8.37.0",
"@stylistic/eslint-plugin": "^5.2.0"
},
"author": "",
"name": "tfg-modern",
"main": "eslint.config.js",
"scripts": {"test": "echo \"Error: no test specified\" && exit 1"},
"repository": {
"type": "git",
"url": "git+https://github.com/TerraFirmaGreg-Team/Modpack-Modern.git"
},
"version": "1.0.0",
"homepage": "https://github.com/TerraFirmaGreg-Team/Modpack-Modern#readme"
}