28 Commits

Author SHA1 Message Date
Misode
361921cf34 Add 26.2
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
2026-04-15 01:31:51 +02:00
SpyglassCrafter
9c16455eae Translated using Weblate (Russian)
Currently translated at 100.0% (388 of 388 strings)

Translated using Weblate (Russian)

Currently translated at 98.9% (383 of 387 strings)

Translated using Weblate (Russian)

Currently translated at 98.9% (383 of 387 strings)

Translated using Weblate (Russian)

Currently translated at 98.9% (383 of 387 strings)

Co-authored-by: JohannMeneka <johannmeneka@users.noreply.weblate.spyglassmc.com>
Co-authored-by: Phil <phizlip@users.noreply.weblate.spyglassmc.com>
Co-authored-by: SpyglassCrafter <bot@spyglassmc.com>
Co-authored-by: TrRuki <TrRuki.mail@gmail.com>
Co-authored-by: Wertyfire <wertyfire@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/ru/
Translation: Misode's Data Pack Generators/Web App
2026-04-15 01:30:26 +02:00
Misode
0eec3753b4 Update some dependencies
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
2026-04-07 15:53:22 +02:00
Misode
88ce717726 Use 26.1.1 ref instead of latest snapshot 2026-04-07 14:33:27 +02:00
Misode
888f3ae341 Update version regexes
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
2026-03-23 20:57:22 +01:00
SpyglassCrafter
59a5321bf9 Translated using Weblate (French)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
Currently translated at 98.9% (383 of 387 strings)

Co-authored-by: Ysuzen <ysuzen@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/fr/
Translation: Misode's Data Pack Generators/Web App
2026-03-22 21:06:21 +00:00
YukiSugar
06ae1f5c0e Fix minecraft wiki links (#853)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
2026-03-13 18:35:08 +01:00
SpyglassCrafter
319cfe6044 Translated using Weblate (Turkish)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
Currently translated at 100.0% (387 of 387 strings)

Co-authored-by: Appycake <appycake@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/tr/
Translation: Misode's Data Pack Generators/Web App
2026-03-05 06:06:21 +00:00
SpyglassCrafter
307e6dc46c Translated using Weblate (German)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
Currently translated at 99.2% (385 of 388 strings)

Co-authored-by: Paulantis <paulantis@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/de/
Translation: Misode's Data Pack Generators/Web App
2026-03-03 08:06:20 +00:00
Misode
c2b5529a60 Link directly to mojira.dev filtered issue list
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
2026-02-24 21:57:35 +01:00
SpyglassCrafter
9540a46e78 Translated using Weblate (Japanese)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
Currently translated at 91.7% (356 of 388 strings)

Co-authored-by: FireSepicHub-14 <firesepichub-14@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/ja/
Translation: Misode's Data Pack Generators/Web App
2026-02-15 15:06:20 +00:00
SpyglassCrafter
271cab4c24 Translated using Weblate (Russian)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
Currently translated at 98.4% (382 of 388 strings)

Co-authored-by: alexeykasp <alexeykasp@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/ru/
Translation: Misode's Data Pack Generators/Web App
2026-02-08 09:06:19 +00:00
SpyglassCrafter
c68ba4faea Translated using Weblate (Spanish)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
Currently translated at 60.6% (234 of 386 strings)

Co-authored-by: Cristian Valderrama <cris2405@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/es/
Translation: Misode's Data Pack Generators/Web App
2026-02-05 17:06:19 +00:00
Misode
39f4ecc504 Fix #824 noise settings preview in 1.18
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
2026-02-01 00:16:10 +01:00
Misode
f243be3d5e Fix #832 enchant_with_levels loot preview 2026-02-01 00:07:09 +01:00
Misode
84028a06f1 Add basic support for crafting_dye and crafting_imbue 2026-01-31 23:27:56 +01:00
Misode
ef17f8a5e5 Fix mcdoc version filters for 26.1 2026-01-31 22:14:40 +01:00
OffsetMonkey538
1f8be81f50 Loot Table Modifier generator (#758)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
* Loot Table Modifier loot_modifier generator

Should support everything currently implemented

* Translation keys

* Make 'actions' and 'predicates' always a list

Seems simpler to understand and a list of one entry behaves exactly the same

* Update loot-table-modifier.mcdoc

Should match currently latest commit

* Fix loot modifier path in datapack being incorrect

* Match v2 alpha 1

* Import LootPoolEntry

* Add files via upload

* Revert "Add files via upload"

This reverts commit 7e9c50ee10.

* add condition_add action

* Add union member name overrides

Co-authored-by: Misode <misoloo64@gmail.com>

---------

Co-authored-by: Misode <misoloo64@gmail.com>
2026-01-19 21:06:31 +01:00
Misode
e02c26f6db Fix #839 update spyglass to fix 26.1 version checks
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
2026-01-19 20:18:48 +01:00
SpyglassCrafter
8d4e194195 Translated using Weblate (Korean)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
Currently translated at 71.7% (277 of 386 strings)

Co-authored-by: lanthanide <lantice3720@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/ko/
Translation: Misode's Data Pack Generators/Web App
2026-01-14 06:06:19 +00:00
SpyglassCrafter
1ec1739bfd Translated using Weblate (German)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
Currently translated at 98.7% (381 of 386 strings)

Co-authored-by: SoleFrog <solefrog@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/de/
Translation: Misode's Data Pack Generators/Web App
2026-01-12 14:06:19 +00:00
SpyglassCrafter
d1f659f825 Translated using Weblate (German)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
Currently translated at 99.2% (383 of 386 strings)

Co-authored-by: Annhilati <annhilati@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/de/
Translation: Misode's Data Pack Generators/Web App
2026-01-08 15:06:19 +00:00
Misode
c8e1714859 Fix article link for new snapshot format
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
2026-01-06 20:54:30 +01:00
Misode
1bd7ad880a Fix #835 handle invalid identifiers in mcdoc renderer
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
2026-01-03 23:11:48 +01:00
Misode
1836668c1f Fix #833 Update deepslate
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
2026-01-03 03:28:39 +01:00
SpyglassCrafter
1b70e60552 Translated using Weblate (Portuguese)
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
Currently translated at 74.3% (284 of 382 strings)

Co-authored-by: Crimson Developer <crim-dev@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/pt/
Translation: Misode's Data Pack Generators/Web App
2025-12-28 17:06:19 +00:00
SpyglassCrafter
8a6232183e Translated using Weblate (German)
Currently translated at 97.9% (374 of 382 strings)

Co-authored-by: [MΛLTE] <malte9799@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/de/
Translation: Misode's Data Pack Generators/Web App
2025-12-28 17:06:19 +00:00
SpyglassCrafter
be7ed77637 Translated using Weblate (French)
Currently translated at 100.0% (382 of 382 strings)

Co-authored-by: Crimson Developer <crim-dev@users.noreply.weblate.spyglassmc.com>
Translate-URL: https://weblate.spyglassmc.com/projects/misode-github-io/web-app/fr/
Translation: Misode's Data Pack Generators/Web App
2025-12-28 17:06:19 +00:00
27 changed files with 1352 additions and 870 deletions

View File

@@ -10,7 +10,7 @@
gtag('config', 'G-S982VZS08T', { gtag('config', 'G-S982VZS08T', {
send_page_view: false, send_page_view: false,
theme: localStorage.getItem('theme') || 'default', theme: localStorage.getItem('theme') || 'default',
version: localStorage.getItem('schema_version') || '1.21.9', version: localStorage.getItem('schema_version') || '26.1',
locale: localStorage.getItem('language') || 'en', locale: localStorage.getItem('language') || 'en',
prefers_color_scheme: matchMedia('(prefers-color-scheme: light)').matches ? 'light' : matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'none', prefers_color_scheme: matchMedia('(prefers-color-scheme: light)').matches ? 'light' : matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'none',
tree_view_mode: localStorage.getItem('misode_tree_view_mode') || 'default', tree_view_mode: localStorage.getItem('misode_tree_view_mode') || 'default',

861
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -16,20 +16,20 @@
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@giscus/react": "^2.2.3", "@giscus/react": "^2.2.3",
"@spyglassmc/core": "^0.4.42", "@spyglassmc/core": "^0.4.43",
"@spyglassmc/java-edition": "^0.3.54", "@spyglassmc/java-edition": "^0.3.55",
"@spyglassmc/json": "^0.3.46", "@spyglassmc/json": "^0.3.47",
"@spyglassmc/locales": "^0.3.21", "@spyglassmc/locales": "^0.3.22",
"@spyglassmc/mcdoc": "^0.3.43", "@spyglassmc/mcdoc": "^0.3.47",
"@spyglassmc/nbt": "^0.3.48", "@spyglassmc/nbt": "^0.3.49",
"@zip.js/zip.js": "^2.4.5", "@zip.js/zip.js": "^2.4.5",
"brace": "^0.11.1", "brace": "^0.11.1",
"buffer": "^6.0.3", "buffer": "^6.0.3",
"deepslate": "^0.24.0", "deepslate": "^0.25.1",
"deepslate-1.18": "npm:deepslate@0.9.0-beta.9", "deepslate-1.18": "npm:deepslate@0.9.0-beta.9",
"deepslate-1.18.2": "npm:deepslate@0.9.0", "deepslate-1.18.2": "npm:deepslate@0.9.0",
"deepslate-1.20.4": "npm:deepslate@0.20.1", "deepslate-1.20.4": "npm:deepslate@0.20.1",
"diff": "^7.0.0", "diff": "^8.0.4",
"dompurify": "^3.2.6", "dompurify": "^3.2.6",
"highlight.js": "^11.5.1", "highlight.js": "^11.5.1",
"howler": "^2.2.3", "howler": "^2.2.3",

View File

@@ -0,0 +1,113 @@
use ::java::data::loot::LootPool
use ::java::data::loot::LootPoolEntry
use ::java::data::loot::LootContextType
use ::java::data::loot::LootCondition
dispatch minecraft:resource[loot-table-modifier:loot_modifier] to struct {
actions: [Action],
predicate: Predicate,
}
struct Action {
type: #[id] ActionType,
...loot-table-modifier:loot_modifier_action_types[[type]],
}
struct Predicate {
type: #[id] PredicateType,
...loot-table-modifier:loot_modifier_predicate_types[[type]],
}
enum(string) ActionType {
PoolAdd = "loot-table-modifier:pool_add",
PoolRemove = "loot-table-modifier:pool_remove",
EntryAdd = "loot-table-modifier:entry_add",
EntryRemove = "loot-table-modifier:entry_remove",
EntryItemSet = "loot-table-modifier:entry_item_set",
ConditionAdd = "loot-table-modifier:condition_add"
}
enum(string) PredicateType {
Inverted = "loot-table-modifier:inverted",
AnyOf = "loot-table-modifier:any_of",
AllOf = "loot-table-modifier:all_of",
EntryItem = "loot-table-modifier:entry_item",
Table = "loot-table-modifier:table",
}
/// Utils
struct Pattern {
regexPattern: #[regex_pattern] string,
}
type LiteralOrPattern<T> = (
#[misode_member_name="Literal"] T |
#[misode_member_name="Regex pattern"] Pattern |
)
/// Actions
dispatch loot-table-modifier:loot_modifier_action_types[loot-table-modifier:pool_add] to struct {
pools: [LootPool],
}
dispatch loot-table-modifier:loot_modifier_action_types[loot-table-modifier:pool_remove] to struct {
}
dispatch loot-table-modifier:loot_modifier_action_types[loot-table-modifier:entry_add] to struct {
entries: [LootPoolEntry],
}
dispatch loot-table-modifier:loot_modifier_action_types[loot-table-modifier:entry_remove] to struct {
}
dispatch loot-table-modifier:loot_modifier_action_types[loot-table-modifier:entry_item_set] to struct {
name: #[id="item"] string,
canReplaceEntry?: boolean,
}
dispatch loot-table-modifier:loot_modifier_action_types[loot-table-modifier:condition_add] to struct {
conditions: [LootCondition],
includePools?: boolean,
includeEntries?: boolean,
}
/// Predicates
/// # op
dispatch loot-table-modifier:loot_modifier_predicate_types[loot-table-modifier:inverted] to struct {
term: Predicate,
}
dispatch loot-table-modifier:loot_modifier_predicate_types[loot-table-modifier:any_of] to struct {
terms: [Predicate],
}
dispatch loot-table-modifier:loot_modifier_predicate_types[loot-table-modifier:all_of] to struct {
terms: [Predicate],
}
/// # entry
dispatch loot-table-modifier:loot_modifier_predicate_types[loot-table-modifier:entry_item] to struct {
name: LiteralOrPattern<#[id="item"] string>,
}
/// # table
dispatch loot-table-modifier:loot_modifier_predicate_types[loot-table-modifier:table] to struct {
identifiers?: [LiteralOrPattern<#[id="loot_table"] string>],
types?: [LiteralOrPattern<LootContextType>],
}

View File

@@ -142,8 +142,6 @@ const SPECIAL_UNSET = '__unset__'
function StringHead({ type, optional, excludeStrings, node, ctx }: Props<StringType>) { function StringHead({ type, optional, excludeStrings, node, ctx }: Props<StringType>) {
const { locale } = useLocale() const { locale } = useLocale()
const { version } = useVersion()
const use1204 = !checkVersion(version, '1.20.5')
const nodeValue = (JsonStringNode.is(node) ? node.value : undefined)?.replaceAll('\n', '\\n') const nodeValue = (JsonStringNode.is(node) ? node.value : undefined)?.replaceAll('\n', '\\n')
const [value, setValue] = useState(nodeValue) const [value, setValue] = useState(nodeValue)
@@ -207,11 +205,7 @@ function StringHead({ type, optional, excludeStrings, node, ctx }: Props<StringT
}, [onChangeValue]) }, [onChangeValue])
return <> return <>
{((idRegistry === 'item' || idRegistry === 'block') && idTags !== 'implicit' && value && !value.startsWith('#')) && <label> {((idRegistry === 'item' || idRegistry === 'block') && idTags !== 'implicit' && value && !value.startsWith('#')) && <ItemIdPreview id={value}/>}
{use1204
? <ItemDisplay1204 item={new ItemStack1204(Identifier1204.parse(value), 1)} />
: <ItemDisplay item={new ItemStack(Identifier.parse(value), 1)} />}
</label>}
{isSelect ? <> {isSelect ? <>
<select value={value === undefined ? SPECIAL_UNSET : value} onInput={(e) => onChangeValue((e.target as HTMLInputElement).value)}> <select value={value === undefined ? SPECIAL_UNSET : value} onInput={(e) => onChangeValue((e.target as HTMLInputElement).value)}>
{(value === undefined || optional) && <option value={SPECIAL_UNSET}>{locale('unset')}</option>} {(value === undefined || optional) && <option value={SPECIAL_UNSET}>{locale('unset')}</option>}
@@ -234,6 +228,27 @@ function StringHead({ type, optional, excludeStrings, node, ctx }: Props<StringT
</> </>
} }
function ItemIdPreview({ id }: { id: string }) {
const { version } = useVersion()
const stack = useMemo(() => {
try {
if (!checkVersion(version, '1.20.5')) {
return new ItemStack1204(Identifier1204.parse(id), 1)
}
return new ItemStack(Identifier.parse(id), 1)
} catch (e) {
return undefined
}
}, [id, version])
return <>{stack && <label>
{stack instanceof ItemStack1204
? <ItemDisplay1204 item={stack} />
: <ItemDisplay item={stack} />}
</label>}</>
}
function EnumHead({ type, optional, excludeStrings, node, ctx }: Props<SimplifiedEnum>) { function EnumHead({ type, optional, excludeStrings, node, ctx }: Props<SimplifiedEnum>) {
const { locale } = useLocale() const { locale } = useLocale()
@@ -417,6 +432,10 @@ function UnionHead({ type, optional, node, ctx }: Props<UnionType<SimplifiedMcdo
} }
function formatUnionMember(type: SimplifiedMcdocTypeNoUnion, others: SimplifiedMcdocTypeNoUnion[]): string { function formatUnionMember(type: SimplifiedMcdocTypeNoUnion, others: SimplifiedMcdocTypeNoUnion[]): string {
const memberNameAttribute = type.attributes?.find(a => a.name === 'misode_member_name')?.value
if (memberNameAttribute?.kind === 'literal' && memberNameAttribute.value.kind === 'string') {
return memberNameAttribute.value.value
}
if (type.kind === 'literal') { if (type.kind === 'literal') {
return formatIdentifier(type.value.value.toString()) return formatIdentifier(type.value.value.toString())
} }

View File

@@ -282,7 +282,7 @@ export class Deepslate {
this.settingsCache = settings.noise this.settingsCache = settings.noise
const randomState = new this.d.RandomState(settings, seed) const randomState = new this.d.RandomState(settings, seed)
return randomState.router.finalDensity return randomState.router.finalDensity
} else { } else if (this.isVersion('1.18.2')) {
const random = this.d.XoroshiroRandom.create(seed).forkPositional() const random = this.d.XoroshiroRandom.create(seed).forkPositional()
const settings = this.d.NoiseSettings.fromJson({ const settings = this.d.NoiseSettings.fromJson({
min_y: minY, min_y: minY,
@@ -297,6 +297,8 @@ export class Deepslate {
this.settingsCache = settings this.settingsCache = settings
const originalFn = this.d.DensityFunction.fromJson(state) const originalFn = this.d.DensityFunction.fromJson(state)
return originalFn.mapAll(new (this.d.NoiseRouter as any).Visitor(random, settings)) return originalFn.mapAll(new (this.d.NoiseRouter as any).Visitor(random, settings))
} else {
return undefined
} }
} }

View File

@@ -311,7 +311,9 @@ const LootFunctions: Record<string, (params: any) => LootFunction> = {
}) })
}, },
enchant_with_levels: ({ options, levels }) => (item, ctx) => { enchant_with_levels: ({ options, levels }) => (item, ctx) => {
const allowed = getHomogeneousList(options, ctx.getEnchantmentTag) const allowed = options
? getHomogeneousList(options, ctx.getEnchantmentTag)
: [...ctx.getEnchantments().keys()]
const selected = selectEnchantments(item, computeInt(levels, ctx), allowed, ctx) const selected = selectEnchantments(item, computeInt(levels, ctx), allowed, ctx)
if (item.is('book')) { if (item.is('book')) {
item.id = Identifier.create('enchanted_book') item.id = Identifier.create('enchanted_book')
@@ -817,10 +819,13 @@ interface Enchant {
} }
function selectEnchantments(item: ResolvedItem, levels: number, options: string[], ctx: LootContext): Enchant[] { function selectEnchantments(item: ResolvedItem, levels: number, options: string[], ctx: LootContext): Enchant[] {
const enchantable = item.get('enchantable', tag => tag.isCompound() ? tag.getNumber('value') : undefined) let enchantable: number | undefined = 1 // Not fully correct before version 1.21.2
if (checkVersion(ctx.version, '1.21.2')) {
enchantable = item.get('enchantable', tag => tag.isCompound() ? tag.getNumber('value') : undefined)
if (enchantable === undefined) { if (enchantable === undefined) {
return [] return []
} }
}
let cost = levels + 1 + ctx.random.nextInt(Math.floor(enchantable / 4 + 1)) + ctx.random.nextInt(Math.floor(enchantable / 4 + 1)) let cost = levels + 1 + ctx.random.nextInt(Math.floor(enchantable / 4 + 1)) + ctx.random.nextInt(Math.floor(enchantable / 4 + 1))
const f = (ctx.random.nextFloat() + ctx.random.nextFloat() - 1) * 0.15 const f = (ctx.random.nextFloat() + ctx.random.nextFloat() - 1) * 0.15
cost = clamp(Math.round(cost + cost * f), 1, Number.MAX_SAFE_INTEGER) cost = clamp(Math.round(cost + cost * f), 1, Number.MAX_SAFE_INTEGER)

View File

@@ -49,6 +49,35 @@ export function placeItems(version: VersionId, recipe: any, animation: number, i
const choice = materials[animation % materials.length] const choice = materials[animation % materials.length]
items.set('crafting.1', choice) items.set('crafting.1', choice)
} }
} else if (type === 'crafting_dye') {
const target = allIngredientChoices(version, recipe.target, itemTags)
if (target.length > 0) {
const choice = target[animation % target.length]
items.set('crafting.0', choice)
}
const dye = allIngredientChoices(version, recipe.dye, itemTags)
if (dye.length > 0) {
const choice = dye[animation % dye.length]
items.set('crafting.1', choice)
}
} else if (type === 'crafting_imbue') {
const source = allIngredientChoices(version, recipe.source, itemTags)
if (source.length > 0) {
const choice = source[animation % source.length]
items.set('crafting.4', choice)
}
const material = allIngredientChoices(version, recipe.material, itemTags)
if (material.length > 0) {
const choice = material[animation % material.length]
items.set('crafting.0', choice)
items.set('crafting.1', choice)
items.set('crafting.2', choice)
items.set('crafting.3', choice)
items.set('crafting.5', choice)
items.set('crafting.6', choice)
items.set('crafting.7', choice)
items.set('crafting.8', choice)
}
} else if (type === 'smelting' || type === 'smoking' || type === 'blasting' || type === 'campfire_cooking') { } else if (type === 'smelting' || type === 'smoking' || type === 'blasting' || type === 'campfire_cooking') {
const choices = allIngredientChoices(version, recipe.ingredient, itemTags) const choices = allIngredientChoices(version, recipe.ingredient, itemTags)
if (choices.length > 0) { if (choices.length > 0) {

View File

@@ -1,15 +0,0 @@
import type { Bugfix } from '../../services/DataFetcher.js'
import { Badge } from '../Badge.jsx'
import { Card } from '../Card.jsx'
interface Props {
fix: Bugfix
}
export function Issue({ fix }: Props) {
return <Card overlay={fix.id} link={`https://mojira.dev/${fix.id}`}>
<div class="changelog-content">{fix.summary}</div>
<div class="badges-list">
{fix.categories.map(c => <Badge label={c} />)}
</div>
</Card>
}

View File

@@ -1,22 +0,0 @@
import { useLocale } from '../../contexts/Locale.jsx'
import { useAsync } from '../../hooks/useAsync.js'
import { fetchBugfixes } from '../../services/DataFetcher.js'
import { Issue } from './Issue.jsx'
interface Props {
version: string
}
export function IssueList({ version }: Props) {
const { locale } = useLocale()
const { value: issues, loading } = useAsync(() => fetchBugfixes(version), [version])
return <div class="card-column">
{issues === undefined || loading ? <>
<span class="note">{locale('loading')}</span>
</> : issues.length === 0 ? <>
<span class="note">{locale('versions.fixes.no_results')}</span>
</> : <>
{issues?.map(issue => <Issue key={issue.id} fix={issue} />)}
</>}
</div>
}

View File

@@ -4,11 +4,11 @@ import { useLocale } from '../../contexts/index.js'
import { useAsync } from '../../hooks/useAsync.js' import { useAsync } from '../../hooks/useAsync.js'
import { useSearchParam } from '../../hooks/useSearchParam.js' import { useSearchParam } from '../../hooks/useSearchParam.js'
import type { VersionMeta } from '../../services/index.js' import type { VersionMeta } from '../../services/index.js'
import { fetchChangelogs, getArticleLink } from '../../services/index.js' import { fetchChangelogs } from '../../services/index.js'
import { Octicon } from '../Octicon.js' import { Octicon } from '../Octicon.js'
import { ChangelogList, IssueList, VersionDiff, VersionMetaData } from './index.js' import { ChangelogList, VersionDiff, VersionMetaData } from './index.js'
const Tabs = ['changelog', 'diff', 'fixes'] const Tabs = ['changelog', 'diff']
const WIKI_PAGE_PREFIX = 'https://minecraft.wiki/w/Java_Edition_' const WIKI_PAGE_PREFIX = 'https://minecraft.wiki/w/Java_Edition_'
interface Props { interface Props {
@@ -31,6 +31,7 @@ export function VersionDetail({ id, version }: Props) {
changes?.filter(c => c.version === id || (c.group === id && !c.tags.includes('obsolete'))), changes?.filter(c => c.version === id || (c.group === id && !c.tags.includes('obsolete'))),
[id, changes]) [id, changes])
const fixesLink = version && getFixesLink(version.id)
const articleLink = version && getArticleLink(version.id) const articleLink = version && getArticleLink(version.id)
const wikiPageLink = version && WIKI_PAGE_PREFIX + version.name const wikiPageLink = version && WIKI_PAGE_PREFIX + version.name
@@ -55,6 +56,10 @@ export function VersionDetail({ id, version }: Props) {
{Tabs.map(t => <Link key={t} class={tab === t ? 'selected' : ''} href={`/versions/?id=${id}&tab=${t}`}> {Tabs.map(t => <Link key={t} class={tab === t ? 'selected' : ''} href={`/versions/?id=${id}&tab=${t}`}>
{locale(`versions.${t}`)} {locale(`versions.${t}`)}
</Link>)} </Link>)}
<a href={fixesLink} target="_blank">
{locale('versions.fixes')}
{Octicon.link_external}
</a>
{articleLink && <a href={articleLink} target="_blank"> {articleLink && <a href={articleLink} target="_blank">
{locale('versions.article')} {locale('versions.article')}
{Octicon.link_external} {Octicon.link_external}
@@ -67,7 +72,6 @@ export function VersionDetail({ id, version }: Props) {
<div class="version-tab"> <div class="version-tab">
{tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder="asc" />} {tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder="asc" />}
{tab === 'diff' && <VersionDiff version={id} />} {tab === 'diff' && <VersionDiff version={id} />}
{tab === 'fixes' && <IssueList version={id} />}
</div> </div>
</div> </div>
</> </>
@@ -76,3 +80,96 @@ export function VersionDetail({ id, version }: Props) {
export function releaseDate(version: VersionMeta) { export function releaseDate(version: VersionMeta) {
return new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' }) return new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })
} }
const FIXES_PREFIX = 'https://mojira.dev/?project=MC&resolution=Fixed&fix_version='
function getFixesLink(version: string) {
let match
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-snapshot-(\d+)$/)) && match[1] && match[2]) {
return FIXES_PREFIX + encodeURIComponent(`${match[1]} Snapshot ${match[2]}`)
}
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-pre-?(\d+)$/)) && match[1] && match[2]) {
return FIXES_PREFIX + encodeURIComponent(`${match[1]} Pre-Release ${match[2]}`)
}
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-rc-?(\d+)$/)) && match[1]) {
return FIXES_PREFIX + encodeURIComponent(`${match[1]} Release Candidate ${match[2]}`)
}
return FIXES_PREFIX + encodeURIComponent(version)
}
const ARTICLE_PREFIX = 'https://www.minecraft.net/article/'
const ARTICLE_OVERRIDES = new Map(Object.entries({
'1.16-pre2': 'minecraft-1-16-pre-release-1',
'1.16-pre4': 'minecraft-1-16-pre-release-3',
'1.16-pre5': 'minecraft-1-16-pre-release-3',
'1.16-pre7': 'minecraft-1-16-pre-release-6',
'1.16-pre8': 'minecraft-1-16-pre-release-6',
'1.16-rc1': 'minecraft-1-16-release-candidate',
'1.16': 'nether-update-java',
'1.16.2-pre3': 'minecraft-1-16-2-pre-release-2',
'1.16.2-rc1': 'minecraft-1-16-2-pre-release-2',
'1.16.2-rc2': 'minecraft-1-16-2-pre-release-2',
'1.17-pre3': 'minecraft-1-17-pre-release-2',
'1.17-pre4': 'minecraft-1-17-pre-release-2',
'1.17-pre5': 'minecraft-1-17-pre-release-2',
'1.17.1-pre3': 'minecraft-1-17-1-pre-release-2',
'1.17-rc2': 'minecraft-1-17-release-candidate-1',
'1.17': 'caves---cliffs--part-i-out-today-java',
'1.17.1-rc2': 'minecraft-1-17-1-release-candidate-1',
'1.18-pre3': 'minecraft-1-18-pre-release-2',
'1.18-pre4': 'minecraft-1-18-pre-release-2',
'1.18-pre5': 'minecraft-1-18-pre-release-2',
'1.18-pre7': 'minecraft-1-18-pre-release-6',
'1.18-pre8': 'minecraft-1-18-pre-release-6',
'1.18-rc2': 'minecraft-1-18-release-candidate-1',
'1.18-rc3': 'minecraft-1-18-release-candidate-1',
'1.18-rc4': 'minecraft-1-18-release-candidate-1',
'1.18': 'caves---cliffs--part-ii-out-today-java',
'1.18.1-rc2': 'minecraft-1-18-1-release-candidate-1',
'1.18.1-rc3': 'minecraft-1-18-1-release-candidate-1',
'1.18.2-pre3': 'minecraft-1-18-2-pre-release-2',
'1.18.2-pre5': 'minecraft-1-18-2-pre-release-4',
'1.19-pre3': 'minecraft-1-19-pre-release-2',
'1.19-pre5': 'minecraft-1-19-pre-release-4',
'1.19-rc2': 'minecraft-1-19-release-candidate-1',
'1.19': 'the-wild-update-out-today-java',
'1.19.1-pre4': 'minecraft-1-19-1-pre-release-3',
'1.19.2-rc2': 'minecraft-1-19-2-release-candidate-1',
'1.19.3-pre2': 'minecraft-1-19-3-pre-release-1',
'1.19.3-rc2': 'minecraft-1-19-3-release-candidate-1',
'1.19.4-pre3': 'minecraft-1-19-4-pre-release-2',
'1.19.4-rc2': 'minecraft-1-19-4-release-candidate-1',
'1.20-pre3': 'minecraft-1-20-pre-release-2',
'1.20-pre4': 'minecraft-1-20-pre-release-2',
'1.20-pre6': 'minecraft-1-20-pre-release-5',
'1.20': 'trails-tales-update-out-today-java',
'1.20.1': 'minecraft--java-edition-1-20-1',
'1.20.2-pre2': 'minecraft-1-20-2-pre-release-1',
'23w43b': 'minecraft-snapshot-23w43b',
'24w03b': 'minecraft-snapshot-24w03b',
'24w05b': 'minecraft-snapshot-24w05b',
}))
function getArticleLink(version: string): string | undefined {
const override = ARTICLE_OVERRIDES.get(version)
if (override) {
return ARTICLE_PREFIX + override
}
let match
if ((match = version.match(/^(\d\dw\d\d)[a-z]$/)) && match[1]) {
return ARTICLE_PREFIX + 'minecraft-snapshot-' + match[1] + 'a'
}
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-snapshot-(\d+)$/)) && match[1] && match[2]) {
return ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-snapshot-' + match[2]
}
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-pre-?(\d+)$/)) && match[1] && match[2]) {
return ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-pre-release-' + match[2]
}
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-rc-?(\d+)$/)) && match[1]) {
return ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-release-candidate-' + match[2]
}
if (version.match(/^\d+\.\d+(\.\d+)?$/)) {
return ARTICLE_PREFIX + 'minecraft-java-edition-' + version.replaceAll('.', '-')
}
return undefined
}

View File

@@ -1,7 +1,6 @@
export * from '../Badge.jsx' export * from '../Badge.jsx'
export * from './ChangelogEntry.js' export * from './ChangelogEntry.js'
export * from './ChangelogList.js' export * from './ChangelogList.js'
export * from './IssueList.jsx'
export * from './VersionDetail.js' export * from './VersionDetail.js'
export * from './VersionDiff.jsx' export * from './VersionDiff.jsx'
export * from './VersionEntry.js' export * from './VersionEntry.js'

View File

@@ -1,74 +0,0 @@
const ARTICLE_PREFIX = 'https://www.minecraft.net/article/'
const ARTICLE_OVERRIDES = new Map(Object.entries({
'1.16-pre2': 'minecraft-1-16-pre-release-1',
'1.16-pre4': 'minecraft-1-16-pre-release-3',
'1.16-pre5': 'minecraft-1-16-pre-release-3',
'1.16-pre7': 'minecraft-1-16-pre-release-6',
'1.16-pre8': 'minecraft-1-16-pre-release-6',
'1.16-rc1': 'minecraft-1-16-release-candidate',
'1.16': 'nether-update-java',
'1.16.2-pre3': 'minecraft-1-16-2-pre-release-2',
'1.16.2-rc1': 'minecraft-1-16-2-pre-release-2',
'1.16.2-rc2': 'minecraft-1-16-2-pre-release-2',
'1.17-pre3': 'minecraft-1-17-pre-release-2',
'1.17-pre4': 'minecraft-1-17-pre-release-2',
'1.17-pre5': 'minecraft-1-17-pre-release-2',
'1.17.1-pre3': 'minecraft-1-17-1-pre-release-2',
'1.17-rc2': 'minecraft-1-17-release-candidate-1',
'1.17': 'caves---cliffs--part-i-out-today-java',
'1.17.1-rc2': 'minecraft-1-17-1-release-candidate-1',
'1.18-pre3': 'minecraft-1-18-pre-release-2',
'1.18-pre4': 'minecraft-1-18-pre-release-2',
'1.18-pre5': 'minecraft-1-18-pre-release-2',
'1.18-pre7': 'minecraft-1-18-pre-release-6',
'1.18-pre8': 'minecraft-1-18-pre-release-6',
'1.18-rc2': 'minecraft-1-18-release-candidate-1',
'1.18-rc3': 'minecraft-1-18-release-candidate-1',
'1.18-rc4': 'minecraft-1-18-release-candidate-1',
'1.18': 'caves---cliffs--part-ii-out-today-java',
'1.18.1-rc2': 'minecraft-1-18-1-release-candidate-1',
'1.18.1-rc3': 'minecraft-1-18-1-release-candidate-1',
'1.18.2-pre3': 'minecraft-1-18-2-pre-release-2',
'1.18.2-pre5': 'minecraft-1-18-2-pre-release-4',
'1.19-pre3': 'minecraft-1-19-pre-release-2',
'1.19-pre5': 'minecraft-1-19-pre-release-4',
'1.19-rc2': 'minecraft-1-19-release-candidate-1',
'1.19': 'the-wild-update-out-today-java',
'1.19.1-pre4': 'minecraft-1-19-1-pre-release-3',
'1.19.2-rc2': 'minecraft-1-19-2-release-candidate-1',
'1.19.3-pre2': 'minecraft-1-19-3-pre-release-1',
'1.19.3-rc2': 'minecraft-1-19-3-release-candidate-1',
'1.19.4-pre3': 'minecraft-1-19-4-pre-release-2',
'1.19.4-rc2': 'minecraft-1-19-4-release-candidate-1',
'1.20-pre3': 'minecraft-1-20-pre-release-2',
'1.20-pre4': 'minecraft-1-20-pre-release-2',
'1.20-pre6': 'minecraft-1-20-pre-release-5',
'1.20': 'trails-tales-update-out-today-java',
'1.20.1': 'minecraft--java-edition-1-20-1',
'1.20.2-pre2': 'minecraft-1-20-2-pre-release-1',
'23w43b': 'minecraft-snapshot-23w43b',
'24w03b': 'minecraft-snapshot-24w03b',
'24w05b': 'minecraft-snapshot-24w05b',
}))
export function getArticleLink(version: string): string | undefined {
const override = ARTICLE_OVERRIDES.get(version)
if (override) {
return ARTICLE_PREFIX + override
}
let match
if ((match = version.match(/^(\d\dw\d\d)[a-z]$/)) && match[1]) {
return ARTICLE_PREFIX + 'minecraft-snapshot-' + match[1] + 'a'
}
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-pre([0-9]+)$/)) && match[1] && match[2]) {
return ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-pre-release-' + match[2]
}
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-rc([0-9]+)$/)) && match[1]) {
return ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-release-candidate-' + match[2]
}
if (version.match(/^\d+\.\d+(\.\d+)?$/)) {
return ARTICLE_PREFIX + 'minecraft-java-edition-' + version.replaceAll('.', '-')
}
return undefined
}

View File

@@ -14,7 +14,6 @@ const mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'
const mcmetaTarballUrl = 'https://github.com/misode/mcmeta/tarball' const mcmetaTarballUrl = 'https://github.com/misode/mcmeta/tarball'
const vanillaMcdocUrl = 'https://raw.githubusercontent.com/SpyglassMC/vanilla-mcdoc' const vanillaMcdocUrl = 'https://raw.githubusercontent.com/SpyglassMC/vanilla-mcdoc'
const changesUrl = 'https://raw.githubusercontent.com/misode/technical-changes' const changesUrl = 'https://raw.githubusercontent.com/misode/technical-changes'
const fixesUrl = 'https://raw.githubusercontent.com/misode/mcfixes'
const versionDiffUrl = 'https://mcmeta-diff.misode.workers.dev' const versionDiffUrl = 'https://mcmeta-diff.misode.workers.dev'
const whatsNewUrl = 'https://whats-new.misode.workers.dev' const whatsNewUrl = 'https://whats-new.misode.workers.dev'
@@ -309,31 +308,6 @@ export async function fetchChangelogs(): Promise<Change[]> {
} }
} }
export interface Bugfix {
id: string,
summary: string,
labels: string[],
status: string,
confirmation_status: string,
categories: string[],
priority: string,
fix_versions: string[],
creation_date: string,
resolution_date: string,
updated_date: string,
watches: number,
votes: number,
}
export async function fetchBugfixes(version: string): Promise<Bugfix[]> {
try {
const fixes = await cachedFetch<Bugfix[]>(`${fixesUrl}/main/versions/${version}.json`, { refresh: true })
return fixes
} catch (e) {
throw new Error(`Error occured while fetching bugfixes for version ${version}: ${message(e)}`)
}
}
export interface GitHubCommitFile { export interface GitHubCommitFile {
sha: string, sha: string,
filename: string, filename: string,

View File

@@ -420,20 +420,12 @@ const initialize: core.ProjectInitializer = async (ctx) => {
// Duplicate these from spyglass for now, until they are exported separately // Duplicate these from spyglass for now, until they are exported separately
function registerAttributes(meta: core.MetaRegistry, release: ReleaseVersion, versions: VersionMeta[]) { function registerAttributes(meta: core.MetaRegistry, release: ReleaseVersion, versions: VersionMeta[]) {
mcdoc.runtime.registerAttribute(meta, 'since', mcdoc.runtime.attribute.validator.string, { mcdoc.runtime.registerAttribute(meta, 'since', mcdoc.runtime.attribute.validator.string, {
filterElement: (config, ctx) => { filterElement: (config, _) => {
if (!config.startsWith('1.')) {
ctx.logger.warn(`Invalid mcdoc attribute for "since": ${config}`)
return true
}
return ReleaseVersion.cmp(release, config as ReleaseVersion) >= 0 return ReleaseVersion.cmp(release, config as ReleaseVersion) >= 0
}, },
}) })
mcdoc.runtime.registerAttribute(meta, 'until', mcdoc.runtime.attribute.validator.string, { mcdoc.runtime.registerAttribute(meta, 'until', mcdoc.runtime.attribute.validator.string, {
filterElement: (config, ctx) => { filterElement: (config, _) => {
if (!config.startsWith('1.')) {
ctx.logger.warn(`Invalid mcdoc attribute for "until": ${config}`)
return true
}
return ReleaseVersion.cmp(release, config as ReleaseVersion) < 0 return ReleaseVersion.cmp(release, config as ReleaseVersion) < 0
}, },
}) })
@@ -442,14 +434,10 @@ function registerAttributes(meta: core.MetaRegistry, release: ReleaseVersion, ve
'deprecated', 'deprecated',
mcdoc.runtime.attribute.validator.optional(mcdoc.runtime.attribute.validator.string), mcdoc.runtime.attribute.validator.optional(mcdoc.runtime.attribute.validator.string),
{ {
mapField: (config, field, ctx) => { mapField: (config, field, _) => {
if (config === undefined) { if (config === undefined) {
return { ...field, deprecated: true } return { ...field, deprecated: true }
} }
if (!config.startsWith('1.')) {
ctx.logger.warn(`Invalid mcdoc attribute for "deprecated": ${config}`)
return field
}
if (ReleaseVersion.cmp(release, config as ReleaseVersion) >= 0) { if (ReleaseVersion.cmp(release, config as ReleaseVersion) >= 0) {
return { ...field, deprecated: true } return { ...field, deprecated: true }
} }

View File

@@ -1,9 +1,9 @@
import config from '../Config.js' import config from '../Config.js'
export const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2', '1.19', '1.19.3', '1.19.4', '1.20', '1.20.2', '1.20.3', '1.20.5', '1.21', '1.21.2', '1.21.4', '1.21.5', '1.21.6', '1.21.9', '1.21.11', '26.1'] as const export const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2', '1.19', '1.19.3', '1.19.4', '1.20', '1.20.2', '1.20.3', '1.20.5', '1.21', '1.21.2', '1.21.4', '1.21.5', '1.21.6', '1.21.9', '1.21.11', '26.1', '26.2'] as const
export type VersionId = typeof VersionIds[number] export type VersionId = typeof VersionIds[number]
export const DEFAULT_VERSION: VersionId = '1.21.11' export const DEFAULT_VERSION: VersionId = '26.1'
export function checkVersion(versionId: string, minVersionId: string | undefined, maxVersionId?: string) { export function checkVersion(versionId: string, minVersionId: string | undefined, maxVersionId?: string) {
const version = config.versions.findIndex(v => v.id === versionId) const version = config.versions.findIndex(v => v.id === versionId)

View File

@@ -1,4 +1,3 @@
export * from './Article.js'
export * from './DataFetcher.js' export * from './DataFetcher.js'
export * from './Sharing.js' export * from './Sharing.js'
export * from './Source.js' export * from './Source.js'

View File

@@ -212,9 +212,16 @@
}, },
{ {
"id": "26.1", "id": "26.1",
"ref": "26.1.1",
"name": "26.1",
"pack_format": 101,
"show": true
},
{
"id": "26.2",
"dynamic": true, "dynamic": true,
"name": "26.1 (dev)", "name": "26.2",
"pack_format": 95, "pack_format": 102,
"show": true "show": true
} }
], ],
@@ -238,12 +245,12 @@
{ {
"id": "advancement", "id": "advancement",
"url": "advancement", "url": "advancement",
"wiki": "https://minecraft.wiki/w/Custom_advancement" "wiki": "https://minecraft.wiki/w/Advancement_definition"
}, },
{ {
"id": "recipe", "id": "recipe",
"url": "recipe", "url": "recipe",
"wiki": "https://minecraft.wiki/w/Recipe#JSON_format" "wiki": "https://minecraft.wiki/w/Recipe_(Java_Edition)#JSON_format"
}, },
{ {
"id": "chat_type", "id": "chat_type",
@@ -271,7 +278,7 @@
"id": "banner_pattern", "id": "banner_pattern",
"url": "banner-pattern", "url": "banner-pattern",
"minVersion": "1.20.5", "minVersion": "1.20.5",
"wiki": "https://minecraft.wiki/w/Banner/Patterns#JSON_Format" "wiki": "https://minecraft.wiki/w/Banner_pattern_definition"
}, },
{ {
"id": "wolf_variant", "id": "wolf_variant",
@@ -288,7 +295,7 @@
"id": "enchantment", "id": "enchantment",
"url": "enchantment", "url": "enchantment",
"minVersion": "1.21", "minVersion": "1.21",
"wiki": "https://minecraft.wiki/w/Custom_enchantment" "wiki": "https://minecraft.wiki/w/Enchantment_definition"
}, },
{ {
"id": "enchantment_provider", "id": "enchantment_provider",
@@ -300,7 +307,7 @@
"id": "painting_variant", "id": "painting_variant",
"url": "painting-variant", "url": "painting-variant",
"minVersion": "1.21", "minVersion": "1.21",
"wiki": "https://minecraft.wiki/w/Painting_variant" "wiki": "https://minecraft.wiki/w/Painting_variant_definition"
}, },
{ {
"id": "jukebox_song", "id": "jukebox_song",
@@ -388,25 +395,26 @@
{ {
"id": "trade_set", "id": "trade_set",
"url": "trade-set", "url": "trade-set",
"minVersion": "26.1" "minVersion": "26.1",
"wiki": "https://minecraft.wiki/w/Trade_set"
}, },
{ {
"id": "text_component", "id": "text_component",
"url": "text-component", "url": "text-component",
"noPath": true, "noPath": true,
"wiki": "https://minecraft.wiki/w/Raw_JSON_text_format#Java_Edition" "wiki": "https://minecraft.wiki/w/Text_component_format#Java_Edition"
}, },
{ {
"id": "pack_mcmeta", "id": "pack_mcmeta",
"url": "pack-mcmeta", "url": "pack-mcmeta",
"wiki": "https://minecraft.wiki/w/Data_pack#pack.mcmeta" "wiki": "https://minecraft.wiki/w/pack.mcmeta"
}, },
{ {
"id": "dimension", "id": "dimension",
"url": "dimension", "url": "dimension",
"tags": ["worldgen"], "tags": ["worldgen"],
"minVersion": "1.16", "minVersion": "1.16",
"wiki": "https://minecraft.wiki/w/Custom_dimension" "wiki": "https://minecraft.wiki/w/Dimension_definition"
}, },
{ {
"id": "dimension_type", "id": "dimension_type",
@@ -420,14 +428,14 @@
"url": "worldgen/biome", "url": "worldgen/biome",
"tags": ["worldgen"], "tags": ["worldgen"],
"minVersion": "1.16", "minVersion": "1.16",
"wiki": "https://minecraft.wiki/w/Custom_biome" "wiki": "https://minecraft.wiki/w/Biome_definition"
}, },
{ {
"id": "worldgen/configured_carver", "id": "worldgen/configured_carver",
"url": "worldgen/carver", "url": "worldgen/carver",
"tags": ["worldgen"], "tags": ["worldgen"],
"minVersion": "1.16", "minVersion": "1.16",
"wiki": "https://minecraft.wiki/w/Custom_carver" "wiki": "https://minecraft.wiki/w/Carver_definition"
}, },
{ {
"id": "worldgen/configured_feature", "id": "worldgen/configured_feature",
@@ -462,7 +470,7 @@
"url": "worldgen/noise-settings", "url": "worldgen/noise-settings",
"tags": ["worldgen"], "tags": ["worldgen"],
"minVersion": "1.16", "minVersion": "1.16",
"wiki": "https://minecraft.wiki/w/Custom_noise_settings" "wiki": "https://minecraft.wiki/w/Noise_settings"
}, },
{ {
"id": "worldgen/configured_structure_feature", "id": "worldgen/configured_structure_feature",
@@ -476,7 +484,7 @@
"url": "worldgen/structure", "url": "worldgen/structure",
"tags": ["worldgen"], "tags": ["worldgen"],
"minVersion": "1.19", "minVersion": "1.19",
"wiki": "https://minecraft.wiki/w/Custom_structure" "wiki": "https://minecraft.wiki/w/Structure_definition"
}, },
{ {
"id": "worldgen/structure_set", "id": "worldgen/structure_set",
@@ -512,14 +520,14 @@
"url": "worldgen/world-preset", "url": "worldgen/world-preset",
"tags": ["worldgen"], "tags": ["worldgen"],
"minVersion": "1.19", "minVersion": "1.19",
"wiki": "https://minecraft.wiki/w/Custom_world_preset" "wiki": "https://minecraft.wiki/w/World_preset_definition"
}, },
{ {
"id": "worldgen/flat_level_generator_preset", "id": "worldgen/flat_level_generator_preset",
"url": "worldgen/flat-world-preset", "url": "worldgen/flat-world-preset",
"tags": ["worldgen"], "tags": ["worldgen"],
"minVersion": "1.19", "minVersion": "1.19",
"wiki": "https://minecraft.wiki/w/Custom_world_preset#Superflat_Level_Generation_Preset" "wiki": "https://minecraft.wiki/w/World_preset_definition#Superflat_Level_Generation_Preset"
}, },
{ {
"id": "world", "id": "world",
@@ -739,7 +747,7 @@
"path": "equipment", "path": "equipment",
"tags": ["assets"], "tags": ["assets"],
"minVersion": "1.21.4", "minVersion": "1.21.4",
"wiki": "https://minecraft.wiki/w/Model#Equipment_models" "wiki": "https://minecraft.wiki/w/Equipment"
}, },
{ {
"id": "lang", "id": "lang",
@@ -754,7 +762,7 @@
"path": "font", "path": "font",
"tags": ["assets"], "tags": ["assets"],
"minVersion": "1.16", "minVersion": "1.16",
"wiki": "https://minecraft.wiki/w/Resource_pack#Fonts" "wiki": "https://minecraft.wiki/w/Font#Providers"
}, },
{ {
"id": "atlas", "id": "atlas",
@@ -762,7 +770,7 @@
"path": "atlases", "path": "atlases",
"tags": ["assets"], "tags": ["assets"],
"minVersion": "1.19.3", "minVersion": "1.19.3",
"wiki": "https://minecraft.wiki/w/Resource_pack#Atlases" "wiki": "https://minecraft.wiki/w/Atlas"
}, },
{ {
"id": "post_effect", "id": "post_effect",
@@ -948,6 +956,13 @@
"tags": ["partners"], "tags": ["partners"],
"dependency": "create" "dependency": "create"
}, },
{
"id": "loot-table-modifier:loot_modifier",
"url": "loot-table-modifier/loot_modifier",
"path": "loot-table-modifier/loot_modifier",
"tags": ["partners"],
"dependency": "loot-table-modifier"
},
{ {
"id": "thermoo:environment_provider", "id": "thermoo:environment_provider",
"url": "thermoo/environment_provider", "url": "thermoo/environment_provider",

View File

@@ -1,7 +1,7 @@
{ {
"add": "Hinzufügen", "add": "Hinzufügen",
"add_bottom": "Zu Ende hinzufügen", "add_bottom": "Zu Ende hinzufügen",
"add_top": "Zu Anfang hinzufügen", "add_top": "Zum Anfang hinzufügen",
"collapse": "Minimieren", "collapse": "Minimieren",
"collapse_all": "Halte %0% um alles zu minimieren", "collapse_all": "Halte %0% um alles zu minimieren",
"copied": "Kopiert!", "copied": "Kopiert!",
@@ -103,12 +103,12 @@
"choose_file": "Datei auswählen", "choose_file": "Datei auswählen",
"choose_zip_file": "ZIP-Datei auswählen", "choose_zip_file": "ZIP-Datei auswählen",
"changelog.search": "Änderungen durchsuchen", "changelog.search": "Änderungen durchsuchen",
"changelog": "Technische neuerungen", "changelog": "Technische Neuerungen",
"any_version": "Jede", "any_version": "Alle",
"assets": "Assets", "assets": "Assets",
"back": "Zurück", "back": "Zurück",
"configure_layers": "Ebenen Konfigurieren", "configure_layers": "Ebenen Konfigurieren",
"copy_share": "Teilen-Link kopieren", "copy_share": "Link kopieren/teilen",
"changelog.no_results": "Keine aufgezeichneten änderungen", "changelog.no_results": "Keine aufgezeichneten änderungen",
"contributor.code": "Code Mitwirkender", "contributor.code": "Code Mitwirkender",
"generator.error_max_version": "Dieser Generator ist nicht in Versionen über %0% verfügbar", "generator.error_max_version": "Dieser Generator ist nicht in Versionen über %0% verfügbar",
@@ -371,5 +371,21 @@
"generator.pixelmon:pokedex_region": "Region", "generator.pixelmon:pokedex_region": "Region",
"partner.create": "Erstellen", "partner.create": "Erstellen",
"partner.thermoo": "Thermoo", "partner.thermoo": "Thermoo",
"partner.pixelmon": "Pixelmon" "partner.pixelmon": "Pixelmon",
"generator.tag/timeline": "Zeitleisten Tag",
"generator.timeline": "Zeitleiste",
"generator.zombie_nautilus_variant": "Zombienautilus Variante",
"generator.tag/zombie_nautilus_variant": "Zombienautilus Variante Tag",
"generator.ad_astra:planets": "Ad Astra-Planet",
"generator.tag/trade_set": "Handelsset-Tag",
"generator.tag/villager_trade": "Handel-Tag",
"generator.trade_set": "Handelsset",
"generator.villager_trade": "Handel",
"inline": "Inline",
"partner.ad_astra": "Ad Astra",
"generator.neoforge:data_map_acceptable_villager_distances": "Datenkarte akzeptabler Dorfbewohner-Distanzen",
"generator.neoforge:data_map_villager_types": "Datenkarte von Dorfbewohner-Biom-Typen",
"generator.loot-table-modifier:loot_modifier": "Beutetabellemodifikator",
"generator.neoforge:data_map_strippables": "Entrindbare Datenzuordnung",
"partner.loot-table-modifier": "Beutetabllenmodifikator"
} }

View File

@@ -92,6 +92,7 @@
"generator.jukebox_song": "Jukebox Song", "generator.jukebox_song": "Jukebox Song",
"generator.lang": "Language", "generator.lang": "Language",
"generator.loot_table": "Loot Table", "generator.loot_table": "Loot Table",
"generator.loot-table-modifier:loot_modifier": "Loot Modifier",
"generator.model": "Model", "generator.model": "Model",
"generator.texture_meta": "Texture Metadata", "generator.texture_meta": "Texture Metadata",
"generator.neoforge:biome_modifier": "Biome Modifier", "generator.neoforge:biome_modifier": "Biome Modifier",
@@ -229,6 +230,7 @@
"partner.fabric": "Fabric", "partner.fabric": "Fabric",
"partner.immersive_weathering": "Immersive Weathering", "partner.immersive_weathering": "Immersive Weathering",
"partner.lithostitched": "Lithostitched", "partner.lithostitched": "Lithostitched",
"partner.loot-table-modifier": "Loot Table Modifier",
"partner.neoforge": "NeoForge", "partner.neoforge": "NeoForge",
"partner.obsidian": "Obsidian", "partner.obsidian": "Obsidian",
"partner.ohthetreesyoullgrow": "Oh The Trees You'll Grow", "partner.ohthetreesyoullgrow": "Oh The Trees You'll Grow",
@@ -360,7 +362,6 @@
"versions.data_version": "Data version", "versions.data_version": "Data version",
"versions.diff": "Mcmeta diff", "versions.diff": "Mcmeta diff",
"versions.fixes": "Fixed bugs", "versions.fixes": "Fixed bugs",
"versions.fixes.no_results": "No fixes",
"versions.latest_release": "Latest release", "versions.latest_release": "Latest release",
"versions.latest_snapshot": "Latest snapshot", "versions.latest_snapshot": "Latest snapshot",
"versions.minecraft_versions": "Minecraft Versions", "versions.minecraft_versions": "Minecraft Versions",

View File

@@ -235,5 +235,11 @@
"generator.frog_variant": "Variante de la Rana", "generator.frog_variant": "Variante de la Rana",
"generator.test_instance": "Instancia de prueba", "generator.test_instance": "Instancia de prueba",
"generator.test_environment": "Entorno de prueba", "generator.test_environment": "Entorno de prueba",
"generator.wolf_variant": "Variante del lobo" "generator.wolf_variant": "Variante del lobo",
"generator.create:recipes": "Crear recetas",
"generator.dialog": "Diálogo",
"generator.tag/dialog": "Etiqueta de diálogo",
"generator.tag/timeline": "Etiqueta de línea de tiempo",
"generator.tag/zombie_nautilus_variant": "Etiqueta de variante de Nautilus zombi",
"generator.thermoo:environment_provider": "Proveedor de entorno"
} }

View File

@@ -58,7 +58,7 @@
"format.snbt": "SNBT", "format.snbt": "SNBT",
"format.yaml": "YAML", "format.yaml": "YAML",
"generate_new_color": "Générer une nouvelle couleur", "generate_new_color": "Générer une nouvelle couleur",
"generate_new_seed": "Générer une nouvelle graine", "generate_new_seed": "Générer une nouvelle seed",
"generate_new_uuid": "Générer un nouvel UUID", "generate_new_uuid": "Générer un nouvel UUID",
"generator.advancement": "Progrès", "generator.advancement": "Progrès",
"generator.atlas": "Atlas", "generator.atlas": "Atlas",
@@ -119,7 +119,7 @@
"generator.tag/worldgen/structure_set": "Tag d'ensemble de structures", "generator.tag/worldgen/structure_set": "Tag d'ensemble de structures",
"generator.tag/worldgen/world_preset": "Tag de préréglage de monde", "generator.tag/worldgen/world_preset": "Tag de préréglage de monde",
"generator.text_component": "Composant de texte", "generator.text_component": "Composant de texte",
"generator.trial_spawner": "Générateur des épreuves", "generator.trial_spawner": "Spawner de chambre d'épreuve",
"generator.trim_material": "Matériau d'ornement", "generator.trim_material": "Matériau d'ornement",
"generator.trim_pattern": "Modèle d'ornement", "generator.trim_pattern": "Modèle d'ornement",
"generator.wolf_variant": "Variante de loup", "generator.wolf_variant": "Variante de loup",
@@ -195,7 +195,7 @@
"preview.final_density": "Afficher la densité finale", "preview.final_density": "Afficher la densité finale",
"preview.height": "Hauteur", "preview.height": "Hauteur",
"preview.luck": "Chance", "preview.luck": "Chance",
"preview.min_y": "Y min.", "preview.min_y": "Y min",
"preview.offset": "Décalage", "preview.offset": "Décalage",
"preview.peaks": "Pics", "preview.peaks": "Pics",
"preview.scale": "Échelle", "preview.scale": "Échelle",
@@ -251,7 +251,7 @@
"sounds.delay": "Délai", "sounds.delay": "Délai",
"sounds.download_function": "Télécharger la fonction", "sounds.download_function": "Télécharger la fonction",
"sounds.loading_sound": "Chargement du son", "sounds.loading_sound": "Chargement du son",
"sounds.pitch": "Hauteur", "sounds.pitch": "Inclinaison",
"sounds.play": "Écouter", "sounds.play": "Écouter",
"sounds.play_all": "Écouter tous", "sounds.play_all": "Écouter tous",
"sounds.play_sound": "Écouter le son", "sounds.play_sound": "Écouter le son",
@@ -362,7 +362,7 @@
"generator.pixelmon:pokedex_region": "Région", "generator.pixelmon:pokedex_region": "Région",
"generator.pixelmon:type": "Type de pixelmon", "generator.pixelmon:type": "Type de pixelmon",
"generator.pixelmon:growth": "Croissance des Pixelmons", "generator.pixelmon:growth": "Croissance des Pixelmons",
"generator.pixelmon:interaction_event": "Événement d'interaction des Pixelmon", "generator.pixelmon:interaction_event": "Évènement d'interaction des Pixelmon",
"generator.pixelmon:research": "Recherche des Pixelmon", "generator.pixelmon:research": "Recherche des Pixelmon",
"generator.pixelmon:research_trigger": "Déclencheur de recherche des Pixelmon", "generator.pixelmon:research_trigger": "Déclencheur de recherche des Pixelmon",
"generator.pixelmon:npc_preset": "Préréglage PNJ de Pixelmon", "generator.pixelmon:npc_preset": "Préréglage PNJ de Pixelmon",
@@ -371,7 +371,17 @@
"generator.thermoo:environment_provider": "Fournisseur d'environnement", "generator.thermoo:environment_provider": "Fournisseur d'environnement",
"generator.pixelmon:spawn_replacement": "Remplacement du spawn des Pixelmons", "generator.pixelmon:spawn_replacement": "Remplacement du spawn des Pixelmons",
"generator.ad_astra:planets": "Planète Ad Astra", "generator.ad_astra:planets": "Planète Ad Astra",
"generator.tag/zombie_nautilus_variant": "Tag de variante de Zombie Nautile", "generator.tag/zombie_nautilus_variant": "Tag de variante de Nautile Zombie",
"generator.zombie_nautilus_variant": "Variante de Zombie Nautile", "generator.zombie_nautilus_variant": "Variante de Nautile Zombie",
"partner.ad_astra": "Ad Astra" "partner.ad_astra": "Ad Astra",
"generator.neoforge:data_map_acceptable_villager_distances": "Carte des distances acceptables entre les villageois",
"generator.neoforge:data_map_strippables": "Carte des données des objets décapables",
"generator.neoforge:data_map_villager_types": "Carte des types de villageois à biome",
"generator.tag/timeline": "Tag de chronologie",
"generator.thermoo:predicate": "Prédicats de Thermoo",
"generator.timeline": "Chronologie",
"generator.pixelmon:raid_ally_set": "Ensemble d'alliés de Raid Pixelmon",
"generator.pixelmon:raid_spawn_set": "Ensemble de spawns de Raid Pixelmon",
"generator.loot-table-modifier:loot_modifier": "Modificateur de butin",
"partner.loot-table-modifier": "Modificateur de table de butin"
} }

View File

@@ -74,7 +74,7 @@
"generator.text_component": "テキストコンポーネント", "generator.text_component": "テキストコンポーネント",
"generator.trim_material": "装飾の材料 (Trim Material)", "generator.trim_material": "装飾の材料 (Trim Material)",
"generator.trim_pattern": "装飾のパターン (Trim Pattern)", "generator.trim_pattern": "装飾のパターン (Trim Pattern)",
"generator.world": "ワールド設定", "generator.world": "ワールド設定 (World Settings)",
"generator.worldgen": "ワールドジェネレーター (World Generator)", "generator.worldgen": "ワールドジェネレーター (World Generator)",
"generator.worldgen/biome": "バイオーム", "generator.worldgen/biome": "バイオーム",
"generator.worldgen/configured_carver": "地形彫刻 (Configured Carver)", "generator.worldgen/configured_carver": "地形彫刻 (Configured Carver)",
@@ -311,7 +311,7 @@
"generator.tag/worldgen/flat_level_generator_preset": "フラットワールドプリセットタグ (#Flat World Preset)", "generator.tag/worldgen/flat_level_generator_preset": "フラットワールドプリセットタグ (#Flat World Preset)",
"generator.tag/worldgen/world_preset": "ワールドプリセットタグ (#World Preset)", "generator.tag/worldgen/world_preset": "ワールドプリセットタグ (#World Preset)",
"generator.test_instance": "テストインスタンス (Test Instance)", "generator.test_instance": "テストインスタンス (Test Instance)",
"generator.trial_spawner": "トライアルスポナー", "generator.trial_spawner": "トライアルスポナー (Trial Spawner)",
"partner.create": "Create", "partner.create": "Create",
"title.convert": "変換", "title.convert": "変換",
"title.convert.formats": "0% を %1% へ変換", "title.convert.formats": "0% を %1% へ変換",
@@ -339,5 +339,38 @@
"generator.tag/instrument": "楽器タグ (#Instrument)", "generator.tag/instrument": "楽器タグ (#Instrument)",
"generator.tag/worldgen/structure": "構造物タグ (#Structure)", "generator.tag/worldgen/structure": "構造物タグ (#Structure)",
"generator.tag/worldgen/structure_set": "構造物セット (#Structure Set)", "generator.tag/worldgen/structure_set": "構造物セット (#Structure Set)",
"generator.chicken_variant": "ニワトリの亜種 (Chicken Variant)" "generator.chicken_variant": "ニワトリの亜種 (Chicken Variant)",
"change.obsolete": "この変更は、このリリースサイクルの後続の変更によって置き換えられました",
"generate_new_color": "新しい色を生成",
"generator.fabric:dependency_overrides": "fabric_loader_dependencies.json",
"generator.immersive_weathering:block_growth": "ブロック成長 (Block Growth)",
"generator.loot-table-modifier:loot_modifier": "ルート修正値 (Loot Modifier)",
"generator.sky_aesthetics:sky": "カスタムスカイ",
"generator.tag/timeline": "Timeline Tag",
"generator.tag/trade_set": "Trade Set Tag",
"generator.test_environment": "テスト環境",
"generator.thermoo:environment_provider": "環境プロバイダー",
"generator.thermoo:environment": "環境",
"generator.pixelmon:pokedex_region": "リージョン (Region)",
"generator.villager_trade": "村人交易 (Villager Trade)",
"generator.wolf_sound_variant": "狼の音のバリエーション (Wolf Sound Variant)",
"generator.zombie_nautilus_variant": "ゾンビオウムガイの亜種",
"missing_key": "必要なキー (%0%) がありません",
"partner.loot-table-modifier": "Loot Table の変更",
"presets.no_results": "プリセットなし",
"presets.no_results_for_query": "このクエリにはプリセットがありません",
"root": "Root",
"generator.neoforge:structure_modifier": "構造物の修正値 (Structure Modifier)",
"partner.pixelmon": "Pixelmon",
"generator.pixelmon:raid_spawn_set": "Pixelmon 襲撃スポーンセット (Raid Spawn Set)",
"generator.pixelmon:spawn_replacement": "Pixelmon スポーン交換 (Spawn Replacement)",
"generator.pixelmon:type": "Pixelmon タイプ (Type)",
"generator.pixelmon:growth": "Pixelmon 成長 (Growth)",
"generator.pixelmon:interaction_event": "Pixelmon インタラクションイベント (Interaction Event)",
"generator.pixelmon:research": "Pixelmon 研究 (Research)",
"generator.pixelmon:research_trigger": "Pixelmon 研究トリガー (Research Trigger)",
"generator.pixelmon:npc_preset": "Pixelmon NPCプリセット (NPC Preset)",
"generator.pixelmon:pokedex": "Pokedex",
"generator.pixelmon:pokedex_trigger": "Pokedex トリガー (Trigger)",
"generator.trade_set": "取引設定 (Trade Set)"
} }

View File

@@ -39,7 +39,7 @@
"generator.block_definition": "블록 상태", "generator.block_definition": "블록 상태",
"generator.chat_type": "채팅 타입", "generator.chat_type": "채팅 타입",
"generator.dimension": "차원", "generator.dimension": "차원",
"generator.dimension_type": "차원 종류", "generator.dimension_type": "차원 타입",
"generator.immersive_weathering.block_growth": "블럭 성장", "generator.immersive_weathering.block_growth": "블럭 성장",
"generator.item_modifier": "아이템 모디파이어", "generator.item_modifier": "아이템 모디파이어",
"generator.loot_table": "루트 테이블", "generator.loot_table": "루트 테이블",
@@ -219,7 +219,7 @@
"generators.popular": "인기 생성기", "generators.popular": "인기 생성기",
"title.transformation": "변형 시각화", "title.transformation": "변형 시각화",
"tools": "도구", "tools": "도구",
"generator.damage_type": "데미지 종류", "generator.damage_type": "데미지 타입",
"generator.dialog": "다이얼로그", "generator.dialog": "다이얼로그",
"generator.enchantment_provider": "마법 부어 공급자", "generator.enchantment_provider": "마법 부어 공급자",
"transformation.translation": "번역", "transformation.translation": "번역",
@@ -271,5 +271,19 @@
"wiki": "위키", "wiki": "위키",
"y": "Y", "y": "Y",
"z": "Z", "z": "Z",
"zoom_in_limit": "더 이상 확대할 수 없습니다.\n1픽셀 = 4블록" "zoom_in_limit": "더 이상 확대할 수 없습니다.\n1픽셀 = 4블록",
"convert.format.loot-table": "전리품 테이블",
"convert.format.item-modifier": "아이템 수정자",
"generator.ad_astra:planets": "Ad Astra 행성",
"generator.browse_available": "%0% 에서 사용 가능한 생성기 보기",
"generator.chicken_variant": "닭 종류",
"generator.equipment": "장비",
"generator.error_max_version": "이 생성기는 %0% 이상 버전에서 사용할 수 없습니다.",
"generator.error_min_version": "이 생성기는 %0% 버전 이상에서만 사용할 수 있습니다.",
"generator.fabric:fabric_mod_json": "fabric.mod.json",
"generator.fabric:dependency_overrides": "fabric_loader_dependencies.json",
"generator.font": "글꼴",
"generator.frog_variant": "개구리 종류",
"generator.instrument": "악기",
"generator.item_definition": "아이템"
} }

View File

@@ -274,5 +274,14 @@
"sounds.loading_sound": "Carregando sons", "sounds.loading_sound": "Carregando sons",
"sounds.volume": "Volume", "sounds.volume": "Volume",
"switch_version": "Mudar versão", "switch_version": "Mudar versão",
"cutoff": "Limite" "cutoff": "Limite",
"generator.ad_astra:planets": "Planeta do Ad Astra",
"generator.chicken_variant": "Variante de Galinha",
"generator.create:recipes": "Criar receitas",
"generator.dialog": "Diálogo",
"generator.fabric:dependency_overrides": "fabric_loader_dependencies.json",
"generator.texture_meta": "Metadados de textura",
"generator.neoforge:data_map_acceptable_villager_distances": "Mapa de dados das distâncias aceitáveis entre aldeões",
"generator.neoforge:data_map_strippables": "Mapa de dados de objetos descascáveis",
"generator.neoforge:data_map_villager_types": "Mapa de dados dos tipos de aldeão com bioma"
} }

View File

@@ -18,7 +18,7 @@
"configure_layers": "Выбрать слой", "configure_layers": "Выбрать слой",
"contributor.code": "Коддер", "contributor.code": "Коддер",
"contributor.infrastructure": "Инфраструктура", "contributor.infrastructure": "Инфраструктура",
"contributor.report": "QA", "contributor.report": "Отчёт об ошибке",
"contributor.support": "Поддержка", "contributor.support": "Поддержка",
"contributor.translation": "Переводчик", "contributor.translation": "Переводчик",
"copied": "Скопировано!", "copied": "Скопировано!",
@@ -154,7 +154,7 @@
"preview.weather.rain": "Дождь", "preview.weather.rain": "Дождь",
"preview.weather.thunder": "Гроза", "preview.weather.thunder": "Гроза",
"preview.width": "Ширина", "preview.width": "Ширина",
"project.cancel": "Отмена", "project.cancel": "Отменить",
"project.create": "Создать новый проект", "project.create": "Создать новый проект",
"project.delete": "Удалить проект", "project.delete": "Удалить проект",
"project.delete_confirm.1": "Вы собираетесь удалить %0%", "project.delete_confirm.1": "Вы собираетесь удалить %0%",
@@ -385,5 +385,16 @@
"generator.pixelmon:pokedex": "Покедекс", "generator.pixelmon:pokedex": "Покедекс",
"generator.pixelmon:pokedex_trigger": "Триггер Покедекса", "generator.pixelmon:pokedex_trigger": "Триггер Покедекса",
"partner.ad_astra": "Ad Astra (К Звёздам!)", "partner.ad_astra": "Ad Astra (К Звёздам!)",
"partner.pixelmon": "Pixelmon" "partner.pixelmon": "Pixelmon",
"generator.loot-table-modifier:loot_modifier": "Модификатор выпадение",
"generator.tag/zombie_nautilus_variant": "Тэг варианта зомби-наутилуса",
"generator.zombie_nautilus_variant": "Вариант зомби-наутилуса",
"partner.loot-table-modifier": "Модификатор таблицы выпадения",
"generator.tag/timeline": "Тег Временной Шкалы",
"generator.villager_trade": "Торг с жителем",
"generator.tag/villager_trade": "Тег Продаж Жителя",
"generator.timeline": "Временная Шкала",
"generator.sulfur_cube_archetype": "Архетип Серного Куба",
"generator.tag/trade_set": "Тег Набора Торговли",
"generator.trade_set": "Набор Торговли"
} }

View File

@@ -7,7 +7,7 @@
"any_version": "Herhangi", "any_version": "Herhangi",
"assets": "Assetler", "assets": "Assetler",
"back": "Geri", "back": "Geri",
"change.obsolete": "This change has been replaced by a later change in this release cycle", "change.obsolete": "Bu değişim, yayınlamış bu aşamada değiştirildi",
"changelog": "Teknik değişim kaydı", "changelog": "Teknik değişim kaydı",
"changelog.no_results": "Kaydedilmiş değişim bulunamadı", "changelog.no_results": "Kaydedilmiş değişim bulunamadı",
"changelog.search": "Değşimleri ara", "changelog.search": "Değşimleri ara",
@@ -54,7 +54,7 @@
"generate_new_uuid": "Yeni UUID oluştur", "generate_new_uuid": "Yeni UUID oluştur",
"generator.advancement": "Başarım", "generator.advancement": "Başarım",
"generator.atlas": "Atlas", "generator.atlas": "Atlas",
"generator.block_definition": "Blockstate", "generator.block_definition": "Blok Durumu",
"generator.browse_available": "%0% için mevcut oluşturuculara göz at", "generator.browse_available": "%0% için mevcut oluşturuculara göz at",
"generator.chat_type": "Sohbet Türü", "generator.chat_type": "Sohbet Türü",
"generator.damage_type": "Hasar Türü", "generator.damage_type": "Hasar Türü",
@@ -99,8 +99,8 @@
"generator.worldgen/configured_surface_builder": "Yüzey Yapıcı", "generator.worldgen/configured_surface_builder": "Yüzey Yapıcı",
"generator.worldgen/density_function": "Yoğunluk Fonsiyonu", "generator.worldgen/density_function": "Yoğunluk Fonsiyonu",
"generator.worldgen/flat_level_generator_preset": "Düz Dünya Ön Ayarı", "generator.worldgen/flat_level_generator_preset": "Düz Dünya Ön Ayarı",
"generator.worldgen/noise": "Noise", "generator.worldgen/noise": "Kalabalık (Noise)",
"generator.worldgen/noise_settings": "Noise Ayarları", "generator.worldgen/noise_settings": "Kalabalık (Noise) Ayarları",
"generator.worldgen/placed_feature": "Koyulmuş Özellik", "generator.worldgen/placed_feature": "Koyulmuş Özellik",
"generator.worldgen/processor_list": "İşleyici Listesi", "generator.worldgen/processor_list": "İşleyici Listesi",
"generator.worldgen/structure": "Yapı", "generator.worldgen/structure": "Yapı",
@@ -160,7 +160,7 @@
"preview.min_y": "Min Y", "preview.min_y": "Min Y",
"preview.offset": "Offset", "preview.offset": "Offset",
"preview.peaks": "Peakler", "preview.peaks": "Peakler",
"preview.scale": "Boyut", "preview.scale": "Boyut (Evren)",
"preview.weather": "Hava", "preview.weather": "Hava",
"preview.weather.clear": "Açık", "preview.weather.clear": "Açık",
"preview.weather.rain": "Yağmur", "preview.weather.rain": "Yağmur",
@@ -233,7 +233,7 @@
"title.changelog": "Teknik Değim Kaydı", "title.changelog": "Teknik Değim Kaydı",
"title.customized": "Özelleştirilmiş Dünyalar", "title.customized": "Özelleştirilmiş Dünyalar",
"title.generator": "%0% Oluşturucu", "title.generator": "%0% Oluşturucu",
"title.generator_category": "%0% Oluşturucu", "title.generator_category": "%0% Oluşturucuları",
"title.generators": "Veri Paketi Oluşturucuları", "title.generators": "Veri Paketi Oluşturucuları",
"title.guides": "Veri Paketi Rehberleri", "title.guides": "Veri Paketi Rehberleri",
"title.home": "Veri Paketi Oluşturucuları", "title.home": "Veri Paketi Oluşturucuları",
@@ -254,10 +254,10 @@
"transformation.rotation_mode": "Format: %0%", "transformation.rotation_mode": "Format: %0%",
"transformation.rotation_mode.axis_angle": "Eksen-açı", "transformation.rotation_mode.axis_angle": "Eksen-açı",
"transformation.rotation_mode.quaternion": "Kuaterniyon", "transformation.rotation_mode.quaternion": "Kuaterniyon",
"transformation.scale": "Boyut", "transformation.scale": "Boyut (Scale)",
"transformation.translation": "Konum", "transformation.translation": "Konum",
"undo": "Geri Al", "undo": "Geri Al",
"version_diff.word_wrap": "Word wrap", "version_diff.word_wrap": "Dünya Yamulması",
"versions.all": "Bütün sürümler", "versions.all": "Bütün sürümler",
"versions.article": "Makale", "versions.article": "Makale",
"versions.changelog": "Teknik değişiklikler", "versions.changelog": "Teknik değişiklikler",
@@ -283,10 +283,110 @@
"whats_new.description": "misode.github.io'daki en son gelişmelerden haberdar ol. En son eklenen özellikler için aşağıyı okuyun.", "whats_new.description": "misode.github.io'daki en son gelişmelerden haberdar ol. En son eklenen özellikler için aşağıyı okuyun.",
"whats_new.new": "YENİ", "whats_new.new": "YENİ",
"wiki": "Wiki", "wiki": "Wiki",
"worldgen": "Worldgen", "worldgen": "Dünya Oluşumu (Worldgen)",
"y": "Y", "y": "Y",
"z": "Z", "z": "Z",
"zoom_in": "Yakınlaştır", "zoom_in": "Yakınlaştır",
"zoom_in_limit": "Daha fazla yakınlaştırılamaz\n1 piksel = 4 blok", "zoom_in_limit": "Daha fazla yakınlaştırılamaz\n1 piksel = 4 blok",
"zoom_out": "Uzaklaştır" "zoom_out": "Uzaklaştır",
"changelog.edit_on_github": "Teknik değişimleri github'da düzenle",
"add_key": "Anahtar ekle",
"convert.format.item-modifier": "Eşya düzenleyicisi",
"convert.format.recipe-output": "Tarif Ürünü",
"convert.select": "-- seç --",
"format.snbt": "SNBT",
"generator.cat_variant": "Kedi Türü",
"generator.ad_astra:planets": "Ad Astra Gezegeni",
"generator.banner_pattern": "Flama Deseni",
"generator.chicken_variant": "Tavuk Türü",
"generator.cow_variant": "İnek Türü",
"generator.create:recipes": "Create Tarifleri",
"generator.dialog": "Diyalog",
"generator.enchantment": "Büyüleme",
"generator.enchantment_provider": "Büyüleme Sağlayıcısı",
"generator.equipment": "Araç Gereç",
"generator.fabric:fabric_mod_json": "fabric.mod.json",
"generator.fabric:dependency_overrides": "fabric_yükleyici_gereksinimleri.json",
"generator.frog_variant": "Kurbağa Türü",
"generator.immersive_weathering:block_growth": "Blok Büyümesi",
"generator.instrument": "Enstrüman",
"generator.item_definition": "Eşya",
"generator.jukebox_song": "Muzik Kutusu Şarkısı",
"generator.lang": "Dil",
"generator.loot-table-modifier:loot_modifier": "Ganimet Değiştiricisi",
"generator.texture_meta": "Doku Üstverisi (Metadata)",
"generator.neoforge:biome_modifier": "Biyom Değiştiricisi",
"generator.neoforge:data_map_acceptable_villager_distances": "Kabul Edilebilir Köylü Uzaklık Data Haritası",
"generator.neoforge:data_map_compostables": "Gübreleştirilebilirler Data Haritası",
"generator.neoforge:data_map_furnace_fuels": "Fırın Yakıtı Data haritası",
"generator.neoforge:data_map_monster_room_mobs": "Canavar Odası Mob Data Hartiası",
"generator.neoforge:data_map_oxidizables": "Paslanabilirler Data Haritası",
"generator.neoforge:data_map_parrot_imitations": "Papağan Taklit Data Haritası",
"generator.neoforge:data_map_raid_hero_gifts": "Baskın Kahramanı (Köyün kahramanı) Ödülleri Data Haritası",
"generator.neoforge:data_map_strippables": "Soyulabilirler Data Hartiası",
"generator.neoforge:data_map_vibration_frequencies": "Titreme Frekansı Data Haritası",
"generator.neoforge:data_map_villager_types": "Biyom Köylü Türleri Data Haritası",
"generator.neoforge:data_map_waxables": "Bal Mumuyla Cilalanabilirler Data Haritası",
"generator.neoforge:structure_modifier": "Yapı Değiştiricisi",
"generator.ohthetreesyoullgrow:configured_feature": "OTTYG Özelliği",
"generator.sky_aesthetics:sky": "Değiştirilebilir Gök Yüzü",
"generator.painting_variant": "Tablo Türü",
"generator.pig_variant": "Domuz Türü",
"generator.post_effect": "Efekt Sonrası",
"generator.tag/dialog": "Diyalog Etiketi",
"generator.tag/enchantment": "Büyüleme Etiketi",
"generator.tag/timeline": "Zaman Çizelgesi Etiketi",
"generator.tag/trade_set": "Takas Seti Etiketi",
"generator.tag/villager_trade": "Köylü Takası Etiketi",
"generator.tag/zombie_nautilus_variant": "Zombi Nautilus Türü Tagı",
"generator.test_instance": "Deneme Durumu",
"generator.test_environment": "Deneme Ortamı",
"generator.thermoo:environment_provider": "Ortam Sağlayıcısı",
"generator.thermoo:environment": "Ortam",
"generator.thermoo:temperature_effect": "Sıcaklık Efekti",
"generator.thermoo:predicate": "Thermoo Predicateları",
"generator.timeline": "Zaman Çizelgesi",
"generator.pixelmon:raid_ally_set": "Pixelmon Baskın Müttefiği Seti",
"generator.pixelmon:raid_spawn_set": "Pixelmon Baskın Spawn Seti",
"generator.pixelmon:spawn_replacement": "Pixelmon Spawn Yedeği",
"convert.format.loot-table": "Ganimet Tablosu",
"generator.pixelmon:type": "Pixelmon Türü",
"generator.pixelmon:growth": "Pixelmon Büyüme",
"generator.pixelmon:interaction_event": "Pixelmon Etkileşim Eventi",
"generator.pixelmon:research": "Pixelmon Araştırma",
"generator.pixelmon:research_trigger": "Pixelmon Araştırma Tetikleyicisi",
"generator.pixelmon:npc_preset": "Pixelmon NPC Ön Ayarı",
"generator.pixelmon:pokedex": "Lügat-ı Poke",
"generator.pixelmon:pokedex_trigger": "Lügat-ı Poke Tetikleyicisi",
"generator.pixelmon:pokedex_region": "Alan",
"generator.trade_set": "Takas Seti",
"generator.trial_spawner": "Yargı Spawnlayıcısı",
"generator.villager_trade": "Köylü Takası",
"generator.wolf_variant": "Kurt Türü",
"generator.wolf_sound_variant": "Kürt Ses Türü",
"generator.zombie_nautilus_variant": "Zombi Nautilus Türü",
"generators.partners": "Modlu Oluşturucuları",
"inline": "Inline",
"missing_key": "%0% Anahtarı Gerekiyor",
"partner.ad_astra": "Ad Astra",
"partner.create": "Create",
"partner.fabric": "Fabric",
"partner.lithostitched": "Lithostitched",
"partner.loot-table-modifier": "Ganimet Tablosu Değiştiricisi",
"partner.neoforge": "NeoForge",
"partner.obsidian": "Obsidian",
"partner.ohthetreesyoullgrow": "Oh The Trees You'll Grow",
"partner.sky_aesthetics": "Sky Aesthetics",
"partner.thermoo": "Thermoo",
"partner.pixelmon": "Pixelmon",
"versions.wiki": "Wiki",
"unset": "ayarlanmamış",
"title.convert": "Dönüştürücü",
"title.convert.formats": "%0% versiyonundan %1% versiyonuna Değiştirici",
"sort_alphabetically": "Alfabetik Sırala",
"root": "Kök",
"presets.no_results": "Ön Ayar Yok",
"presets.no_results_for_query": "Bu Sorgulama İçin Ön Ayar Yok",
"convert.format.give-command": "/give",
"convert.swap": "Değiştir"
} }