A Minecraft datapack generator written in go.
1package datapack
2
3/*
4Datapack is representing the pack.mcmeta file at the root of each datapack.
5
6References :
7- Minecraft wiki - datapack : https://minecraft.wiki/w/Data_pack
8- Minecraft wiki - pack.mcmeta : https://minecraft.wiki/w/Pack.mcmeta
9*/
10type Datapack struct {
11 name string
12 description string
13 minFormat int
14 maxFormat int
15 featureFlags []string
16 // todo: implement filter, overlay and translations
17}
18
19func (dp Datapack) Type() string {
20 return "datapack"
21}
22
23func MkDatapack(name, description string, minFormat, maxFormat int, flags []string) Datapack {
24 return Datapack{
25 name: name,
26 description: description,
27 minFormat: minFormat,
28 maxFormat: maxFormat,
29 featureFlags: flags,
30 }
31}
32
33func (dp Datapack) Name() string {
34 return dp.name
35}
36
37func (dp Datapack) Description() string {
38 return dp.description
39}
40
41func (dp Datapack) MinFormat() int {
42 return dp.minFormat
43}
44
45func (dp Datapack) MaxFormat() int {
46 return dp.maxFormat
47}
48
49func (dp Datapack) Flags() []string {
50 flags := make([]string, len(dp.featureFlags))
51 copy(flags, dp.featureFlags)
52 return flags
53}
54
55func (dp Datapack) AddFlag(flag string) Datapack {
56 dp.featureFlags = append(dp.featureFlags, flag)
57 return dp
58}