Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
80693085e1 | ||
|
|
7e109471a2 | ||
|
|
c1fea71237 | ||
|
|
adea640a78 | ||
|
|
0db88ac9fe |
+43
@@ -804,6 +804,14 @@ hash = "d438aea41ca41e93697e059f523686935c0add482f6abe96b532bbf10c6ed80a"
|
|||||||
file = "config/yacl.json5"
|
file = "config/yacl.json5"
|
||||||
hash = "121b93764159be6fb7dab523b29a844e2bb78400ce8c48f52135a097e9b0006e"
|
hash = "121b93764159be6fb7dab523b29a844e2bb78400ce8c48f52135a097e9b0006e"
|
||||||
|
|
||||||
|
[[files]]
|
||||||
|
file = "kubejs/assets/computercraft/textures/gui/CREDITS.txt"
|
||||||
|
hash = "19b844245d03fcdd488a7a791e287447191a74acd0f14995209339d768c5e6ce"
|
||||||
|
|
||||||
|
[[files]]
|
||||||
|
file = "kubejs/assets/computercraft/textures/gui/term_font.png"
|
||||||
|
hash = "db4c4a8ab49265f6e8e456f495800ea148b133b18a3242aabca30b98ab7f784f"
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "mods/3dskinlayers.pw.toml"
|
file = "mods/3dskinlayers.pw.toml"
|
||||||
hash = "82becc6910845ae1a68884e6f7a3dcdc861d79a087ae81b1d7e120e82884372d"
|
hash = "82becc6910845ae1a68884e6f7a3dcdc861d79a087ae81b1d7e120e82884372d"
|
||||||
@@ -849,6 +857,11 @@ file = "mods/balm.pw.toml"
|
|||||||
hash = "392901b7f79963442553456af846d06f48b4057a054a928adb8a76eea13c6383"
|
hash = "392901b7f79963442553456af846d06f48b4057a054a928adb8a76eea13c6383"
|
||||||
metafile = true
|
metafile = true
|
||||||
|
|
||||||
|
[[files]]
|
||||||
|
file = "mods/better-advanced-tooltips.pw.toml"
|
||||||
|
hash = "03084ff4f74cedc1b8ac6c85a98842f75956fb4fa811d285d8ca7caa8d54da5d"
|
||||||
|
metafile = true
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "mods/better-ping-display.pw.toml"
|
file = "mods/better-ping-display.pw.toml"
|
||||||
hash = "cc2e6dda94a7a6f5487843cafe569d8044bf9482cbf03f062cf4595f1fb05281"
|
hash = "cc2e6dda94a7a6f5487843cafe569d8044bf9482cbf03f062cf4595f1fb05281"
|
||||||
@@ -979,6 +992,21 @@ file = "mods/dynamic-fps.pw.toml"
|
|||||||
hash = "ae6fd52d8bdcbeca5bbe6db840f22f92c1928fe0fda22017b19612b9b00a245a"
|
hash = "ae6fd52d8bdcbeca5bbe6db840f22f92c1928fe0fda22017b19612b9b00a245a"
|
||||||
metafile = true
|
metafile = true
|
||||||
|
|
||||||
|
[[files]]
|
||||||
|
file = "mods/easy-npc-config-ui.pw.toml"
|
||||||
|
hash = "6f78b2a8761dc39680d58db1f4343204be8223a8b734d16a82fdbbd89f0cea1a"
|
||||||
|
metafile = true
|
||||||
|
|
||||||
|
[[files]]
|
||||||
|
file = "mods/easy-npc-core.pw.toml"
|
||||||
|
hash = "240307bd539f88529af38d0365bff3ea2b778e41bb5cbb1ba9d88557a1d4347c"
|
||||||
|
metafile = true
|
||||||
|
|
||||||
|
[[files]]
|
||||||
|
file = "mods/easy-npc.pw.toml"
|
||||||
|
hash = "98fbf36b902f51b003016d672cef0538a7846313a30ab6b3da2d2ef30b9b4ad6"
|
||||||
|
metafile = true
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "mods/elytra-slot.pw.toml"
|
file = "mods/elytra-slot.pw.toml"
|
||||||
hash = "9e2b351f3cabb1252259f5383e6f2fec3e3d90534dbecddef4ed183eba42f35a"
|
hash = "9e2b351f3cabb1252259f5383e6f2fec3e3d90534dbecddef4ed183eba42f35a"
|
||||||
@@ -1114,6 +1142,11 @@ file = "mods/kotlin-for-forge.pw.toml"
|
|||||||
hash = "27302b0087cf53570cd7a3b4eb550a208cbb6f6ba07210c604176155f39e0078"
|
hash = "27302b0087cf53570cd7a3b4eb550a208cbb6f6ba07210c604176155f39e0078"
|
||||||
metafile = true
|
metafile = true
|
||||||
|
|
||||||
|
[[files]]
|
||||||
|
file = "mods/kubejs.pw.toml"
|
||||||
|
hash = "7e0eca275f27b6543f06c36dec433851a956960cbedd2be57d19e159d636bfc1"
|
||||||
|
metafile = true
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "mods/longer-chat-history.pw.toml"
|
file = "mods/longer-chat-history.pw.toml"
|
||||||
hash = "12e4601519ca5fb940e9658b71f2218f2a06c41847b714978e1568435688858d"
|
hash = "12e4601519ca5fb940e9658b71f2218f2a06c41847b714978e1568435688858d"
|
||||||
@@ -1174,6 +1207,11 @@ file = "mods/oceans-delight.pw.toml"
|
|||||||
hash = "7bf7c8369bd28212a1e294c60310ccb72f1eb773630970e6ab106ae666766cd3"
|
hash = "7bf7c8369bd28212a1e294c60310ccb72f1eb773630970e6ab106ae666766cd3"
|
||||||
metafile = true
|
metafile = true
|
||||||
|
|
||||||
|
[[files]]
|
||||||
|
file = "mods/open-parties-and-claims.pw.toml"
|
||||||
|
hash = "97660396e7f075f4c9ca8447878ec3da58ebea9ed464cdb494d4db1d62989936"
|
||||||
|
metafile = true
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "mods/particle-rain.pw.toml"
|
file = "mods/particle-rain.pw.toml"
|
||||||
hash = "6f24e7f5ecef862b1bdb61031637e27b093f185c3219023bea94d2d954ec4180"
|
hash = "6f24e7f5ecef862b1bdb61031637e27b093f185c3219023bea94d2d954ec4180"
|
||||||
@@ -1214,6 +1252,11 @@ file = "mods/reeses-sodium-options.pw.toml"
|
|||||||
hash = "09306b955060349986ccf6a6d2a67f1e019fa172a7dc690dd6007f81c966309a"
|
hash = "09306b955060349986ccf6a6d2a67f1e019fa172a7dc690dd6007f81c966309a"
|
||||||
metafile = true
|
metafile = true
|
||||||
|
|
||||||
|
[[files]]
|
||||||
|
file = "mods/rhino.pw.toml"
|
||||||
|
hash = "673de9cae75d2ad02796368939384de0d7238cf5c782975d71848a2187f753e7"
|
||||||
|
metafile = true
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "mods/rrls.pw.toml"
|
file = "mods/rrls.pw.toml"
|
||||||
hash = "b78044fd79ce21750d05dc61b6aede33c4b87cdc16a26f5aff472d4f73ab623c"
|
hash = "b78044fd79ce21750d05dc61b6aede33c4b87cdc16a26f5aff472d4f73ab623c"
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
term_font.png — "CCCyrillic" by sashafiesta (MIT), https://modrinth.com/resourcepack/cccyrillic
|
||||||
|
Windows-1251 Cyrillic glyphs for the CC:Tweaked terminal font. The server's terminal programs write text in 1251.
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 6.7 KiB |
@@ -0,0 +1,13 @@
|
|||||||
|
name = "Better Advanced Tooltips"
|
||||||
|
filename = "better-advanced-tooltips-2101.1.0-build.5.jar"
|
||||||
|
side = "both"
|
||||||
|
|
||||||
|
[download]
|
||||||
|
url = "https://cdn.modrinth.com/data/iHLDc0eo/versions/uPFbnD32/better-advanced-tooltips-2101.1.0-build.5.jar"
|
||||||
|
hash-format = "sha512"
|
||||||
|
hash = "05b5cdad948d1735eab7a67a16aaf32814678c392014ec2ada61b8341c0ed1c1ac181cab1de9da3f2c4632592f4a1a5db254bd0543e6778897c8ccd260894142"
|
||||||
|
|
||||||
|
[update]
|
||||||
|
[update.modrinth]
|
||||||
|
mod-id = "iHLDc0eo"
|
||||||
|
version = "uPFbnD32"
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
name = "Easy NPC: Config UI"
|
||||||
|
filename = "easy_npc_config_ui-neoforge-1.21.1-7.14.0.jar"
|
||||||
|
side = "both"
|
||||||
|
|
||||||
|
[download]
|
||||||
|
url = "https://cdn.modrinth.com/data/uTGjf7vA/versions/am2FLyOh/easy_npc_config_ui-neoforge-1.21.1-7.14.0.jar"
|
||||||
|
hash-format = "sha512"
|
||||||
|
hash = "b5f6dcab0c1c228d399cd9c74cf3e5be8102d2e77e9b4017087896389662f893aca403063781168e780897bb63a74ed5b06ca9b183cda6014c05aab44407b6a1"
|
||||||
|
|
||||||
|
[update]
|
||||||
|
[update.modrinth]
|
||||||
|
mod-id = "uTGjf7vA"
|
||||||
|
version = "am2FLyOh"
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
name = "Easy NPC: Core"
|
||||||
|
filename = "easy_npc-neoforge-1.21.1-7.14.0.jar"
|
||||||
|
side = "both"
|
||||||
|
|
||||||
|
[download]
|
||||||
|
url = "https://cdn.modrinth.com/data/Epm6R3P2/versions/wpGE79aG/easy_npc-neoforge-1.21.1-7.14.0.jar"
|
||||||
|
hash-format = "sha512"
|
||||||
|
hash = "073f0bf6ef9e4ace88c4d51ca591906a40adf1098f07893858080265e775e5db8467bd6041b82e67787f9384b08e65a2451b8d932ab9533cb4023c43cb5198e9"
|
||||||
|
|
||||||
|
[update]
|
||||||
|
[update.modrinth]
|
||||||
|
mod-id = "Epm6R3P2"
|
||||||
|
version = "wpGE79aG"
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
name = "Easy NPC"
|
||||||
|
filename = "easy_npc_bundle-neoforge-1.21.1-7.14.0.jar"
|
||||||
|
side = "both"
|
||||||
|
|
||||||
|
[download]
|
||||||
|
url = "https://cdn.modrinth.com/data/CgGEe1h3/versions/rgleNqSl/easy_npc_bundle-neoforge-1.21.1-7.14.0.jar"
|
||||||
|
hash-format = "sha512"
|
||||||
|
hash = "7ebe0ebfed3157fe624896105bbad01c3d1c56ae768e995f5b7002609e2f8e60deba9d2ffc14f574517cf0fcef4493ca321946ad07d00e58815df4aecbec3ac1"
|
||||||
|
|
||||||
|
[update]
|
||||||
|
[update.modrinth]
|
||||||
|
mod-id = "CgGEe1h3"
|
||||||
|
version = "rgleNqSl"
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
name = "KubeJS"
|
||||||
|
filename = "kubejs-neoforge-2101.7.2-build.377.jar"
|
||||||
|
side = "both"
|
||||||
|
|
||||||
|
[download]
|
||||||
|
url = "https://cdn.modrinth.com/data/umyGl7zF/versions/THIGFPwf/kubejs-neoforge-2101.7.2-build.377.jar"
|
||||||
|
hash-format = "sha512"
|
||||||
|
hash = "fcdbee8790f8f39c106ab4bf606808c9c5bf0f13a41e216207a6fe4d15bf4a5722ce57078781e3a1823e7fdd2928e8e042d104d8ae255a36db8f12a9f46d8089"
|
||||||
|
|
||||||
|
[update]
|
||||||
|
[update.modrinth]
|
||||||
|
mod-id = "umyGl7zF"
|
||||||
|
version = "THIGFPwf"
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
name = "Open Parties and Claims"
|
||||||
|
filename = "open-parties-and-claims-neoforge-1.21.1-0.31.6.jar"
|
||||||
|
side = "both"
|
||||||
|
|
||||||
|
[download]
|
||||||
|
url = "https://cdn.modrinth.com/data/gF3BGWvG/versions/3i48dTzz/open-parties-and-claims-neoforge-1.21.1-0.31.6.jar"
|
||||||
|
hash-format = "sha512"
|
||||||
|
hash = "6f8f2d570b6f674a9180576524b3ba507a3ad046ff319353cee50738644bf46c03ca460fb7c6880eed76f07eb2a26a983166d2510951202af86b3e120b743181"
|
||||||
|
|
||||||
|
[update]
|
||||||
|
[update.modrinth]
|
||||||
|
mod-id = "gF3BGWvG"
|
||||||
|
version = "3i48dTzz"
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
name = "Rhino"
|
||||||
|
filename = "rhino-2101.2.8-build.91.jar"
|
||||||
|
side = "both"
|
||||||
|
|
||||||
|
[download]
|
||||||
|
url = "https://cdn.modrinth.com/data/sk9knFPE/versions/SqkDvOLG/rhino-2101.2.8-build.91.jar"
|
||||||
|
hash-format = "sha512"
|
||||||
|
hash = "e3d92f663bc07872a83b0a6474b30a75230e9f92a2844fd98da1842ec9a79712bcb7d8e76574cc11ae3aeceb47f2933c60ddd6cf41f3ad7027bd573623730945"
|
||||||
|
|
||||||
|
[update]
|
||||||
|
[update.modrinth]
|
||||||
|
mod-id = "sk9knFPE"
|
||||||
|
version = "SqkDvOLG"
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
name = "Create RP"
|
name = "Create RP"
|
||||||
author = "Pinecraft-CreateRP"
|
author = "Pinecraft-CreateRP"
|
||||||
version = "0.1.0"
|
version = "0.5.0"
|
||||||
pack-format = "packwiz:1.1.0"
|
pack-format = "packwiz:1.1.0"
|
||||||
|
|
||||||
[index]
|
[index]
|
||||||
file = "index.toml"
|
file = "index.toml"
|
||||||
hash-format = "sha256"
|
hash-format = "sha256"
|
||||||
hash = "82d2822700967bcd03c3e01038401304546e4a1c690ad35d680e38a55742001d"
|
hash = "5efee6e704068bfd1642a913e0812e57f779941fd2c6d043c66c738351447a78"
|
||||||
|
|
||||||
[versions]
|
[versions]
|
||||||
minecraft = "1.21.1"
|
minecraft = "1.21.1"
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
// Adds a Modrinth mod (and its required dependencies, recursively) to this packwiz pack.
|
||||||
|
// node tools/add-mod.mjs <slug-or-id> [...] → latest NeoForge 1.21.1 version
|
||||||
|
// node tools/add-mod.mjs <slug>@<version_number> → that exact version
|
||||||
|
// Writes mods/<slug>.pw.toml, then run: node tools/reindex.mjs
|
||||||
|
import fs from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
import { fileURLToPath } from 'url';
|
||||||
|
|
||||||
|
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
||||||
|
const UA = { 'User-Agent': 'Pinecraft-CreateRP/add-mod' };
|
||||||
|
const api = p => fetch('https://api.modrinth.com/v2' + p, { headers: UA }).then(r => {
|
||||||
|
if (!r.ok) throw new Error(`${p}: HTTP ${r.status}`);
|
||||||
|
return r.json();
|
||||||
|
});
|
||||||
|
const q = s => JSON.stringify(s);
|
||||||
|
|
||||||
|
const existing = new Set(fs.readdirSync(path.join(root, 'mods')).filter(f => f.endsWith('.pw.toml')).map(f => {
|
||||||
|
const t = fs.readFileSync(path.join(root, 'mods', f), 'utf8');
|
||||||
|
return (t.match(/^mod-id = "([^"]+)"/m) || [])[1];
|
||||||
|
}).filter(Boolean));
|
||||||
|
|
||||||
|
const sideOf = p => p.server_side === 'unsupported' ? 'client' : p.client_side === 'unsupported' ? 'server' : 'both';
|
||||||
|
|
||||||
|
async function add(spec, depth = 0) {
|
||||||
|
const [ref, wanted] = spec.split('@');
|
||||||
|
const project = await api(`/project/${ref}`);
|
||||||
|
const pad = ' '.repeat(depth);
|
||||||
|
if (existing.has(project.id)) { console.log(`${pad}= ${project.title} — already in the pack`); return; }
|
||||||
|
const versions = await api(`/project/${project.id}/version?loaders=${encodeURIComponent('["neoforge"]')}&game_versions=${encodeURIComponent('["1.21.1"]')}`);
|
||||||
|
const v = wanted ? versions.find(x => x.version_number === wanted) : versions[0];
|
||||||
|
if (!v) throw new Error(`${project.title}: no NeoForge 1.21.1 version${wanted ? ' ' + wanted : ''}`);
|
||||||
|
const f = v.files.find(x => x.primary) || v.files[0];
|
||||||
|
const toml = [
|
||||||
|
`name = ${q(project.title)}`, `filename = ${q(f.filename)}`, `side = ${q(sideOf(project))}`, '',
|
||||||
|
'[download]', `url = ${q(f.url)}`, 'hash-format = "sha512"', `hash = ${q(f.hashes.sha512)}`, '',
|
||||||
|
'[update]', '[update.modrinth]', `mod-id = ${q(project.id)}`, `version = ${q(v.id)}`, ''
|
||||||
|
].join('\n');
|
||||||
|
fs.writeFileSync(path.join(root, 'mods', `${project.slug}.pw.toml`), toml);
|
||||||
|
existing.add(project.id);
|
||||||
|
console.log(`${pad}+ ${project.title} ${v.version_number} (${sideOf(project)})`);
|
||||||
|
for (const d of v.dependencies.filter(d => d.dependency_type === 'required' && d.project_id)) {
|
||||||
|
await add(d.project_id, depth + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const spec of process.argv.slice(2)) await add(spec);
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
// Exports this packwiz pack as a Modrinth modpack (.mrpack) for Modrinth App / Prism "Import".
|
// Exports this packwiz pack as a Modrinth modpack (.mrpack) for Modrinth App / Prism "Import".
|
||||||
// node tools/export-mrpack.mjs → dist/CreateRP-<version>.mrpack
|
// node tools/export-mrpack.mjs → dist/CreateRP-<version>.mrpack
|
||||||
// Mods are referenced by their Modrinth CDN URL (sha1/sha512/size from the Modrinth API);
|
// Mods are referenced by their Modrinth CDN URL (sha1/sha512/size from the Modrinth API);
|
||||||
// config/ goes into overrides/. Zipping uses Windows' bsdtar (tar -a) or `zip` on Linux.
|
// config/ and kubejs/ go into overrides/. Zipping uses Windows' bsdtar (tar -a) or `zip` on Linux.
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { execFileSync } from 'child_process';
|
import { execFileSync } from 'child_process';
|
||||||
@@ -60,6 +60,8 @@ fs.rmSync(stage, { recursive: true, force: true });
|
|||||||
fs.mkdirSync(path.join(stage, 'overrides'), { recursive: true });
|
fs.mkdirSync(path.join(stage, 'overrides'), { recursive: true });
|
||||||
fs.writeFileSync(path.join(stage, 'modrinth.index.json'), JSON.stringify(index, null, 2));
|
fs.writeFileSync(path.join(stage, 'modrinth.index.json'), JSON.stringify(index, null, 2));
|
||||||
fs.cpSync(path.join(root, 'config'), path.join(stage, 'overrides', 'config'), { recursive: true });
|
fs.cpSync(path.join(root, 'config'), path.join(stage, 'overrides', 'config'), { recursive: true });
|
||||||
|
// kubejs/assets: always-on client resources (CC terminal font with Cyrillic)
|
||||||
|
if (fs.existsSync(path.join(root, 'kubejs'))) fs.cpSync(path.join(root, 'kubejs'), path.join(stage, 'overrides', 'kubejs'), { recursive: true });
|
||||||
|
|
||||||
const out = path.join(root, 'dist', `CreateRP-${packVersion}.mrpack`);
|
const out = path.join(root, 'dist', `CreateRP-${packVersion}.mrpack`);
|
||||||
fs.rmSync(out, { force: true });
|
fs.rmSync(out, { force: true });
|
||||||
|
|||||||
Reference in New Issue
Block a user