Update .gitignore to include sync-mods-from-client.ps1 for better management of server scripts and update Minecraft instance configuration to reflect the latest mod loader details.
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
{
|
||||
// Whether Collective should show a message in the console if a dependent mod has an update available. Update checks are optional and async.
|
||||
"enableUpdateChecker": true,
|
||||
// When enabled, transfer the held items and armour from replaced entities by any of the Entity Spawn mods which depend on Collective.
|
||||
"transferItemsBetweenReplacedEntities": true,
|
||||
// The amount of times Collective loops through possible mob drops to get them all procedurally. Drops are only generated when a dependent mod uses them. Lowering this can increase world load time but decrease accuracy.
|
||||
// min: 1, max: 500
|
||||
"loopsAmountUsedToGetAllEntityDrops": 100,
|
||||
// The delay of the is-there-a-block-around-check around entities in ms. Used in mods which depends on a specific blockstate in the world. Increasing this number can increase TPS if needed.
|
||||
// min: 0, max: 3600000
|
||||
"findABlockCheckAroundEntitiesDelayMs": 30000,
|
||||
// Enables pets for Patrons. Will be added in a future release.
|
||||
"enablePatronPets": true
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
// Whether the recursive opening feature should be enabled. This allows you to for example build a giant door with trapdoors which will all open at the same time, as long as they are connected. The 'recursiveOpeningMaxBlocksDistance' config option determines how far the function should search.
|
||||
"enableRecursiveOpening": true,
|
||||
// How many blocks the recursive function should search when 'enableRecursiveOpening' is enabled.
|
||||
// min: 1, max: 64
|
||||
"recursiveOpeningMaxBlocksDistance": 10,
|
||||
// When enables, the mod works with double doors.
|
||||
"enableDoors": true,
|
||||
// When enables, the mod works with double fence gates.
|
||||
"enableFenceGates": false,
|
||||
// When enables, the mod works with double trapdoors.
|
||||
"enableTrapdoors": false,
|
||||
// Checks if there are other mods loaded with double door functionality, such as Quark. If found, it edits a line in their config to disable double doors. Fixes doors not opening due to code being ran twice.
|
||||
"enableModIncompatibilityCheck": true
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,98 @@
|
||||
#!/usr/bin/env pwsh
|
||||
# Копирует *.jar из ../mods в ./mods (тот же инстанс).
|
||||
# Не копирует jar, если имя совпадает с одним из шаблонов ниже (только клиент).
|
||||
# Шаблоны — как в PowerShell -like: * и ? (регистр не важен).
|
||||
# Выключенные NeoForge (*.jar.disabled) фильтром *.jar не подхватываются.
|
||||
# Односторонняя синхронизация: клиент -> сервер. Лишние jar на сервере не удаляются.
|
||||
param(
|
||||
[switch] $DryRun
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# Дополняй при установке новых клиентских модов.
|
||||
$ClientOnlyJarLikePatterns = @(
|
||||
'BadOptimizations-*'
|
||||
'BetterF3-*'
|
||||
'BHMenu-*'
|
||||
'catalogue-*'
|
||||
'clientcrafting-*'
|
||||
'Controlling-*'
|
||||
'defaultoptions-*'
|
||||
'dynamic-fps-*'
|
||||
'entity_model_features_*'
|
||||
'entity_texture_features_*'
|
||||
'entityculling-*'
|
||||
'fast-ip-ping-*'
|
||||
'fancymenu_*'
|
||||
'gpumemleakfix-*'
|
||||
'ImmediatelyFast-*'
|
||||
'iris-*'
|
||||
'konkrete_*'
|
||||
'loadingbackgrounds-*'
|
||||
'mace3d-*'
|
||||
'melody_*'
|
||||
'MouseTweaks-*'
|
||||
'reeses-sodium-options-*'
|
||||
'sodium-neoforge-*'
|
||||
'sodiumextras-*'
|
||||
'sodiumoptionsapi-*'
|
||||
'time_on_display-*'
|
||||
'ToastControl-*'
|
||||
)
|
||||
|
||||
function Test-ClientOnlyJarName([string] $fileName) {
|
||||
foreach ($pattern in $ClientOnlyJarLikePatterns) {
|
||||
if ($fileName -like $pattern) {
|
||||
return $true
|
||||
}
|
||||
}
|
||||
return $false
|
||||
}
|
||||
|
||||
$instanceRoot = Split-Path $PSScriptRoot -Parent
|
||||
$src = Join-Path $instanceRoot "mods"
|
||||
$dst = Join-Path $PSScriptRoot "mods"
|
||||
|
||||
if (-not (Test-Path -LiteralPath $src)) {
|
||||
Write-Error "Клиентские моды не найдены: $src"
|
||||
}
|
||||
|
||||
if (-not (Test-Path -LiteralPath $dst)) {
|
||||
if ($DryRun) {
|
||||
Write-Host "[dry-run] Создал бы папку: $dst"
|
||||
} else {
|
||||
New-Item -ItemType Directory -Path $dst -Force | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
$copied = [System.Collections.Generic.List[string]]::new()
|
||||
$skippedClient = 0
|
||||
|
||||
foreach ($jar in Get-ChildItem -LiteralPath $src -File -Filter "*.jar") {
|
||||
if (Test-ClientOnlyJarName $jar.Name) {
|
||||
$skippedClient++
|
||||
if ($DryRun) {
|
||||
Write-Host "[dry-run] пропуск (клиент): $($jar.Name)"
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
$destPath = Join-Path $dst $jar.Name
|
||||
$copied.Add($jar.Name) | Out-Null
|
||||
|
||||
if ($DryRun) {
|
||||
Write-Host "[dry-run] $($jar.FullName) -> $destPath"
|
||||
continue
|
||||
}
|
||||
|
||||
Copy-Item -LiteralPath $jar.FullName -Destination $destPath -Force
|
||||
}
|
||||
|
||||
Write-Host ("Синхронизировано {0} jar: клиент -> Server/mods." -f $copied.Count)
|
||||
if ($skippedClient -gt 0) {
|
||||
Write-Host ("Пропущено клиентских (по списку в скрипте): {0}" -f $skippedClient)
|
||||
}
|
||||
if ($copied.Count -gt 0 -and $VerbosePreference -eq "Continue") {
|
||||
$copied | Sort-Object | ForEach-Object { Write-Host " $_" }
|
||||
}
|
||||
Reference in New Issue
Block a user