13 Commits
Author SHA1 Message Date
adman 30cfc507ba less pollution 2026-07-27 15:05:50 +02:00
adman d84618c116 update minecraft data to fix bundle delimiter 2026-07-23 22:32:59 +02:00
adman 5a55520126 migrate proto_generated to be runable from repo root 2026-07-23 22:26:23 +02:00
adman 8ac5e00c8e regenerate protocol 2026-07-23 22:23:22 +02:00
adman d46c678b89 make mincraft data sync scripts executable from anywhere 2026-07-23 22:20:53 +02:00
adman 0b714edcf5 Sync minecraft-data 2026-07-23 22:14:19 +02:00
adman 45151add64 Remove proto_base.Void 2026-07-23 22:11:29 +02:00
adman b90830881f Fix 26.2 login_success protocol handling and add convertibility tests
- Server sends v26_2 login_success with SessionId for protocol >= 776

- Client adds v26_2 login_success handler and scopes v1_21_8 handler to <= 26.1

- Fix WithOtherAccount guard in login server

- Add smart-convert assumption tests for login server/client

- Improve translatePacketVersion error messages
2026-07-23 17:00:13 +02:00
adman 94301a4a50 Add 26.2 protocol support to strom 2026-07-23 15:06:49 +02:00
adman aa5d15a4dc Regenerate 26.1 protocol with corrected play packet IDs (clientbound + serverbound) 2026-07-23 00:09:43 +02:00
adman d388e2c350 add 26.1 support, raw-capture subcommand, and local minecraft-data copy script 2026-07-22 23:22:14 +02:00
adman 126ff5bca0 improve packet replay things 2026-07-20 12:56:19 +02:00
adman a347aedfc2 untrack big testdata 2026-07-16 22:56:44 +02:00
384 changed files with 597912 additions and 50600 deletions
+2
View File
@@ -19,6 +19,7 @@ import (
"github.com/admin-else/strom/cmd/strom/packet_inspector" "github.com/admin-else/strom/cmd/strom/packet_inspector"
"github.com/admin-else/strom/cmd/strom/print_nbt" "github.com/admin-else/strom/cmd/strom/print_nbt"
"github.com/admin-else/strom/cmd/strom/print_replay" "github.com/admin-else/strom/cmd/strom/print_replay"
"github.com/admin-else/strom/cmd/strom/raw_capture"
"github.com/admin-else/strom/cmd/strom/registry_data_hunter" "github.com/admin-else/strom/cmd/strom/registry_data_hunter"
"github.com/admin-else/strom/cmd/strom/serve_tmcpr" "github.com/admin-else/strom/cmd/strom/serve_tmcpr"
"github.com/admin-else/strom/cmd/strom/serve_world" "github.com/admin-else/strom/cmd/strom/serve_world"
@@ -60,6 +61,7 @@ var subcommands = map[string]func(args []string) error{
"extract-mca": extract_mca.Run, "extract-mca": extract_mca.Run,
"data": data.Run, "data": data.Run,
"print-replay": print_replay.Run, "print-replay": print_replay.Run,
"raw-capture": raw_capture.Run,
"registry-data-hunter": registry_data_hunter.Run, "registry-data-hunter": registry_data_hunter.Run,
"serve-world": serve_world.Run, "serve-world": serve_world.Run,
"mca-to-tmcpr": mca_to_tmcpr.Run, "mca-to-tmcpr": mca_to_tmcpr.Run,
+1 -1
View File
@@ -51,7 +51,7 @@ func GetChunkFromMca(x, z int32, version string) (b []byte, err error) {
z += anvil.ChunksWidthRegionFile z += anvil.ChunksWidthRegionFile
} }
f, err := os.Open(fmt.Sprintf("./level/anvil/testdata/securechattestworld/region/r.%v.%v.mca", xmca, zmca)) f, err := os.Open(fmt.Sprintf("./.devres/anvil_testdata/securechattestworld/region/r.%v.%v.mca", xmca, zmca))
if err != nil { if err != nil {
return return
} }
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"bytes" "bytes"
"testing" "testing"
generated "github.com/admin-else/strom/proto_generated/%v" generated "github.com/admin-else/strom/mc/proto_generated/%v"
) )
// Error: %v // Error: %v
+63 -26
View File
@@ -8,6 +8,7 @@ import (
"errors" "errors"
"flag" "flag"
"fmt" "fmt"
"go/format"
"io" "io"
"log/slog" "log/slog"
"os" "os"
@@ -25,6 +26,7 @@ var (
ProtocolVersion = cmd.Int("protocol", -1, "The protocol version") ProtocolVersion = cmd.Int("protocol", -1, "The protocol version")
CreateTestsPath = cmd.String("create-tests", "", "") CreateTestsPath = cmd.String("create-tests", "", "")
StateFlag = cmd.String("state", "login", "Initial state: login, config, play") StateFlag = cmd.String("state", "login", "Initial state: login, config, play")
DirectionFlag = cmd.String("direction", "clientbound", "Packet direction: clientbound (ToClient) or serverbound (ToServer)")
) )
// TODO: maybe use the proto replay api // TODO: maybe use the proto replay api
@@ -32,32 +34,43 @@ var (
//go:embed failed_packet.go.tmpl //go:embed failed_packet.go.tmpl
var TestSrcF string var TestSrcF string
func SaveUnCodeAbleAsTest(packet *proto.UnCodablePacket) { func SaveUnCodeAbleAsTest(packet *proto.UnCodablePacket) (err error) {
if packet.Info.Type == nil {
slog.Warn("skipping test for unknown packet id", "packet_id", packet.Info.PacketId, "state", packet.Info.State, "error", packet.Err)
return
}
hUntrimmed := sha256.Sum256(packet.Data) hUntrimmed := sha256.Sum256(packet.Data)
h := hUntrimmed[:8] h := hUntrimmed[:8]
f, err := os.Create(fmt.Sprintf(*CreateTestsPath+"/%v_%10x_test.go", len(packet.Data), h)) if err = os.MkdirAll(*CreateTestsPath, 0755); err != nil {
if err != nil { return
panic(err)
} }
ret, err := data.LookUpVersionByProtocolVersion(packet.Info.ProtocolVersion) ret, err := data.LookUpVersionByProtocolVersion(packet.Info.ProtocolVersion)
if err != nil { if err != nil {
panic(err) return
} }
goPackage := "v" + strings.ReplaceAll(ret.MinecraftVersion, ".", "_") goPackage := "v" + strings.ReplaceAll(ret.MinecraftVersion, ".", "_")
typeName := reflect.TypeOf(packet.Info.Type).Elem().Name()
//goland:noinspection GoUnhandledErrorResult src := fmt.Sprintf(TestSrcF, goPackage, packet.Err, h, typeName, packet.Data)
defer f.Close() formatted, formatErr := format.Source([]byte(src))
_, err = fmt.Fprintf(f, TestSrcF, goPackage, packet.Err, h, reflect.TypeOf(packet.Info.Type).Elem().Name(), packet.Data) if formatErr != nil {
if err != nil { formatted = []byte(src)
panic(err)
} }
slog.Info("Packet failed to parse", "error", packet.Err, "saved", f.Name(), "data", fmt.Sprintf("%q", packet.Data))
filePath := fmt.Sprintf(*CreateTestsPath+"/%v_%10x_test.go", len(packet.Data), h)
if err = os.WriteFile(filePath, formatted, 0644); err != nil {
return
}
slog.Info("Packet failed to parse", "error", packet.Err, "saved", filePath, "data", fmt.Sprintf("%q", packet.Data))
return
} }
var state = proto_base.Login var state = proto_base.Login
var direction = proto_base.ToClient
func UnpackPacket(r io.Reader) (packet proto_base.EncodeDecodeAble, err error) { func UnpackPacket(r io.Reader) (packet proto_base.EncodeDecodeAble, i proto_base.PacketInfo, err error) {
var timestamp, length uint32 var timestamp, length uint32
err = binary.Read(r, binary.BigEndian, &timestamp) err = binary.Read(r, binary.BigEndian, &timestamp)
if err != nil { if err != nil {
@@ -87,22 +100,37 @@ func UnpackPacket(r io.Reader) (packet proto_base.EncodeDecodeAble, err error) {
// indexafterid represents how many bytes we've read so far // indexafterid represents how many bytes we've read so far
indexafterid := int(b.Size()) - b.Len() indexafterid := int(b.Size()) - b.Len()
i, ok := proto.LookUpTypeByPacketInfo(proto_base.ToClient, state, packetId, int32(*ProtocolVersion)) var ok bool
i, ok = proto.LookUpTypeByPacketInfo(direction, state, packetId, int32(*ProtocolVersion))
if !ok { if !ok {
packet = &proto.UnCodablePacket{Err: proto.BadPacketIdErr, Data: packetData, Info: i} packet = &proto.UnCodablePacket{Err: proto.BadPacketIdErr, Data: packetData, Info: i}
return return
} }
switch direction {
case proto_base.ToClient:
switch i.Name {
case "success":
state = proto_base.Configuration
case "finish_configuration":
state = proto_base.Play
}
case proto_base.ToServer:
switch i.Name {
case "login_acknowledged":
state = proto_base.Configuration
case "finish_configuration":
state = proto_base.Play
}
}
packet = reflect.New(reflect.TypeOf(i.Type).Elem()).Interface().(proto_base.EncodeDecodeAble) packet = reflect.New(reflect.TypeOf(i.Type).Elem()).Interface().(proto_base.EncodeDecodeAble)
err = packet.Decode(b) err = packet.Decode(b)
if err != nil { if err != nil {
packet = &proto.UnCodablePacket{Err: err, Data: packetData[indexafterid:], Info: i} packet = &proto.UnCodablePacket{Err: err, Data: packetData[indexafterid:], Info: i}
return return
} }
switch i.Name { if b.Len() != 0 {
case "success": packet = &proto.UnCodablePacket{Err: proto.PacketNotFullyDecodedErr, Data: packetData[indexafterid:], Info: i}
state = proto_base.Configuration return
case "finish_configuration":
state = proto_base.Play
} }
return return
} }
@@ -128,6 +156,14 @@ func Run(args []string) (err error) {
default: default:
return fmt.Errorf("unknown state: %s", *StateFlag) return fmt.Errorf("unknown state: %s", *StateFlag)
} }
switch *DirectionFlag {
case "clientbound", "to-client":
direction = proto_base.ToClient
case "serverbound", "to-server":
direction = proto_base.ToServer
default:
return fmt.Errorf("unknown direction: %s", *DirectionFlag)
}
f, err := os.Open(*FileFlag) f, err := os.Open(*FileFlag)
if err != nil { if err != nil {
return return
@@ -137,21 +173,22 @@ func Run(args []string) (err error) {
var totalPackets, failedPackets int var totalPackets, failedPackets int
for { for {
var packet proto_base.EncodeDecodeAble var packet proto_base.EncodeDecodeAble
packet, err = UnpackPacket(f) var info proto_base.PacketInfo
packet, info, err = UnpackPacket(f)
unCodablePacket, ok := packet.(*proto.UnCodablePacket) unCodablePacket, ok := packet.(*proto.UnCodablePacket)
if ok { if ok {
slog.Error("failed to decode packet", "error", err, "packet_name", info.Name)
if *CreateTestsPath != "" { if *CreateTestsPath != "" {
SaveUnCodeAbleAsTest(unCodablePacket) err = SaveUnCodeAbleAsTest(unCodablePacket)
if err != nil {
slog.Error("failed to save uncodable packet as test", "error", err)
}
} }
failedPackets++ failedPackets++
} }
if err != nil { fmt.Printf("Packet: %#v\n", packet)
fmt.Println(err) if errors.Is(err, io.EOF) || errors.Is(err, io.ErrUnexpectedEOF) {
} else {
fmt.Printf("Packet: %#v\n", packet)
}
if errors.Is(err, io.EOF) {
break break
} }
totalPackets++ totalPackets++
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2d90ee976987678593a6b1d09136bb9b4fd131390796ea6e413376a6ddc63226
size 75035693
-1
View File
@@ -1 +0,0 @@
[{"realTimestamp":9845034,"value":{"position":{"x":-31.946051078575692,"y":93.0,"z":29.523387113769626,"yaw":-627.44653,"pitch":37.573395,"roll":0.0}}},{"realTimestamp":9845138,"value":{"position":{"x":-31.946051078575692,"y":93.0,"z":29.523387113769626,"yaw":-627.44653,"pitch":37.573395,"roll":0.0}}},{"realTimestamp":9844902,"value":{"position":{"x":-31.946051078575692,"y":93.0,"z":29.523387113769626,"yaw":-627.44653,"pitch":37.573395,"roll":0.0}}},{"realTimestamp":9908896,"value":{"position":{"x":-1.6053634059630886,"y":91.672484820985,"z":-10.594536888795163,"yaw":-1151.6353,"pitch":16.142092,"roll":0.0}}},{"realTimestamp":9844750,"value":{"position":{"x":-31.946051078575692,"y":93.0,"z":29.523387113769626,"yaw":-627.44653,"pitch":37.573395,"roll":0.0}}},{"realTimestamp":9853735,"value":{"position":{"x":-31.05268144454021,"y":88.0,"z":-25.371850030366133,"yaw":-624.37897,"pitch":16.105839,"roll":0.0}}},{"realTimestamp":9845690,"value":{"position":{"x":-31.946051078575692,"y":93.0,"z":29.523387113769626,"yaw":-627.44653,"pitch":37.573395,"roll":0.0}}},{"realTimestamp":9938194,"value":{"position":{"x":39.88206777447001,"y":103.87657142499006,"z":58.09267383764874,"yaw":-1781.1023,"pitch":37.354122,"roll":0.0}}},{"realTimestamp":9846991,"value":{"position":{"x":-31.946051078575692,"y":93.0,"z":29.523387113769626,"yaw":-628.46875,"pitch":36.04,"roll":0.0}}},{"realTimestamp":9908638,"value":{"position":{"x":-1.5870303355717672,"y":91.672484820985,"z":-11.359450846926011,"yaw":-1142.6902,"pitch":20.997843,"roll":0.0}}},{"realTimestamp":9845490,"value":{"position":{"x":-31.946051078575692,"y":93.0,"z":29.523387113769626,"yaw":-627.44653,"pitch":37.573395,"roll":0.0}}},{"realTimestamp":9845990,"value":{"position":{"x":-31.946051078575692,"y":93.0,"z":29.523387113769626,"yaw":-627.44653,"pitch":37.573395,"roll":0.0}}}]
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d972b9b5f9d962199fe262eccef32a4b94504283fae97f9963702e7ab1550129
size 437123
-1
View File
@@ -1 +0,0 @@
{"singleplayer":false,"serverName":"protect-test-server.anygate.cloud","customServerName":"proxied test server","duration":3368,"date":1776531741320,"mcversion":"1.21.11","fileFormat":"MCPR","fileFormatVersion":14,"protocol":774,"generator":"ReplayMod v1.21.11-2.6.26","selfId":-1,"players":[]}
-1
View File
@@ -1 +0,0 @@
{"requiredMods":[{"modID":"viafabricplus","modName":"ViaFabricPlus","modVersion":"4.4.4"}]}
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cef58ec0e3d1d25e34c2effc5c09241ee4c1b39c085ed9e11b7097dfd5c2d033
size 3429878
@@ -1 +0,0 @@
234002168
-1
View File
@@ -1 +0,0 @@
{"singleplayer":false,"serverName":"protect-beta.anygate.cloud","customServerName":"protect-beta.anygate.cloud","duration":10198341,"date":1776535673280,"mcversion":"1.21.11","fileFormat":"MCPR","fileFormatVersion":14,"protocol":774,"generator":"ReplayMod v1.21.11-2.6.26","selfId":-1,"players":["fe2d6f64-7ab0-3373-a526-af097abbcb39"]}
-1
View File
@@ -1 +0,0 @@
{"requiredMods":[{"modID":"viafabricplus","modName":"ViaFabricPlus","modVersion":"4.4.4"}]}
-3
View File
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:be007aa681f7959708e89e39e05390e228753291823a18274068d310a50aa78b
size 526306397
-1
View File
@@ -1 +0,0 @@
270566013
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0da58f5cdd65ef241df8c61f9e633af7317faa77034183d4fb648b039c1e14ed
size 842
-1
View File
@@ -1 +0,0 @@
{"singleplayer":false,"serverName":"protect-test-server.anygate.cloud","customServerName":"proxied test server","duration":476,"date":1776803431635,"mcversion":"1.21.11","fileFormat":"MCPR","fileFormatVersion":14,"protocol":774,"generator":"ReplayMod v1.21.11-2.6.26","selfId":-1,"players":[]}
-1
View File
@@ -1 +0,0 @@
{"requiredMods":[{"modID":"viafabricplus","modName":"ViaFabricPlus","modVersion":"4.4.4"}]}
-3
View File
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:52fa049f97918289e018fa4c3bf5ff789d4f99f44f590ad875ce1f65e5fa9563
size 37
@@ -1 +0,0 @@
1105715802
+253
View File
@@ -0,0 +1,253 @@
package raw_capture
import (
"flag"
"fmt"
"log/slog"
"os"
"time"
"github.com/admin-else/strom/mc/api"
"github.com/admin-else/strom/mc/client"
"github.com/admin-else/strom/mc/data"
"github.com/admin-else/strom/mc/event"
"github.com/admin-else/strom/mc/proto"
"github.com/admin-else/strom/mc/proto/replay"
"github.com/admin-else/strom/mc/proto_base"
"github.com/admin-else/strom/mc/proto_generated/v1_21_11"
"github.com/admin-else/strom/mc/server"
"github.com/admin-else/strom/mc/text"
)
var Cmd = flag.NewFlagSet("raw-capture", flag.ContinueOnError)
var OfflineNameFlag = Cmd.String("name", "raw_capture", "offline player name")
var Token = Cmd.String("token", "", "token to use")
var TargetAddr = Cmd.String("addr", "127.0.0.1:25565", "address to connect to")
var ListenAddr = Cmd.String("listen", "127.0.0.1:25566", "address to listen on")
var ClientboundFile = Cmd.String("clientbound-file", "clientbound.tmcpr", "file to write clientbound packets to")
var ServerboundFile = Cmd.String("serverbound-file", "serverbound.tmcpr", "file to write serverbound packets to")
var Version = Cmd.String("version", "", "client protocol version (e.g. 26.1); if empty, detect from server status")
var StatusResponse = server.StatusResponse{
Version: server.StatusResponseVersion{
Name: text.Pretty("STROM raw-capture"),
Protocol: 0,
},
Players: server.StatusResponsePlayers{},
Description: text.Pretty("STROM raw-capture proxy"),
Favicon: "",
EnforcesSecureChat: false,
}
type Proxy struct {
Client, Servee *proto.Conn
clientboundFile *os.File
serverboundFile *os.File
clientboundWriter *replay.Writer
serverboundWriter *replay.Writer
startTime time.Time
}
func (p *Proxy) Start() (err error) {
p.startTime = time.Now()
p.Client.RegisterCritical(p.OnAnything)
p.Servee.RegisterCritical(p.OnAnything)
p.Client.RegisterCriticalUntilLatest(p.OnCompress)
p.Servee.RegisterCriticalUntilLatest(p.OnHandshake)
p.Servee.RegisterCriticalUntilLatest(p.OnLoginAcknowledged)
p.Servee.RegisterCriticalUntilLatest(p.OnFinishConfiguration)
errChan := make(chan error)
go func() {
errChan <- p.Client.StartConn()
}()
go func() {
errChan <- p.Servee.StartConn()
}()
err = <-errChan
return
}
func (p *Proxy) timestamp() uint32 {
return uint32(time.Since(p.startTime).Milliseconds())
}
func (p *Proxy) OnAnything(e event.Anything) (err error) {
packet, ok := e.Val.(proto_base.EncodeDecodeAble)
if !ok {
return
}
packetInfo, ok := proto.LookupPacketInfoByType(packet)
if !ok {
return
}
if packetInfo.Name == "encryption_begin" {
return fmt.Errorf("encryption requested by remote server; raw capture cannot continue")
}
switch packetInfo.Direction {
case proto_base.ToServer:
err = p.serverboundWriter.WritePacket(packet, p.timestamp())
if err != nil {
return
}
err = p.Client.Send(packet)
case proto_base.ToClient:
err = p.clientboundWriter.WritePacket(packet, p.timestamp())
if err != nil {
return
}
err = p.Servee.Send(packet)
}
return
}
func (p *Proxy) OnCompress(packet *v1_21_11.LoginToClientPacketCompress) (err error) {
err = p.clientboundWriter.WritePacket(packet, p.timestamp())
if err != nil {
return
}
err = p.Servee.Send(packet)
if err != nil {
return
}
p.Servee.SetCompressionThreshold(packet.Threshold)
p.Client.SetCompressionThreshold(packet.Threshold)
return event.DontForwardErr
}
func (p *Proxy) OnHandshake(packet *v1_21_11.HandshakingToServerPacketSetProtocol) (err error) {
state := proto_base.State(packet.NextState)
p.Servee.SetState(state)
return event.DontForwardErr
}
func (p *Proxy) OnLoginAcknowledged(packet *v1_21_11.LoginToServerPacketLoginAcknowledged) (err error) {
err = p.serverboundWriter.WritePacket(packet, p.timestamp())
if err != nil {
return
}
err = p.Client.Send(packet)
if err != nil {
return
}
p.Servee.SetState(proto_base.Configuration)
p.Client.SetState(proto_base.Configuration)
return event.DontForwardErr
}
func (p *Proxy) OnFinishConfiguration(packet *v1_21_11.ConfigurationToServerPacketFinishConfiguration) (err error) {
err = p.serverboundWriter.WritePacket(packet, p.timestamp())
if err != nil {
return
}
err = p.Client.Send(packet)
if err != nil {
return
}
p.Servee.SetState(proto_base.Play)
p.Client.SetState(proto_base.Play)
return event.DontForwardErr
}
func Run(args []string) (err error) {
err = Cmd.Parse(args)
if err != nil {
return
}
clientboundFile, err := os.Create(*ClientboundFile)
if err != nil {
return fmt.Errorf("create clientbound file: %w", err)
}
defer clientboundFile.Close()
serverboundFile, err := os.Create(*ServerboundFile)
if err != nil {
return fmt.Errorf("create serverbound file: %w", err)
}
defer serverboundFile.Close()
resolvedAddr, _, _, err := client.DoDNSChecked(nil, *TargetAddr, nil)
if err != nil {
return
}
var targetVersion string
var targetProtocol int32
if *Version == "" {
status, err := client.Status(nil, resolvedAddr)
if err != nil {
return fmt.Errorf("failed to detect server version: %w", err)
}
targetProtocol = status.Version.Protocol
versionInfo, err := data.LookUpVersionByProtocolVersion(targetProtocol)
if err != nil {
return fmt.Errorf("unknown protocol version %d: %w", targetProtocol, err)
}
targetVersion = versionInfo.MinecraftVersion
} else {
versionInfo, err := data.LookUpVersionByName(*Version)
if err != nil {
return fmt.Errorf("unknown version %s: %w", *Version, err)
}
targetVersion = versionInfo.MinecraftVersion
targetProtocol = versionInfo.Version
}
StatusResponse.Version.Name = text.Pretty("STROM raw-capture " + targetVersion)
StatusResponse.Version.Protocol = targetProtocol
StatusResponse.Description = text.Pretty(fmt.Sprintf("Raw capture proxy forwards to %s (%s)", resolvedAddr, targetVersion))
slog.Info("Starting raw capture", "listen", *ListenAddr, "target", resolvedAddr, "version", targetVersion, "protocol", targetProtocol, "clientbound", *ClientboundFile, "serverbound", *ServerboundFile)
err = server.StartServerWithOnConn(*ListenAddr, func(serveeConn *proto.Conn) (err error) {
proxy := &Proxy{
Servee: serveeConn,
clientboundFile: clientboundFile,
serverboundFile: serverboundFile,
clientboundWriter: replay.NewWriter(clientboundFile),
serverboundWriter: replay.NewWriter(serverboundFile),
}
acc := api.NewOfflineAccount(*OfflineNameFlag)
if *Token != "" {
acc, err = api.NewAccountFromYGG(*Token)
if err != nil {
return
}
}
_, err = server.ServeLogin(serveeConn, server.WithOtherAccount(acc), server.WithStatus(StatusResponse), server.WithoutOnlineMode(), server.WithoutEncryption())
if err != nil {
return
}
c, err := client.Connect(nil, resolvedAddr, targetVersion)
if err != nil {
return
}
defer c.Close()
err = client.LoginRaw(c, acc)
if err != nil {
return
}
proxy.Client = c
proxy.Client.AlwaysDecode = true
proxy.Servee.AlwaysDecode = true
return proxy.Start()
})
return
}
+1 -1
View File
@@ -52,7 +52,7 @@ func GetChunkFromMca(x, z int32, version string) (b []byte, err error) {
z += anvil.ChunksWidthRegionFile z += anvil.ChunksWidthRegionFile
} }
f, err := os.Open(fmt.Sprintf("./level/anvil/testdata/securechattestworld/region/r.%v.%v.mca", xmca, zmca)) f, err := os.Open(fmt.Sprintf("./.devres/anvil_testdata/securechattestworld/region/r.%v.%v.mca", xmca, zmca))
if err != nil { if err != nil {
return return
} }
+11 -1
View File
@@ -14,6 +14,7 @@ import (
"github.com/admin-else/strom/mc/proto" "github.com/admin-else/strom/mc/proto"
"github.com/admin-else/strom/mc/proto_base" "github.com/admin-else/strom/mc/proto_base"
"github.com/admin-else/strom/mc/proto_generated/v1_21_8" "github.com/admin-else/strom/mc/proto_generated/v1_21_8"
"github.com/admin-else/strom/mc/proto_generated/v26_2"
"github.com/admin-else/strom/mc/text" "github.com/admin-else/strom/mc/text"
) )
@@ -121,6 +122,14 @@ func (s *LoginClient) OnSuccess(success *v1_21_8.LoginToClientPacketSuccess) (er
return return
} }
func (s *LoginClient) OnSuccess26_2(success *v26_2.LoginToClientPacketSuccess) (err error) {
return s.OnSuccess(&v1_21_8.LoginToClientPacketSuccess{
Uuid: success.Uuid,
Username: success.Username,
Properties: success.Properties,
})
}
func (s *LoginClient) OnStart() (err error) { func (s *LoginClient) OnStart() (err error) {
return return
} }
@@ -135,7 +144,8 @@ func LoginRaw(c *proto.Conn, account *api.Account) (err error) {
lc.RegisterCriticalUntilLatest(lc.OnCompress) lc.RegisterCriticalUntilLatest(lc.OnCompress)
lc.RegisterCriticalUntilLatest(lc.OnEncrypt) lc.RegisterCriticalUntilLatest(lc.OnEncrypt)
lc.RegisterCriticalUntilLatest(lc.OnDisconnect) lc.RegisterCriticalUntilLatest(lc.OnDisconnect)
lc.RegisterCriticalUntilLatest(lc.OnSuccess) lc.RegisterCriticalUntil("26.1", lc.OnSuccess)
lc.RegisterCriticalUntilLatest(lc.OnSuccess26_2)
p, err := MakeHandshakePacket(lc.Conn, proto_base.Login) p, err := MakeHandshakePacket(lc.Conn, proto_base.Login)
if err != nil { if err != nil {
+55
View File
@@ -0,0 +1,55 @@
package client_test
import (
"reflect"
"testing"
"github.com/admin-else/strom/mc/data"
"github.com/admin-else/strom/mc/proto"
"github.com/admin-else/strom/mc/proto_base"
"github.com/admin-else/strom/mc/proto_generated/v1_21_8"
)
func assertClientSendConvertible(t *testing.T, srcType reflect.Type, name string, state proto_base.State, direction proto_base.Direction, targetVersion int32) {
t.Helper()
targetInfo, ok := proto.LookupPacketInfoByNameProtocolVersionStateAndDirection(name, targetVersion, state, direction)
if !ok {
t.Fatalf("packet %s not found for version %d", name, targetVersion)
}
targetType := reflect.TypeOf(targetInfo.Type)
if !proto.SmartConvertibleTo(srcType, targetType) {
t.Fatalf("%s is not smart-convertible from v1_21_8 to version %d", name, targetVersion)
}
}
func assertClientReceiveConvertible(t *testing.T, dstType reflect.Type, name string, state proto_base.State, direction proto_base.Direction, targetVersion int32) {
t.Helper()
targetInfo, ok := proto.LookupPacketInfoByNameProtocolVersionStateAndDirection(name, targetVersion, state, direction)
if !ok {
t.Fatalf("packet %s not found for version %d", name, targetVersion)
}
targetType := reflect.TypeOf(targetInfo.Type)
if !proto.SmartConvertibleTo(targetType, dstType) {
t.Fatalf("%s is not smart-convertible from version %d to v1_21_8", name, targetVersion)
}
}
func TestLoginClientSendAssumptions(t *testing.T) {
v26_1Version := data.MustLookupProtocolVersion("26.1")
// Packets sent by LoginClient as v1_21_8.
assertClientSendConvertible(t, reflect.TypeFor[*v1_21_8.HandshakingToServerPacketSetProtocol](), "set_protocol", proto_base.Handshaking, proto_base.ToServer, v26_1Version)
assertClientSendConvertible(t, reflect.TypeFor[*v1_21_8.LoginToServerPacketLoginStart](), "login_start", proto_base.Login, proto_base.ToServer, v26_1Version)
assertClientSendConvertible(t, reflect.TypeFor[*v1_21_8.LoginToServerPacketLoginAcknowledged](), "login_acknowledged", proto_base.Login, proto_base.ToServer, v26_1Version)
assertClientSendConvertible(t, reflect.TypeFor[*v1_21_8.LoginToServerPacketEncryptionBegin](), "encryption_begin", proto_base.Login, proto_base.ToServer, v26_1Version)
}
func TestLoginClientReceiveAssumptions(t *testing.T) {
v26_1Version := data.MustLookupProtocolVersion("26.1")
// Packets received by LoginClient via RegisterCriticalUntilLatest.
// login_success is excluded because 26.2 is not convertible.
assertClientReceiveConvertible(t, reflect.TypeFor[*v1_21_8.LoginToClientPacketCompress](), "compress", proto_base.Login, proto_base.ToClient, v26_1Version)
assertClientReceiveConvertible(t, reflect.TypeFor[*v1_21_8.LoginToClientPacketEncryptionBegin](), "encryption_begin", proto_base.Login, proto_base.ToClient, v26_1Version)
assertClientReceiveConvertible(t, reflect.TypeFor[*v1_21_8.LoginToClientPacketDisconnect](), "disconnect", proto_base.Login, proto_base.ToClient, v26_1Version)
}
+27
View File
@@ -0,0 +1,27 @@
#!/usr/bin/sh
set -xeuo pipefail
# Copy minecraft-data from the local AnyGate checkout instead of cloning upstream.
# This is used when upstream does not yet have the target version or when we want
# to test local changes before pushing.
LOCAL_MINECRAFT_DATA="${LOCAL_MINECRAFT_DATA:-$HOME/src/anygate/minecraft-data}"
cd "$(dirname "$0")"
rm -rf minecraft-data/
mkdir -p minecraft-data/pc
cp "$LOCAL_MINECRAFT_DATA/data/dataPaths.json" minecraft-data/
copy-mc() {
cp -r "$LOCAL_MINECRAFT_DATA/data/pc/$1" minecraft-data/pc
}
copy-mc common
copy-mc 1.21.8
copy-mc 1.21.9
copy-mc 1.21.11
copy-mc 26.1
copy-mc 26.2
+2
View File
@@ -3,6 +3,8 @@ set -xeuo pipefail
# Go get / install does not clone git submodules so we have to do it like this # Go get / install does not clone git submodules so we have to do it like this
cd "$(dirname "$0")"
rm -rf minecraft-data/ rm -rf minecraft-data/
git clone --depth 1 git@github.com:PrismarineJS/minecraft-data.git git clone --depth 1 git@github.com:PrismarineJS/minecraft-data.git
mv minecraft-data minecraft-data-untrimmed mv minecraft-data minecraft-data-untrimmed
+122 -22
View File
@@ -1583,7 +1583,8 @@
"tints": "pc/1.21.5", "tints": "pc/1.21.5",
"version": "pc/1.21.5", "version": "pc/1.21.5",
"windows": "pc/1.16.1", "windows": "pc/1.16.1",
"proto": "pc/1.21.5" "proto": "pc/1.21.5",
"multi_noise_biome_source_parameter_list": "pc/1.21.5"
}, },
"1.21.6": { "1.21.6": {
"attributes": "pc/1.21.6", "attributes": "pc/1.21.6",
@@ -1610,7 +1611,8 @@
"tints": "pc/1.21.6", "tints": "pc/1.21.6",
"version": "pc/1.21.6", "version": "pc/1.21.6",
"windows": "pc/1.16.1", "windows": "pc/1.16.1",
"proto": "pc/1.21.6" "proto": "pc/1.21.6",
"multi_noise_biome_source_parameter_list": "pc/1.21.6"
}, },
"1.21.8": { "1.21.8": {
"attributes": "pc/1.21.8", "attributes": "pc/1.21.8",
@@ -1630,7 +1632,6 @@
"loginPacket": "pc/1.21.3", "loginPacket": "pc/1.21.3",
"mapIcons": "pc/1.20.2", "mapIcons": "pc/1.20.2",
"materials": "pc/1.21.8", "materials": "pc/1.21.8",
"multi_noise_biome_source_parameter_list": "pc/1.21.8",
"particles": "pc/1.21.8", "particles": "pc/1.21.8",
"protocol": "pc/1.21.8", "protocol": "pc/1.21.8",
"recipes": "pc/1.21.8", "recipes": "pc/1.21.8",
@@ -1638,7 +1639,8 @@
"tints": "pc/1.21.8", "tints": "pc/1.21.8",
"version": "pc/1.21.8", "version": "pc/1.21.8",
"windows": "pc/1.16.1", "windows": "pc/1.16.1",
"proto": "pc/1.21.8" "proto": "pc/1.21.8",
"multi_noise_biome_source_parameter_list": "pc/1.21.8"
}, },
"1.21.9": { "1.21.9": {
"attributes": "pc/1.21.9", "attributes": "pc/1.21.9",
@@ -1658,7 +1660,6 @@
"loginPacket": "pc/1.21.9", "loginPacket": "pc/1.21.9",
"mapIcons": "pc/1.20.2", "mapIcons": "pc/1.20.2",
"materials": "pc/1.21.9", "materials": "pc/1.21.9",
"multi_noise_biome_source_parameter_list": "pc/1.21.9",
"particles": "pc/1.21.9", "particles": "pc/1.21.9",
"protocol": "pc/1.21.9", "protocol": "pc/1.21.9",
"recipes": "pc/1.21.9", "recipes": "pc/1.21.9",
@@ -1666,7 +1667,8 @@
"tints": "pc/1.21.9", "tints": "pc/1.21.9",
"version": "pc/1.21.9", "version": "pc/1.21.9",
"windows": "pc/1.16.1", "windows": "pc/1.16.1",
"proto": "pc/1.21.9" "proto": "pc/1.21.9",
"multi_noise_biome_source_parameter_list": "pc/1.21.9"
}, },
"1.21.10": { "1.21.10": {
"attributes": "pc/1.21.9", "attributes": "pc/1.21.9",
@@ -1713,7 +1715,6 @@
"loginPacket": "pc/1.21.11", "loginPacket": "pc/1.21.11",
"mapIcons": "pc/1.20.2", "mapIcons": "pc/1.20.2",
"materials": "pc/1.21.11", "materials": "pc/1.21.11",
"multi_noise_biome_source_parameter_list": "pc/1.21.11",
"particles": "pc/1.21.11", "particles": "pc/1.21.11",
"protocol": "pc/1.21.11", "protocol": "pc/1.21.11",
"recipes": "pc/1.21.11", "recipes": "pc/1.21.11",
@@ -1721,7 +1722,62 @@
"tints": "pc/1.21.11", "tints": "pc/1.21.11",
"version": "pc/1.21.11", "version": "pc/1.21.11",
"windows": "pc/1.16.1", "windows": "pc/1.16.1",
"proto": "pc/1.21.11",
"multi_noise_biome_source_parameter_list": "pc/1.21.11"
},
"26.1": {
"attributes": "pc/26.1",
"blockCollisionShapes": "pc/26.1",
"blocks": "pc/26.1",
"blockLoot": "pc/1.20",
"biomes": "pc/26.1",
"commands": "pc/1.20.3",
"effects": "pc/26.1",
"enchantments": "pc/26.1",
"entities": "pc/26.1",
"entityLoot": "pc/1.20",
"foods": "pc/26.1",
"instruments": "pc/26.1",
"items": "pc/26.1",
"language": "pc/26.1",
"loginPacket": "pc/1.21.11",
"mapIcons": "pc/1.20.2",
"materials": "pc/26.1",
"particles": "pc/26.1",
"protocol": "pc/26.1",
"recipes": "pc/26.1",
"sounds": "pc/26.1",
"tints": "pc/26.1",
"version": "pc/26.1",
"windows": "pc/1.16.1",
"proto": "pc/latest" "proto": "pc/latest"
},
"26.2": {
"attributes": "pc/26.2",
"blockCollisionShapes": "pc/26.2",
"blocks": "pc/26.2",
"blockLoot": "pc/1.20",
"biomes": "pc/26.2",
"commands": "pc/1.20.3",
"effects": "pc/26.2",
"enchantments": "pc/26.2",
"entities": "pc/26.2",
"entityLoot": "pc/1.20",
"foods": "pc/26.2",
"instruments": "pc/26.2",
"items": "pc/26.2",
"language": "pc/26.2",
"loginPacket": "pc/1.21.11",
"mapIcons": "pc/1.20.2",
"materials": "pc/26.2",
"particles": "pc/26.2",
"protocol": "pc/26.2",
"recipes": "pc/26.2",
"sounds": "pc/26.2",
"tints": "pc/26.2",
"version": "pc/26.2",
"windows": "pc/1.16.1",
"proto": "pc/26.2"
} }
}, },
"bedrock": { "bedrock": {
@@ -2767,12 +2823,12 @@
"language": "bedrock/1.21.70" "language": "bedrock/1.21.70"
}, },
"1.26.0": { "1.26.0": {
"blocks": "bedrock/1.21.111", "blocks": "bedrock/1.26.0",
"blockStates": "bedrock/1.21.111", "blockStates": "bedrock/1.26.0",
"blockCollisionShapes": "bedrock/1.21.111", "blockCollisionShapes": "bedrock/1.26.0",
"biomes": "bedrock/1.21.60", "biomes": "bedrock/1.21.60",
"entities": "bedrock/1.21.80", "entities": "bedrock/1.21.80",
"items": "bedrock/1.21.111", "items": "bedrock/1.26.0",
"recipes": "bedrock/1.19.10", "recipes": "bedrock/1.19.10",
"instruments": "bedrock/1.17.0", "instruments": "bedrock/1.17.0",
"materials": "pc/1.17", "materials": "pc/1.17",
@@ -2781,33 +2837,77 @@
"protocol": "bedrock/1.26.0", "protocol": "bedrock/1.26.0",
"windows": "bedrock/1.16.201", "windows": "bedrock/1.16.201",
"steve": "bedrock/1.21.70", "steve": "bedrock/1.21.70",
"blocksB2J": "bedrock/1.21.111", "blocksB2J": "bedrock/1.26.0",
"blocksJ2B": "bedrock/1.21.111", "blocksJ2B": "bedrock/1.26.0",
"proto": "bedrock/1.26.0", "proto": "bedrock/1.26.0",
"types": "bedrock/latest", "types": "bedrock/latest",
"version": "bedrock/1.26.0", "version": "bedrock/1.26.0",
"language": "bedrock/1.21.70" "language": "bedrock/1.21.70"
}, },
"26.10": { "1.26.10": {
"blocks": "bedrock/1.21.111", "blocks": "bedrock/1.26.10",
"blockStates": "bedrock/1.21.111", "blockStates": "bedrock/1.26.10",
"blockCollisionShapes": "bedrock/1.21.111", "blockCollisionShapes": "bedrock/1.26.10",
"biomes": "bedrock/1.21.60", "biomes": "bedrock/1.21.60",
"entities": "bedrock/1.21.80", "entities": "bedrock/1.21.80",
"items": "bedrock/1.21.111", "items": "bedrock/1.26.10",
"recipes": "bedrock/1.19.10", "recipes": "bedrock/1.19.10",
"instruments": "bedrock/1.17.0", "instruments": "bedrock/1.17.0",
"materials": "pc/1.17", "materials": "pc/1.17",
"enchantments": "bedrock/1.19.1", "enchantments": "bedrock/1.19.1",
"effects": "pc/1.17", "effects": "pc/1.17",
"protocol": "bedrock/26.10", "protocol": "bedrock/1.26.10",
"windows": "bedrock/1.16.201", "windows": "bedrock/1.16.201",
"steve": "bedrock/1.21.70", "steve": "bedrock/1.21.70",
"blocksB2J": "bedrock/1.21.111", "blocksB2J": "bedrock/1.26.0",
"blocksJ2B": "bedrock/1.21.111", "blocksJ2B": "bedrock/1.26.0",
"proto": "bedrock/1.26.10",
"types": "bedrock/latest",
"version": "bedrock/1.26.10",
"language": "bedrock/1.21.70"
},
"1.26.20": {
"blocks": "bedrock/1.26.20",
"blockStates": "bedrock/1.26.20",
"blockCollisionShapes": "bedrock/1.26.20",
"biomes": "bedrock/1.21.60",
"entities": "bedrock/1.21.80",
"items": "bedrock/1.26.20",
"recipes": "bedrock/1.19.10",
"instruments": "bedrock/1.17.0",
"materials": "pc/1.17",
"enchantments": "bedrock/1.19.1",
"effects": "pc/1.17",
"protocol": "bedrock/1.26.20",
"windows": "bedrock/1.16.201",
"steve": "bedrock/1.21.70",
"blocksB2J": "bedrock/1.26.20",
"blocksJ2B": "bedrock/1.26.20",
"proto": "bedrock/1.26.20",
"types": "bedrock/latest",
"version": "bedrock/1.26.20",
"language": "bedrock/1.21.70"
},
"1.26.30": {
"blocks": "bedrock/1.26.30",
"blockStates": "bedrock/1.26.30",
"blockCollisionShapes": "bedrock/1.26.30",
"biomes": "bedrock/1.21.60",
"entities": "bedrock/1.21.80",
"items": "bedrock/1.26.30",
"recipes": "bedrock/1.19.10",
"instruments": "bedrock/1.17.0",
"materials": "pc/1.17",
"enchantments": "bedrock/1.19.1",
"effects": "pc/1.17",
"protocol": "bedrock/1.26.30",
"windows": "bedrock/1.16.201",
"steve": "bedrock/1.21.70",
"blocksB2J": "bedrock/1.26.30",
"blocksJ2B": "bedrock/1.26.30",
"proto": "bedrock/latest", "proto": "bedrock/latest",
"types": "bedrock/latest", "types": "bedrock/latest",
"version": "bedrock/26.10", "version": "bedrock/1.26.30",
"language": "bedrock/1.21.70" "language": "bedrock/1.21.70"
} }
} }
@@ -1,156 +1,4 @@
{ {
"minecraft:nether": [
{
"biome": "minecraft:nether_wastes",
"parameters": {
"temperature": [
0,
0
],
"humidity": [
0,
0
],
"continentalness": [
0,
0
],
"erosion": [
0,
0
],
"depth": [
0,
0
],
"weirdness": [
0,
0
],
"offset": 0.0
}
},
{
"biome": "minecraft:soul_sand_valley",
"parameters": {
"temperature": [
0,
0
],
"humidity": [
-5000,
-5000
],
"continentalness": [
0,
0
],
"erosion": [
0,
0
],
"depth": [
0,
0
],
"weirdness": [
0,
0
],
"offset": 0.0
}
},
{
"biome": "minecraft:crimson_forest",
"parameters": {
"temperature": [
4000,
4000
],
"humidity": [
0,
0
],
"continentalness": [
0,
0
],
"erosion": [
0,
0
],
"depth": [
0,
0
],
"weirdness": [
0,
0
],
"offset": 0.0
}
},
{
"biome": "minecraft:warped_forest",
"parameters": {
"temperature": [
0,
0
],
"humidity": [
5000,
5000
],
"continentalness": [
0,
0
],
"erosion": [
0,
0
],
"depth": [
0,
0
],
"weirdness": [
0,
0
],
"offset": 0.375
}
},
{
"biome": "minecraft:basalt_deltas",
"parameters": {
"temperature": [
-5000,
-5000
],
"humidity": [
0,
0
],
"continentalness": [
0,
0
],
"erosion": [
0,
0
],
"depth": [
0,
0
],
"weirdness": [
0,
0
],
"offset": 0.175
}
}
],
"minecraft:overworld": [ "minecraft:overworld": [
{ {
"biome": "minecraft:mushroom_fields", "biome": "minecraft:mushroom_fields",
@@ -227942,5 +227790,157 @@
"offset": 0.0 "offset": 0.0
} }
} }
],
"minecraft:nether": [
{
"biome": "minecraft:nether_wastes",
"parameters": {
"temperature": [
0,
0
],
"humidity": [
0,
0
],
"continentalness": [
0,
0
],
"erosion": [
0,
0
],
"depth": [
0,
0
],
"weirdness": [
0,
0
],
"offset": 0.0
}
},
{
"biome": "minecraft:soul_sand_valley",
"parameters": {
"temperature": [
0,
0
],
"humidity": [
-5000,
-5000
],
"continentalness": [
0,
0
],
"erosion": [
0,
0
],
"depth": [
0,
0
],
"weirdness": [
0,
0
],
"offset": 0.0
}
},
{
"biome": "minecraft:crimson_forest",
"parameters": {
"temperature": [
4000,
4000
],
"humidity": [
0,
0
],
"continentalness": [
0,
0
],
"erosion": [
0,
0
],
"depth": [
0,
0
],
"weirdness": [
0,
0
],
"offset": 0.0
}
},
{
"biome": "minecraft:warped_forest",
"parameters": {
"temperature": [
0,
0
],
"humidity": [
5000,
5000
],
"continentalness": [
0,
0
],
"erosion": [
0,
0
],
"depth": [
0,
0
],
"weirdness": [
0,
0
],
"offset": 0.375
}
},
{
"biome": "minecraft:basalt_deltas",
"parameters": {
"temperature": [
-5000,
-5000
],
"humidity": [
0,
0
],
"continentalness": [
0,
0
],
"erosion": [
0,
0
],
"depth": [
0,
0
],
"weirdness": [
0,
0
],
"offset": 0.175
}
}
] ]
} }
File diff suppressed because it is too large Load Diff
+79 -67
View File
@@ -447,87 +447,61 @@
] ]
], ],
"attribute_modifiers": [ "attribute_modifiers": [
"array", "container",
{ [
"countType": "varint", {
"type": [ "name": "attributes",
"container", "type": [
[ "array",
{ {
"name": "typeId", "countType": "varint",
"type": "varint"
},
{
"name": "name",
"type": "string"
},
{
"name": "value",
"type": "f64"
},
{
"name": "operation",
"type": [
"mapper",
{
"type": "varint",
"mappings": {
"0": "add",
"1": "multiply_base",
"2": "multiply_total"
}
}
]
},
{
"name": "slot",
"type": [
"mapper",
{
"type": "varint",
"mappings": {
"0": "any",
"1": "main_hand",
"2": "off_hand",
"3": "hand",
"4": "feet",
"5": "legs",
"6": "chest",
"7": "head",
"8": "armor",
"9": "body",
"10": "saddle"
}
}
]
},
{
"name": "display",
"type": [ "type": [
"container", "container",
[ [
{ {
"name": "type", "name": "typeId",
"type": "varint"
},
{
"name": "name",
"type": "string"
},
{
"name": "value",
"type": "f64"
},
{
"name": "operation",
"type": [ "type": [
"mapper", "mapper",
{ {
"type": "varint", "type": "varint",
"mappings": { "mappings": {
"0": "default", "0": "add",
"1": "hidden", "1": "multiply_base",
"2": "override" "2": "multiply_total"
} }
} }
] ]
}, },
{ {
"name": "component", "name": "slot",
"type": [ "type": [
"switch", "mapper",
{ {
"compareTo": "type", "type": "varint",
"fields": { "mappings": {
"override": "anonymousNbt" "0": "any",
"1": "main_hand",
"2": "off_hand",
"3": "hand",
"4": "feet",
"5": "legs",
"6": "chest",
"7": "head",
"8": "armor",
"9": "body",
"10": "saddle"
} }
} }
] ]
@@ -536,8 +510,42 @@
] ]
} }
] ]
] },
} {
"name": "display",
"type": [
"container",
[
{
"name": "type",
"type": [
"mapper",
{
"type": "varint",
"mappings": {
"0": "default",
"1": "hidden",
"2": "override"
}
}
]
},
{
"name": "component",
"type": [
"switch",
{
"compareTo": "type",
"fields": {
"override": "anonymousNbt"
}
}
]
}
]
]
}
]
], ],
"custom_model_data": [ "custom_model_data": [
"container", "container",
@@ -5706,6 +5714,10 @@
"play": { "play": {
"toClient": { "toClient": {
"types": { "types": {
"packet_bundle_delimiter": [
"container",
[]
],
"SlotDisplay": [ "SlotDisplay": [
"container", "container",
[ [
@@ -10121,7 +10133,7 @@
{ {
"compareTo": "name", "compareTo": "name",
"fields": { "fields": {
"bundle_delimiter": "void", "bundle_delimiter": "packet_bundle_delimiter",
"spawn_entity": "packet_spawn_entity", "spawn_entity": "packet_spawn_entity",
"animation": "packet_animation", "animation": "packet_animation",
"statistics": "packet_statistics", "statistics": "packet_statistics",
+7 -4
View File
@@ -1595,6 +1595,9 @@
if select_known_packs: packet_common_select_known_packs if select_known_packs: packet_common_select_known_packs
if custom_click_action: packet_common_custom_click_action if custom_click_action: packet_common_custom_click_action
^play.toClient.types: ^play.toClient.types:
# MC: ClientboundBundleDelimiterPacket
packet_bundle_delimiter:
# empty
SlotDisplay: SlotDisplay:
type: varint => type: varint =>
- empty - empty
@@ -2844,7 +2847,7 @@
- clear_dialog - clear_dialog
- show_dialog - show_dialog
params: name ? params: name ?
if bundle_delimiter: void if bundle_delimiter: packet_bundle_delimiter
if spawn_entity: packet_spawn_entity if spawn_entity: packet_spawn_entity
if animation: packet_animation if animation: packet_animation
if statistics: packet_statistics if statistics: packet_statistics
@@ -3031,7 +3034,7 @@
"count": 3 "count": 3
} }
] ]
checksum: i8 checksum: u8
# MC: ServerboundChatPacket # MC: ServerboundChatPacket
packet_chat_message: packet_chat_message:
message: string message: string
@@ -3050,7 +3053,7 @@
"count": 3 "count": 3
} }
] ]
checksum: i8 checksum: u8
# MC: ServerboundChatSessionUpdatePacket # MC: ServerboundChatSessionUpdatePacket
packet_chat_session_update: packet_chat_session_update:
sessionUUID: UUID sessionUUID: UUID
@@ -3076,7 +3079,7 @@
# MC: ServerboundContainerButtonClickPacket # MC: ServerboundContainerButtonClickPacket
packet_enchant_item: packet_enchant_item:
windowId: ContainerID windowId: ContainerID
enchantment: i8 enchantment: varint
# MC: ServerboundContainerClickPacket # MC: ServerboundContainerClickPacket
packet_window_click: packet_window_click:
windowId: ContainerID windowId: ContainerID
@@ -4377,6 +4377,10 @@
"play": { "play": {
"toClient": { "toClient": {
"types": { "types": {
"packet_bundle_delimiter": [
"container",
[]
],
"SlotDisplay": [ "SlotDisplay": [
"container", "container",
[ [
@@ -8702,7 +8706,7 @@
{ {
"compareTo": "name", "compareTo": "name",
"fields": { "fields": {
"bundle_delimiter": "void", "bundle_delimiter": "packet_bundle_delimiter",
"spawn_entity": "packet_spawn_entity", "spawn_entity": "packet_spawn_entity",
"animation": "packet_animation", "animation": "packet_animation",
"statistics": "packet_statistics", "statistics": "packet_statistics",
@@ -8996,7 +9000,7 @@
}, },
{ {
"name": "checksum", "name": "checksum",
"type": "i8" "type": "u8"
} }
] ]
], ],
@@ -9042,7 +9046,7 @@
}, },
{ {
"name": "checksum", "name": "checksum",
"type": "i8" "type": "u8"
} }
] ]
], ],
@@ -9115,7 +9119,7 @@
}, },
{ {
"name": "enchantment", "name": "enchantment",
"type": "i8" "type": "varint"
} }
] ]
], ],
+6 -3
View File
@@ -1835,6 +1835,9 @@
if custom_click_action: packet_common_custom_click_action if custom_click_action: packet_common_custom_click_action
if accept_code_of_conduct: packet_accept_code_of_conduct if accept_code_of_conduct: packet_accept_code_of_conduct
^play.toClient.types: ^play.toClient.types:
# MC: ClientboundBundleDelimiterPacket
packet_bundle_delimiter:
# empty
SlotDisplay: SlotDisplay:
type: varint => type: varint =>
- empty - empty
@@ -3114,7 +3117,7 @@
- clear_dialog - clear_dialog
- show_dialog - show_dialog
params: name ? params: name ?
if bundle_delimiter: void if bundle_delimiter: packet_bundle_delimiter
if spawn_entity: packet_spawn_entity if spawn_entity: packet_spawn_entity
if animation: packet_animation if animation: packet_animation
if statistics: packet_statistics if statistics: packet_statistics
@@ -3305,7 +3308,7 @@
"count": 3 "count": 3
} }
] ]
checksum: i8 checksum: u8
# MC: ServerboundChatPacket # MC: ServerboundChatPacket
packet_chat_message: packet_chat_message:
message: string message: string
@@ -3350,7 +3353,7 @@
# MC: ServerboundContainerButtonClickPacket # MC: ServerboundContainerButtonClickPacket
packet_enchant_item: packet_enchant_item:
windowId: ContainerID windowId: ContainerID
enchantment: i8 enchantment: varint
# MC: ServerboundContainerClickPacket # MC: ServerboundContainerClickPacket
packet_window_click: packet_window_click:
windowId: ContainerID windowId: ContainerID
@@ -5416,6 +5416,10 @@
"play": { "play": {
"toClient": { "toClient": {
"types": { "types": {
"packet_bundle_delimiter": [
"container",
[]
],
"SlotDisplay": [ "SlotDisplay": [
"container", "container",
[ [
@@ -9831,7 +9835,7 @@
{ {
"compareTo": "name", "compareTo": "name",
"fields": { "fields": {
"bundle_delimiter": "void", "bundle_delimiter": "packet_bundle_delimiter",
"spawn_entity": "packet_spawn_entity", "spawn_entity": "packet_spawn_entity",
"animation": "packet_animation", "animation": "packet_animation",
"statistics": "packet_statistics", "statistics": "packet_statistics",
@@ -10130,7 +10134,7 @@
}, },
{ {
"name": "checksum", "name": "checksum",
"type": "i8" "type": "u8"
} }
] ]
], ],
@@ -10249,7 +10253,7 @@
}, },
{ {
"name": "enchantment", "name": "enchantment",
"type": "i8" "type": "varint"
} }
] ]
], ],
@@ -0,0 +1,247 @@
[
{
"name": "armor",
"resource": "minecraft:armor",
"min": 0.0,
"max": 30.0,
"default": 0.0
},
{
"name": "armorToughness",
"resource": "minecraft:armor_toughness",
"min": 0.0,
"max": 20.0,
"default": 0.0
},
{
"name": "attackDamage",
"resource": "minecraft:attack_damage",
"min": 0.0,
"max": 2048.0,
"default": 2.0
},
{
"name": "attackKnockback",
"resource": "minecraft:attack_knockback",
"min": 0.0,
"max": 5.0,
"default": 0.0
},
{
"name": "attackSpeed",
"resource": "minecraft:attack_speed",
"min": 0.0,
"max": 1024.0,
"default": 4.0
},
{
"name": "blockBreakSpeed",
"resource": "minecraft:block_break_speed",
"min": 0.0,
"max": 1024.0,
"default": 1.0
},
{
"name": "blockInteractionRange",
"resource": "minecraft:block_interaction_range",
"min": 0.0,
"max": 64.0,
"default": 4.5
},
{
"name": "burningTime",
"resource": "minecraft:burning_time",
"min": 0.0,
"max": 1024.0,
"default": 1.0
},
{
"name": "cameraDistance",
"resource": "minecraft:camera_distance",
"min": 0.0,
"max": 32.0,
"default": 4.0
},
{
"name": "explosionKnockbackResistance",
"resource": "minecraft:explosion_knockback_resistance",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "entityInteractionRange",
"resource": "minecraft:entity_interaction_range",
"min": 0.0,
"max": 64.0,
"default": 3.0
},
{
"name": "fallDamageMultiplier",
"resource": "minecraft:fall_damage_multiplier",
"min": 0.0,
"max": 100.0,
"default": 1.0
},
{
"name": "flyingSpeed",
"resource": "minecraft:flying_speed",
"min": 0.0,
"max": 1024.0,
"default": 0.4
},
{
"name": "followRange",
"resource": "minecraft:follow_range",
"min": 0.0,
"max": 2048.0,
"default": 32.0
},
{
"name": "gravity",
"resource": "minecraft:gravity",
"min": -1.0,
"max": 1.0,
"default": 0.08
},
{
"name": "jumpStrength",
"resource": "minecraft:jump_strength",
"min": 0.0,
"max": 32.0,
"default": 0.41999998688697815
},
{
"name": "knockbackResistance",
"resource": "minecraft:knockback_resistance",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "luck",
"resource": "minecraft:luck",
"min": -1024.0,
"max": 1024.0,
"default": 0.0
},
{
"name": "maxAbsorption",
"resource": "minecraft:max_absorption",
"min": 0.0,
"max": 2048.0,
"default": 0.0
},
{
"name": "maxHealth",
"resource": "minecraft:max_health",
"min": 1.0,
"max": 1024.0,
"default": 20.0
},
{
"name": "miningEfficiency",
"resource": "minecraft:mining_efficiency",
"min": 0.0,
"max": 1024.0,
"default": 0.0
},
{
"name": "movementEfficiency",
"resource": "minecraft:movement_efficiency",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "movementSpeed",
"resource": "minecraft:movement_speed",
"min": 0.0,
"max": 1024.0,
"default": 0.7
},
{
"name": "oxygenBonus",
"resource": "minecraft:oxygen_bonus",
"min": 0.0,
"max": 1024.0,
"default": 0.0
},
{
"name": "safeFallDistance",
"resource": "minecraft:safe_fall_distance",
"min": -1024.0,
"max": 1024.0,
"default": 3.0
},
{
"name": "scale",
"resource": "minecraft:scale",
"min": 0.0625,
"max": 16.0,
"default": 1.0
},
{
"name": "sneakingSpeed",
"resource": "minecraft:sneaking_speed",
"min": 0.0,
"max": 1.0,
"default": 0.3
},
{
"name": "spawnReinforcements",
"resource": "minecraft:spawn_reinforcements",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "stepHeight",
"resource": "minecraft:step_height",
"min": 0.0,
"max": 10.0,
"default": 0.6
},
{
"name": "submergedMiningSpeed",
"resource": "minecraft:submerged_mining_speed",
"min": 0.0,
"max": 20.0,
"default": 0.2
},
{
"name": "sweepingDamageRatio",
"resource": "minecraft:sweeping_damage_ratio",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "temptRange",
"resource": "minecraft:tempt_range",
"min": 0.0,
"max": 2048.0,
"default": 10.0
},
{
"name": "waterMovementEfficiency",
"resource": "minecraft:water_movement_efficiency",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "waypointTransmitRange",
"resource": "minecraft:waypoint_transmit_range",
"min": 0.0,
"max": 6.0E7,
"default": 0.0
},
{
"name": "waypointReceiveRange",
"resource": "minecraft:waypoint_receive_range",
"min": 0.0,
"max": 6.0E7,
"default": 0.0
}
]
+652
View File
@@ -0,0 +1,652 @@
[
{
"id": 0,
"name": "badlands",
"category": "mesa",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Badlands",
"color": 7254527
},
{
"id": 1,
"name": "bamboo_jungle",
"category": "jungle",
"temperature": 0.95,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Bamboo Jungle",
"color": 7842047
},
{
"id": 2,
"name": "basalt_deltas",
"category": "nether",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "nether",
"displayName": "Basalt Deltas",
"color": 0
},
{
"id": 3,
"name": "beach",
"category": "beach",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Beach",
"color": 7907327
},
{
"id": 4,
"name": "birch_forest",
"category": "forest",
"temperature": 0.6,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Birch Forest",
"color": 8037887
},
{
"id": 5,
"name": "cherry_grove",
"category": "forest",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Cherry Grove",
"color": 8103167
},
{
"id": 6,
"name": "cold_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Cold Ocean",
"color": 8103167
},
{
"id": 7,
"name": "crimson_forest",
"category": "nether",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "nether",
"displayName": "Crimson Forest",
"color": 0
},
{
"id": 8,
"name": "dark_forest",
"category": "forest",
"temperature": 0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Dark Forest",
"color": 7972607
},
{
"id": 9,
"name": "deep_cold_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Deep Cold Ocean",
"color": 8103167
},
{
"id": 10,
"name": "deep_dark",
"category": "underground",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Deep Dark",
"color": 7907327
},
{
"id": 11,
"name": "deep_frozen_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Deep Frozen Ocean",
"color": 8103167
},
{
"id": 12,
"name": "deep_lukewarm_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Deep Lukewarm Ocean",
"color": 8103167
},
{
"id": 13,
"name": "deep_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Deep Ocean",
"color": 8103167
},
{
"id": 14,
"name": "desert",
"category": "desert",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Desert",
"color": 7254527
},
{
"id": 15,
"name": "dripstone_caves",
"category": "underground",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Dripstone Caves",
"color": 7907327
},
{
"id": 16,
"name": "end_barrens",
"category": "the_end",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "end",
"displayName": "End Barrens",
"color": 0
},
{
"id": 17,
"name": "end_highlands",
"category": "the_end",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "end",
"displayName": "End Highlands",
"color": 0
},
{
"id": 18,
"name": "end_midlands",
"category": "the_end",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "end",
"displayName": "End Midlands",
"color": 0
},
{
"id": 19,
"name": "eroded_badlands",
"category": "mesa",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Eroded Badlands",
"color": 7254527
},
{
"id": 20,
"name": "flower_forest",
"category": "forest",
"temperature": 0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Flower Forest",
"color": 7972607
},
{
"id": 21,
"name": "forest",
"category": "forest",
"temperature": 0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Forest",
"color": 7972607
},
{
"id": 22,
"name": "frozen_ocean",
"category": "ocean",
"temperature": 0.0,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Frozen Ocean",
"color": 8364543
},
{
"id": 23,
"name": "frozen_peaks",
"category": "ice",
"temperature": -0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Frozen Peaks",
"color": 8756735
},
{
"id": 24,
"name": "frozen_river",
"category": "ice",
"temperature": 0.0,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Frozen River",
"color": 8364543
},
{
"id": 25,
"name": "grove",
"category": "forest",
"temperature": -0.2,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Grove",
"color": 8495359
},
{
"id": 26,
"name": "ice_spikes",
"category": "ice",
"temperature": 0.0,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Ice Spikes",
"color": 8364543
},
{
"id": 27,
"name": "jagged_peaks",
"category": "mountain",
"temperature": -0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Jagged Peaks",
"color": 8756735
},
{
"id": 28,
"name": "jungle",
"category": "jungle",
"temperature": 0.95,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Jungle",
"color": 7842047
},
{
"id": 29,
"name": "lukewarm_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Lukewarm Ocean",
"color": 8103167
},
{
"id": 30,
"name": "lush_caves",
"category": "underground",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Lush Caves",
"color": 8103167
},
{
"id": 31,
"name": "mangrove_swamp",
"category": "forest",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Mangrove Swamp",
"color": 7907327
},
{
"id": 32,
"name": "meadow",
"category": "mountain",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Meadow",
"color": 8103167
},
{
"id": 33,
"name": "mushroom_fields",
"category": "mushroom",
"temperature": 0.9,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Mushroom Fields",
"color": 7842047
},
{
"id": 34,
"name": "nether_wastes",
"category": "nether",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "nether",
"displayName": "Nether Wastes",
"color": 0
},
{
"id": 35,
"name": "ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Ocean",
"color": 8103167
},
{
"id": 36,
"name": "old_growth_birch_forest",
"category": "forest",
"temperature": 0.6,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Old Growth Birch Forest",
"color": 8037887
},
{
"id": 37,
"name": "old_growth_pine_taiga",
"category": "taiga",
"temperature": 0.3,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Old Growth Pine Taiga",
"color": 8168447
},
{
"id": 38,
"name": "old_growth_spruce_taiga",
"category": "taiga",
"temperature": 0.25,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Old Growth Spruce Taiga",
"color": 8233983
},
{
"id": 39,
"name": "pale_garden",
"category": "none",
"temperature": 0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Pale Garden",
"color": 12171705
},
{
"id": 40,
"name": "plains",
"category": "plains",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Plains",
"color": 7907327
},
{
"id": 41,
"name": "river",
"category": "river",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "River",
"color": 8103167
},
{
"id": 42,
"name": "savanna",
"category": "savanna",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Savanna",
"color": 7254527
},
{
"id": 43,
"name": "savanna_plateau",
"category": "savanna",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Savanna Plateau",
"color": 7254527
},
{
"id": 44,
"name": "small_end_islands",
"category": "the_end",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "end",
"displayName": "Small End Islands",
"color": 0
},
{
"id": 45,
"name": "snowy_beach",
"category": "beach",
"temperature": 0.05,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Snowy Beach",
"color": 8364543
},
{
"id": 46,
"name": "snowy_plains",
"category": "plains",
"temperature": 0.0,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Snowy Plains",
"color": 8364543
},
{
"id": 47,
"name": "snowy_slopes",
"category": "mountain",
"temperature": -0.3,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Snowy Slopes",
"color": 8560639
},
{
"id": 48,
"name": "snowy_taiga",
"category": "taiga",
"temperature": -0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Snowy Taiga",
"color": 8625919
},
{
"id": 49,
"name": "soul_sand_valley",
"category": "nether",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "nether",
"displayName": "Soul Sand Valley",
"color": 0
},
{
"id": 50,
"name": "sparse_jungle",
"category": "jungle",
"temperature": 0.95,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Sparse Jungle",
"color": 7842047
},
{
"id": 51,
"name": "stony_peaks",
"category": "mountain",
"temperature": 1.0,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Stony Peaks",
"color": 7776511
},
{
"id": 52,
"name": "stony_shore",
"category": "beach",
"temperature": 0.2,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Stony Shore",
"color": 8233727
},
{
"id": 53,
"name": "sunflower_plains",
"category": "plains",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Sunflower Plains",
"color": 7907327
},
{
"id": 54,
"name": "swamp",
"category": "swamp",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Swamp",
"color": 7907327
},
{
"id": 55,
"name": "taiga",
"category": "taiga",
"temperature": 0.25,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Taiga",
"color": 8233983
},
{
"id": 56,
"name": "the_end",
"category": "the_end",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "end",
"displayName": "The End",
"color": 0
},
{
"id": 57,
"name": "the_void",
"category": "none",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "The Void",
"color": 8103167
},
{
"id": 58,
"name": "warm_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Warm Ocean",
"color": 8103167
},
{
"id": 59,
"name": "warped_forest",
"category": "nether",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "nether",
"displayName": "Warped Forest",
"color": 0
},
{
"id": 60,
"name": "windswept_forest",
"category": "forest",
"temperature": 0.2,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Windswept Forest",
"color": 8233727
},
{
"id": 61,
"name": "windswept_gravelly_hills",
"category": "extreme_hills",
"temperature": 0.2,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Windswept Gravelly Hills",
"color": 8233727
},
{
"id": 62,
"name": "windswept_hills",
"category": "extreme_hills",
"temperature": 0.2,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Windswept Hills",
"color": 8233727
},
{
"id": 63,
"name": "windswept_savanna",
"category": "savanna",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Windswept Savanna",
"color": 7254527
},
{
"id": 64,
"name": "wooded_badlands",
"category": "mesa",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Wooded Badlands",
"color": 7254527
}
]
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+242
View File
@@ -0,0 +1,242 @@
[
{
"id": 0,
"name": "Speed",
"displayName": "Speed",
"type": "good"
},
{
"id": 1,
"name": "Slowness",
"displayName": "Slowness",
"type": "bad"
},
{
"id": 2,
"name": "Haste",
"displayName": "Haste",
"type": "good"
},
{
"id": 3,
"name": "MiningFatigue",
"displayName": "Mining Fatigue",
"type": "bad"
},
{
"id": 4,
"name": "Strength",
"displayName": "Strength",
"type": "good"
},
{
"id": 5,
"name": "InstantHealth",
"displayName": "Instant Health",
"type": "good"
},
{
"id": 6,
"name": "InstantDamage",
"displayName": "Instant Damage",
"type": "bad"
},
{
"id": 7,
"name": "JumpBoost",
"displayName": "Jump Boost",
"type": "good"
},
{
"id": 8,
"name": "Nausea",
"displayName": "Nausea",
"type": "bad"
},
{
"id": 9,
"name": "Regeneration",
"displayName": "Regeneration",
"type": "good"
},
{
"id": 10,
"name": "Resistance",
"displayName": "Resistance",
"type": "good"
},
{
"id": 11,
"name": "FireResistance",
"displayName": "Fire Resistance",
"type": "good"
},
{
"id": 12,
"name": "WaterBreathing",
"displayName": "Water Breathing",
"type": "good"
},
{
"id": 13,
"name": "Invisibility",
"displayName": "Invisibility",
"type": "good"
},
{
"id": 14,
"name": "Blindness",
"displayName": "Blindness",
"type": "bad"
},
{
"id": 15,
"name": "NightVision",
"displayName": "Night Vision",
"type": "good"
},
{
"id": 16,
"name": "Hunger",
"displayName": "Hunger",
"type": "bad"
},
{
"id": 17,
"name": "Weakness",
"displayName": "Weakness",
"type": "bad"
},
{
"id": 18,
"name": "Poison",
"displayName": "Poison",
"type": "bad"
},
{
"id": 19,
"name": "Wither",
"displayName": "Wither",
"type": "bad"
},
{
"id": 20,
"name": "HealthBoost",
"displayName": "Health Boost",
"type": "good"
},
{
"id": 21,
"name": "Absorption",
"displayName": "Absorption",
"type": "good"
},
{
"id": 22,
"name": "Saturation",
"displayName": "Saturation",
"type": "good"
},
{
"id": 23,
"name": "Glowing",
"displayName": "Glowing",
"type": "bad"
},
{
"id": 24,
"name": "Levitation",
"displayName": "Levitation",
"type": "bad"
},
{
"id": 25,
"name": "Luck",
"displayName": "Luck",
"type": "good"
},
{
"id": 26,
"name": "BadLuck",
"displayName": "Bad Luck",
"type": "bad"
},
{
"id": 27,
"name": "SlowFalling",
"displayName": "Slow Falling",
"type": "good"
},
{
"id": 28,
"name": "ConduitPower",
"displayName": "Conduit Power",
"type": "good"
},
{
"id": 29,
"name": "DolphinsGrace",
"displayName": "Dolphin's Grace",
"type": "good"
},
{
"id": 30,
"name": "BadOmen",
"displayName": "Bad Omen",
"type": "bad"
},
{
"id": 31,
"name": "HeroOfTheVillage",
"displayName": "Hero of the Village",
"type": "good"
},
{
"id": 32,
"name": "Darkness",
"displayName": "Darkness",
"type": "bad"
},
{
"id": 33,
"name": "TrialOmen",
"displayName": "Trial Omen",
"type": "bad"
},
{
"id": 34,
"name": "RaidOmen",
"displayName": "Raid Omen",
"type": "bad"
},
{
"id": 35,
"name": "WindCharged",
"displayName": "Wind Charged",
"type": "bad"
},
{
"id": 36,
"name": "Weaving",
"displayName": "Weaving",
"type": "bad"
},
{
"id": 37,
"name": "Oozing",
"displayName": "Oozing",
"type": "bad"
},
{
"id": 38,
"name": "Infested",
"displayName": "Infested",
"type": "bad"
},
{
"id": 39,
"name": "BreathOfTheNautilus",
"displayName": "Breath of the Nautilus",
"type": "good"
}
]
@@ -0,0 +1,980 @@
[
{
"id": 0,
"name": "aqua_affinity",
"displayName": "Aqua Affinity",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "head_armor",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 1,
"name": "bane_of_arthropods",
"displayName": "Bane of Arthropods",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"breach",
"density",
"impaling",
"sharpness",
"smite"
],
"category": "weapon",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 2,
"name": "binding_curse",
"displayName": "Curse of Binding",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": true,
"curse": true,
"exclude": [],
"category": "equippable",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 3,
"name": "blast_protection",
"displayName": "Blast Protection",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"fire_protection",
"projectile_protection",
"protection"
],
"category": "armor",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 4,
"name": "breach",
"displayName": "Breach",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"bane_of_arthropods",
"density",
"impaling",
"sharpness",
"smite"
],
"category": "mace",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 5,
"name": "channeling",
"displayName": "Channeling",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"riptide"
],
"category": "trident",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 6,
"name": "density",
"displayName": "Density",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"bane_of_arthropods",
"breach",
"impaling",
"sharpness",
"smite"
],
"category": "mace",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 7,
"name": "depth_strider",
"displayName": "Depth Strider",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"frost_walker"
],
"category": "foot_armor",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 8,
"name": "efficiency",
"displayName": "Efficiency",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "mining",
"weight": 10,
"tradeable": true,
"discoverable": true
},
{
"id": 9,
"name": "feather_falling",
"displayName": "Feather Falling",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "foot_armor",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 10,
"name": "fire_aspect",
"displayName": "Fire Aspect",
"maxLevel": 2,
"minCost": {
"a": 1,
"b": 1
},
"maxCost": {
"a": 1,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "fire_aspect",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 11,
"name": "fire_protection",
"displayName": "Fire Protection",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"blast_protection",
"projectile_protection",
"protection"
],
"category": "armor",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 12,
"name": "flame",
"displayName": "Flame",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "bow",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 13,
"name": "fortune",
"displayName": "Fortune",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"silk_touch"
],
"category": "mining_loot",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 14,
"name": "frost_walker",
"displayName": "Frost Walker",
"maxLevel": 2,
"minCost": {
"a": 1,
"b": 1
},
"maxCost": {
"a": 1,
"b": 1
},
"treasureOnly": true,
"curse": false,
"exclude": [
"depth_strider"
],
"category": "foot_armor",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 15,
"name": "impaling",
"displayName": "Impaling",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"bane_of_arthropods",
"breach",
"density",
"sharpness",
"smite"
],
"category": "trident",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 16,
"name": "infinity",
"displayName": "Infinity",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"mending"
],
"category": "bow",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 17,
"name": "knockback",
"displayName": "Knockback",
"maxLevel": 2,
"minCost": {
"a": 1,
"b": 1
},
"maxCost": {
"a": 1,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "melee_weapon",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 18,
"name": "looting",
"displayName": "Looting",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "melee_weapon",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 19,
"name": "loyalty",
"displayName": "Loyalty",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"riptide"
],
"category": "trident",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 20,
"name": "luck_of_the_sea",
"displayName": "Luck of the Sea",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "fishing",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 21,
"name": "lunge",
"displayName": "Lunge",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "lunge",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 22,
"name": "lure",
"displayName": "Lure",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "fishing",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 23,
"name": "mending",
"displayName": "Mending",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": true,
"curse": false,
"exclude": [
"infinity"
],
"category": "durability",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 24,
"name": "multishot",
"displayName": "Multishot",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"piercing"
],
"category": "crossbow",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 25,
"name": "piercing",
"displayName": "Piercing",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"multishot"
],
"category": "crossbow",
"weight": 10,
"tradeable": true,
"discoverable": true
},
{
"id": 26,
"name": "power",
"displayName": "Power",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "bow",
"weight": 10,
"tradeable": true,
"discoverable": true
},
{
"id": 27,
"name": "projectile_protection",
"displayName": "Projectile Protection",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"blast_protection",
"fire_protection",
"protection"
],
"category": "armor",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 28,
"name": "protection",
"displayName": "Protection",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"blast_protection",
"fire_protection",
"projectile_protection"
],
"category": "armor",
"weight": 10,
"tradeable": true,
"discoverable": true
},
{
"id": 29,
"name": "punch",
"displayName": "Punch",
"maxLevel": 2,
"minCost": {
"a": 1,
"b": 1
},
"maxCost": {
"a": 1,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "bow",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 30,
"name": "quick_charge",
"displayName": "Quick Charge",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "crossbow",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 31,
"name": "respiration",
"displayName": "Respiration",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "head_armor",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 32,
"name": "riptide",
"displayName": "Riptide",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"channeling",
"loyalty"
],
"category": "trident",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 33,
"name": "sharpness",
"displayName": "Sharpness",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"bane_of_arthropods",
"breach",
"density",
"impaling",
"smite"
],
"category": "sharp_weapon",
"weight": 10,
"tradeable": true,
"discoverable": true
},
{
"id": 34,
"name": "silk_touch",
"displayName": "Silk Touch",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"fortune"
],
"category": "mining_loot",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 35,
"name": "smite",
"displayName": "Smite",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"bane_of_arthropods",
"breach",
"density",
"impaling",
"sharpness"
],
"category": "weapon",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 36,
"name": "soul_speed",
"displayName": "Soul Speed",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": true,
"curse": false,
"exclude": [],
"category": "foot_armor",
"weight": 1,
"tradeable": false,
"discoverable": false
},
{
"id": 37,
"name": "sweeping_edge",
"displayName": "Sweeping Edge",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "sweeping",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 38,
"name": "swift_sneak",
"displayName": "Swift Sneak",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": true,
"curse": false,
"exclude": [],
"category": "leg_armor",
"weight": 1,
"tradeable": false,
"discoverable": false
},
{
"id": 39,
"name": "thorns",
"displayName": "Thorns",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "armor",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 40,
"name": "unbreaking",
"displayName": "Unbreaking",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "durability",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 41,
"name": "vanishing_curse",
"displayName": "Curse of Vanishing",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": true,
"curse": true,
"exclude": [],
"category": "vanishing",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 42,
"name": "wind_burst",
"displayName": "Wind Burst",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": true,
"curse": false,
"exclude": [],
"category": "mace",
"weight": 2,
"tradeable": false,
"discoverable": false
}
]
File diff suppressed because it is too large Load Diff
+442
View File
@@ -0,0 +1,442 @@
[
{
"id": 894,
"name": "apple",
"stackSize": 64,
"displayName": "Apple",
"foodPoints": 4.0,
"saturation": 2.4,
"effectiveQuality": 6.4,
"saturationRatio": 0.6
},
{
"id": 948,
"name": "mushroom_stew",
"stackSize": 1,
"displayName": "Mushroom Stew",
"foodPoints": 6.0,
"saturation": 7.2000003,
"effectiveQuality": 13.200001,
"saturationRatio": 1.2
},
{
"id": 954,
"name": "bread",
"stackSize": 64,
"displayName": "Bread",
"foodPoints": 5.0,
"saturation": 6.0,
"effectiveQuality": 11.0,
"saturationRatio": 1.2
},
{
"id": 984,
"name": "porkchop",
"stackSize": 64,
"displayName": "Raw Porkchop",
"foodPoints": 3.0,
"saturation": 1.8000001,
"effectiveQuality": 4.8,
"saturationRatio": 0.6
},
{
"id": 985,
"name": "cooked_porkchop",
"stackSize": 64,
"displayName": "Cooked Porkchop",
"foodPoints": 8.0,
"saturation": 12.8,
"effectiveQuality": 20.8,
"saturationRatio": 1.6
},
{
"id": 987,
"name": "golden_apple",
"stackSize": 64,
"displayName": "Golden Apple",
"foodPoints": 4.0,
"saturation": 9.6,
"effectiveQuality": 13.6,
"saturationRatio": 2.4
},
{
"id": 988,
"name": "enchanted_golden_apple",
"stackSize": 64,
"displayName": "Enchanted Golden Apple",
"foodPoints": 4.0,
"saturation": 9.6,
"effectiveQuality": 13.6,
"saturationRatio": 2.4
},
{
"id": 1020,
"name": "pufferfish_bucket",
"stackSize": 1,
"displayName": "Bucket of Pufferfish",
"foodPoints": 1.0,
"saturation": 0.2,
"effectiveQuality": 1.2,
"saturationRatio": 0.2
},
{
"id": 1021,
"name": "salmon_bucket",
"stackSize": 1,
"displayName": "Bucket of Salmon",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1022,
"name": "cod_bucket",
"stackSize": 1,
"displayName": "Bucket of Cod",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1023,
"name": "tropical_fish_bucket",
"stackSize": 1,
"displayName": "Bucket of Tropical Fish",
"foodPoints": 1.0,
"saturation": 0.2,
"effectiveQuality": 1.2,
"saturationRatio": 0.2
},
{
"id": 1058,
"name": "cod",
"stackSize": 64,
"displayName": "Raw Cod",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1059,
"name": "salmon",
"stackSize": 64,
"displayName": "Raw Salmon",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1060,
"name": "tropical_fish",
"stackSize": 64,
"displayName": "Tropical Fish",
"foodPoints": 1.0,
"saturation": 0.2,
"effectiveQuality": 1.2,
"saturationRatio": 0.2
},
{
"id": 1061,
"name": "pufferfish",
"stackSize": 64,
"displayName": "Pufferfish",
"foodPoints": 1.0,
"saturation": 0.2,
"effectiveQuality": 1.2,
"saturationRatio": 0.2
},
{
"id": 1062,
"name": "cooked_cod",
"stackSize": 64,
"displayName": "Cooked Cod",
"foodPoints": 5.0,
"saturation": 6.0,
"effectiveQuality": 11.0,
"saturationRatio": 1.2
},
{
"id": 1063,
"name": "cooked_salmon",
"stackSize": 64,
"displayName": "Cooked Salmon",
"foodPoints": 6.0,
"saturation": 9.6,
"effectiveQuality": 15.6,
"saturationRatio": 1.6
},
{
"id": 1103,
"name": "cookie",
"stackSize": 64,
"displayName": "Cookie",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1107,
"name": "melon_slice",
"stackSize": 64,
"displayName": "Melon Slice",
"foodPoints": 2.0,
"saturation": 1.2,
"effectiveQuality": 3.2,
"saturationRatio": 0.6
},
{
"id": 1108,
"name": "dried_kelp",
"stackSize": 64,
"displayName": "Dried Kelp",
"foodPoints": 1.0,
"saturation": 0.6,
"effectiveQuality": 1.6,
"saturationRatio": 0.6
},
{
"id": 1111,
"name": "beef",
"stackSize": 64,
"displayName": "Raw Beef",
"foodPoints": 3.0,
"saturation": 1.8000001,
"effectiveQuality": 4.8,
"saturationRatio": 0.6
},
{
"id": 1112,
"name": "cooked_beef",
"stackSize": 64,
"displayName": "Steak",
"foodPoints": 8.0,
"saturation": 12.8,
"effectiveQuality": 20.8,
"saturationRatio": 1.6
},
{
"id": 1113,
"name": "chicken",
"stackSize": 64,
"displayName": "Raw Chicken",
"foodPoints": 2.0,
"saturation": 1.2,
"effectiveQuality": 3.2,
"saturationRatio": 0.6
},
{
"id": 1114,
"name": "cooked_chicken",
"stackSize": 64,
"displayName": "Cooked Chicken",
"foodPoints": 6.0,
"saturation": 7.2000003,
"effectiveQuality": 13.200001,
"saturationRatio": 1.2
},
{
"id": 1115,
"name": "rotten_flesh",
"stackSize": 64,
"displayName": "Rotten Flesh",
"foodPoints": 4.0,
"saturation": 0.8,
"effectiveQuality": 4.8,
"saturationRatio": 0.2
},
{
"id": 1123,
"name": "spider_eye",
"stackSize": 64,
"displayName": "Spider Eye",
"foodPoints": 2.0,
"saturation": 3.2,
"effectiveQuality": 5.2,
"saturationRatio": 1.6
},
{
"id": 1228,
"name": "carrot",
"stackSize": 64,
"displayName": "Carrot",
"foodPoints": 3.0,
"saturation": 3.6000001,
"effectiveQuality": 6.6000004,
"saturationRatio": 1.2
},
{
"id": 1229,
"name": "potato",
"stackSize": 64,
"displayName": "Potato",
"foodPoints": 1.0,
"saturation": 0.6,
"effectiveQuality": 1.6,
"saturationRatio": 0.6
},
{
"id": 1230,
"name": "baked_potato",
"stackSize": 64,
"displayName": "Baked Potato",
"foodPoints": 5.0,
"saturation": 6.0,
"effectiveQuality": 11.0,
"saturationRatio": 1.2
},
{
"id": 1231,
"name": "poisonous_potato",
"stackSize": 64,
"displayName": "Poisonous Potato",
"foodPoints": 2.0,
"saturation": 1.2,
"effectiveQuality": 3.2,
"saturationRatio": 0.6
},
{
"id": 1233,
"name": "golden_carrot",
"stackSize": 64,
"displayName": "Golden Carrot",
"foodPoints": 6.0,
"saturation": 14.400001,
"effectiveQuality": 20.400002,
"saturationRatio": 2.4
},
{
"id": 1242,
"name": "pumpkin_pie",
"stackSize": 64,
"displayName": "Pumpkin Pie",
"foodPoints": 8.0,
"saturation": 4.8,
"effectiveQuality": 12.8,
"saturationRatio": 0.6
},
{
"id": 1250,
"name": "rabbit",
"stackSize": 64,
"displayName": "Raw Rabbit",
"foodPoints": 3.0,
"saturation": 1.8000001,
"effectiveQuality": 4.8,
"saturationRatio": 0.6
},
{
"id": 1251,
"name": "cooked_rabbit",
"stackSize": 64,
"displayName": "Cooked Rabbit",
"foodPoints": 5.0,
"saturation": 6.0,
"effectiveQuality": 11.0,
"saturationRatio": 1.2
},
{
"id": 1252,
"name": "rabbit_stew",
"stackSize": 1,
"displayName": "Rabbit Stew",
"foodPoints": 10.0,
"saturation": 12.0,
"effectiveQuality": 22.0,
"saturationRatio": 1.2
},
{
"id": 1265,
"name": "mutton",
"stackSize": 64,
"displayName": "Raw Mutton",
"foodPoints": 2.0,
"saturation": 1.2,
"effectiveQuality": 3.2,
"saturationRatio": 0.6
},
{
"id": 1266,
"name": "cooked_mutton",
"stackSize": 64,
"displayName": "Cooked Mutton",
"foodPoints": 6.0,
"saturation": 9.6,
"effectiveQuality": 15.6,
"saturationRatio": 1.6
},
{
"id": 1284,
"name": "chorus_fruit",
"stackSize": 64,
"displayName": "Chorus Fruit",
"foodPoints": 4.0,
"saturation": 2.4,
"effectiveQuality": 6.4,
"saturationRatio": 0.6
},
{
"id": 1288,
"name": "beetroot",
"stackSize": 64,
"displayName": "Beetroot",
"foodPoints": 1.0,
"saturation": 1.2,
"effectiveQuality": 2.2,
"saturationRatio": 1.2
},
{
"id": 1290,
"name": "beetroot_soup",
"stackSize": 1,
"displayName": "Beetroot Soup",
"foodPoints": 6.0,
"saturation": 7.2000003,
"effectiveQuality": 13.200001,
"saturationRatio": 1.2
},
{
"id": 1341,
"name": "suspicious_stew",
"stackSize": 1,
"displayName": "Suspicious Stew",
"foodPoints": 6.0,
"saturation": 7.2000003,
"effectiveQuality": 13.200001,
"saturationRatio": 1.2
},
{
"id": 1374,
"name": "sweet_berries",
"stackSize": 64,
"displayName": "Sweet Berries",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1375,
"name": "glow_berries",
"stackSize": 64,
"displayName": "Glow Berries",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1382,
"name": "honey_bottle",
"stackSize": 16,
"displayName": "Honey Bottle",
"foodPoints": 6.0,
"saturation": 1.2,
"effectiveQuality": 7.2,
"saturationRatio": 0.2
}
]
@@ -0,0 +1,110 @@
[
{
"id": 0,
"name": "harp"
},
{
"id": 1,
"name": "basedrum"
},
{
"id": 2,
"name": "snare"
},
{
"id": 3,
"name": "hat"
},
{
"id": 4,
"name": "bass"
},
{
"id": 5,
"name": "flute"
},
{
"id": 6,
"name": "bell"
},
{
"id": 7,
"name": "guitar"
},
{
"id": 8,
"name": "chime"
},
{
"id": 9,
"name": "xylophone"
},
{
"id": 10,
"name": "iron_xylophone"
},
{
"id": 11,
"name": "cow_bell"
},
{
"id": 12,
"name": "didgeridoo"
},
{
"id": 13,
"name": "bit"
},
{
"id": 14,
"name": "banjo"
},
{
"id": 15,
"name": "pling"
},
{
"id": 16,
"name": "trumpet"
},
{
"id": 17,
"name": "trumpet_exposed"
},
{
"id": 18,
"name": "trumpet_oxidized"
},
{
"id": 19,
"name": "trumpet_weathered"
},
{
"id": 20,
"name": "zombie"
},
{
"id": 21,
"name": "skeleton"
},
{
"id": 22,
"name": "creeper"
},
{
"id": 23,
"name": "dragon"
},
{
"id": 24,
"name": "wither_skeleton"
},
{
"id": 25,
"name": "piglin"
},
{
"id": 26,
"name": "custom_head"
}
]
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,233 @@
{
"default": {},
"leaves": {
"1106": 1.0,
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5
},
"coweb": {
"1106": 15.0,
"912": 15.0,
"917": 15.0,
"922": 15.0,
"927": 15.0,
"932": 15.0,
"937": 15.0,
"942": 15.0
},
"plant": {
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5
},
"gourd": {
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5
},
"vine_or_glow_lichen": {
"1106": 2.0
},
"wool": {
"1106": 1.0
},
"sword_instantly_mines": {
"912": 2.0,
"917": 1.0,
"922": 4.0,
"927": 12.0,
"932": 6.0,
"937": 8.0,
"942": 9.0
},
"sword_efficient": {
"912": 2.0,
"917": 1.0,
"922": 4.0,
"927": 12.0,
"932": 6.0,
"937": 8.0,
"942": 9.0
},
"incorrect_for_wooden_tool": {
"913": 2.0,
"914": 2.0,
"915": 2.0,
"916": 2.0
},
"mineable/shovel": {
"913": 2.0,
"918": 1.0,
"923": 4.0,
"928": 12.0,
"933": 6.0,
"938": 8.0,
"943": 9.0
},
"mineable/pickaxe": {
"914": 2.0,
"919": 1.0,
"924": 4.0,
"929": 12.0,
"934": 6.0,
"939": 8.0,
"944": 9.0
},
"mineable/axe": {
"915": 2.0,
"920": 1.0,
"925": 4.0,
"930": 12.0,
"935": 6.0,
"940": 8.0,
"945": 9.0
},
"mineable/hoe": {
"916": 2.0,
"921": 1.0,
"926": 4.0,
"931": 12.0,
"936": 6.0,
"941": 8.0,
"946": 9.0
},
"incorrect_for_copper_tool": {
"918": 1.0,
"919": 1.0,
"920": 1.0,
"921": 1.0
},
"incorrect_for_stone_tool": {
"923": 4.0,
"924": 4.0,
"925": 4.0,
"926": 4.0
},
"incorrect_for_gold_tool": {
"928": 12.0,
"929": 12.0,
"930": 12.0,
"931": 12.0
},
"incorrect_for_iron_tool": {
"933": 6.0,
"934": 6.0,
"935": 6.0,
"936": 6.0
},
"incorrect_for_diamond_tool": {
"938": 8.0,
"939": 8.0,
"940": 8.0,
"941": 8.0
},
"incorrect_for_netherite_tool": {
"943": 9.0,
"944": 9.0,
"945": 9.0,
"946": 9.0
},
"plant;mineable/axe": {
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5,
"915": 2.0,
"920": 1.0,
"925": 4.0,
"930": 12.0,
"935": 6.0,
"940": 8.0,
"945": 9.0
},
"gourd;mineable/axe": {
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5,
"915": 2.0,
"920": 1.0,
"925": 4.0,
"930": 12.0,
"935": 6.0,
"940": 8.0,
"945": 9.0
},
"leaves;mineable/hoe": {
"1106": 1.0,
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5,
"916": 2.0,
"921": 1.0,
"926": 4.0,
"931": 12.0,
"936": 6.0,
"941": 8.0,
"946": 9.0
},
"leaves;mineable/axe;mineable/hoe": {
"1106": 1.0,
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5,
"915": 2.0,
"920": 1.0,
"925": 4.0,
"930": 12.0,
"935": 6.0,
"940": 8.0,
"945": 9.0,
"916": 2.0,
"921": 1.0,
"926": 4.0,
"931": 12.0,
"936": 6.0,
"941": 8.0,
"946": 9.0
},
"vine_or_glow_lichen;plant;mineable/axe": {
"1106": 2.0,
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5,
"915": 2.0,
"920": 1.0,
"925": 4.0,
"930": 12.0,
"935": 6.0,
"940": 8.0,
"945": 9.0
}
}
@@ -0,0 +1,470 @@
[
{
"id": 0,
"name": "angry_villager"
},
{
"id": 1,
"name": "block"
},
{
"id": 2,
"name": "block_marker"
},
{
"id": 3,
"name": "bubble"
},
{
"id": 4,
"name": "cloud"
},
{
"id": 5,
"name": "copper_fire_flame"
},
{
"id": 6,
"name": "crit"
},
{
"id": 7,
"name": "damage_indicator"
},
{
"id": 8,
"name": "dragon_breath"
},
{
"id": 9,
"name": "dripping_lava"
},
{
"id": 10,
"name": "falling_lava"
},
{
"id": 11,
"name": "landing_lava"
},
{
"id": 12,
"name": "dripping_water"
},
{
"id": 13,
"name": "falling_water"
},
{
"id": 14,
"name": "dust"
},
{
"id": 15,
"name": "dust_color_transition"
},
{
"id": 16,
"name": "effect"
},
{
"id": 17,
"name": "elder_guardian"
},
{
"id": 18,
"name": "enchanted_hit"
},
{
"id": 19,
"name": "enchant"
},
{
"id": 20,
"name": "end_rod"
},
{
"id": 21,
"name": "entity_effect"
},
{
"id": 22,
"name": "explosion_emitter"
},
{
"id": 23,
"name": "explosion"
},
{
"id": 24,
"name": "gust"
},
{
"id": 25,
"name": "small_gust"
},
{
"id": 26,
"name": "gust_emitter_large"
},
{
"id": 27,
"name": "gust_emitter_small"
},
{
"id": 28,
"name": "sonic_boom"
},
{
"id": 29,
"name": "falling_dust"
},
{
"id": 30,
"name": "firework"
},
{
"id": 31,
"name": "fishing"
},
{
"id": 32,
"name": "flame"
},
{
"id": 33,
"name": "infested"
},
{
"id": 34,
"name": "cherry_leaves"
},
{
"id": 35,
"name": "pale_oak_leaves"
},
{
"id": 36,
"name": "tinted_leaves"
},
{
"id": 37,
"name": "sculk_soul"
},
{
"id": 38,
"name": "sculk_charge"
},
{
"id": 39,
"name": "sculk_charge_pop"
},
{
"id": 40,
"name": "soul_fire_flame"
},
{
"id": 41,
"name": "soul"
},
{
"id": 42,
"name": "flash"
},
{
"id": 43,
"name": "happy_villager"
},
{
"id": 44,
"name": "composter"
},
{
"id": 45,
"name": "heart"
},
{
"id": 46,
"name": "instant_effect"
},
{
"id": 47,
"name": "item"
},
{
"id": 48,
"name": "vibration"
},
{
"id": 49,
"name": "trail"
},
{
"id": 50,
"name": "pause_mob_growth"
},
{
"id": 51,
"name": "reset_mob_growth"
},
{
"id": 52,
"name": "item_slime"
},
{
"id": 53,
"name": "item_cobweb"
},
{
"id": 54,
"name": "item_snowball"
},
{
"id": 55,
"name": "large_smoke"
},
{
"id": 56,
"name": "lava"
},
{
"id": 57,
"name": "mycelium"
},
{
"id": 58,
"name": "note"
},
{
"id": 59,
"name": "poof"
},
{
"id": 60,
"name": "portal"
},
{
"id": 61,
"name": "rain"
},
{
"id": 62,
"name": "smoke"
},
{
"id": 63,
"name": "white_smoke"
},
{
"id": 64,
"name": "sneeze"
},
{
"id": 65,
"name": "spit"
},
{
"id": 66,
"name": "squid_ink"
},
{
"id": 67,
"name": "sweep_attack"
},
{
"id": 68,
"name": "totem_of_undying"
},
{
"id": 69,
"name": "underwater"
},
{
"id": 70,
"name": "splash"
},
{
"id": 71,
"name": "witch"
},
{
"id": 72,
"name": "bubble_pop"
},
{
"id": 73,
"name": "current_down"
},
{
"id": 74,
"name": "bubble_column_up"
},
{
"id": 75,
"name": "nautilus"
},
{
"id": 76,
"name": "dolphin"
},
{
"id": 77,
"name": "campfire_cosy_smoke"
},
{
"id": 78,
"name": "campfire_signal_smoke"
},
{
"id": 79,
"name": "dripping_honey"
},
{
"id": 80,
"name": "falling_honey"
},
{
"id": 81,
"name": "landing_honey"
},
{
"id": 82,
"name": "falling_nectar"
},
{
"id": 83,
"name": "falling_spore_blossom"
},
{
"id": 84,
"name": "ash"
},
{
"id": 85,
"name": "crimson_spore"
},
{
"id": 86,
"name": "warped_spore"
},
{
"id": 87,
"name": "spore_blossom_air"
},
{
"id": 88,
"name": "dripping_obsidian_tear"
},
{
"id": 89,
"name": "falling_obsidian_tear"
},
{
"id": 90,
"name": "landing_obsidian_tear"
},
{
"id": 91,
"name": "reverse_portal"
},
{
"id": 92,
"name": "white_ash"
},
{
"id": 93,
"name": "small_flame"
},
{
"id": 94,
"name": "snowflake"
},
{
"id": 95,
"name": "dripping_dripstone_lava"
},
{
"id": 96,
"name": "falling_dripstone_lava"
},
{
"id": 97,
"name": "dripping_dripstone_water"
},
{
"id": 98,
"name": "falling_dripstone_water"
},
{
"id": 99,
"name": "glow_squid_ink"
},
{
"id": 100,
"name": "glow"
},
{
"id": 101,
"name": "wax_on"
},
{
"id": 102,
"name": "wax_off"
},
{
"id": 103,
"name": "electric_spark"
},
{
"id": 104,
"name": "scrape"
},
{
"id": 105,
"name": "shriek"
},
{
"id": 106,
"name": "egg_crack"
},
{
"id": 107,
"name": "dust_plume"
},
{
"id": 108,
"name": "trial_spawner_detection"
},
{
"id": 109,
"name": "trial_spawner_detection_ominous"
},
{
"id": 110,
"name": "vault_connection"
},
{
"id": 111,
"name": "dust_pillar"
},
{
"id": 112,
"name": "ominous_spawning"
},
{
"id": 113,
"name": "raid_omen"
},
{
"id": 114,
"name": "trial_omen"
},
{
"id": 115,
"name": "block_crumble"
},
{
"id": 116,
"name": "firefly"
}
]
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+465
View File
@@ -0,0 +1,465 @@
{
"grass": {
"data": [
{
"keys": [
"badlands",
"eroded_badlands",
"wooded_badlands"
],
"color": -7306931
},
{
"keys": [
"bamboo_jungle",
"basalt_deltas",
"beach",
"birch_forest",
"cold_ocean",
"crimson_forest",
"deep_cold_ocean",
"deep_dark",
"deep_frozen_ocean",
"deep_lukewarm_ocean",
"deep_ocean",
"desert",
"dripstone_caves",
"end_barrens",
"end_highlands",
"end_midlands",
"flower_forest",
"forest",
"frozen_ocean",
"frozen_peaks",
"frozen_river",
"grove",
"ice_spikes",
"jagged_peaks",
"jungle",
"lukewarm_ocean",
"lush_caves",
"meadow",
"mushroom_fields",
"nether_wastes",
"ocean",
"old_growth_birch_forest",
"old_growth_pine_taiga",
"old_growth_spruce_taiga",
"plains",
"river",
"savanna",
"savanna_plateau",
"small_end_islands",
"snowy_beach",
"snowy_plains",
"snowy_slopes",
"snowy_taiga",
"soul_sand_valley",
"sparse_jungle",
"stony_peaks",
"stony_shore",
"sunflower_plains",
"taiga",
"the_end",
"the_void",
"warm_ocean",
"warped_forest",
"windswept_forest",
"windswept_gravelly_hills",
"windswept_hills",
"windswept_savanna"
],
"color": 0
},
{
"keys": [
"cherry_grove"
],
"color": -4793503
},
{
"keys": [
"dark_forest"
],
"color": -15459835
},
{
"keys": [
"mangrove_swamp",
"swamp"
],
"color": -9801671
},
{
"keys": [
"pale_garden"
],
"color": -8945038
}
]
},
"foliage": {
"data": [
{
"keys": [
"badlands",
"eroded_badlands",
"wooded_badlands"
],
"color": -6389427
},
{
"keys": [
"bamboo_jungle",
"basalt_deltas",
"beach",
"birch_forest",
"cold_ocean",
"crimson_forest",
"dark_forest",
"deep_cold_ocean",
"deep_dark",
"deep_frozen_ocean",
"deep_lukewarm_ocean",
"deep_ocean",
"desert",
"dripstone_caves",
"end_barrens",
"end_highlands",
"end_midlands",
"flower_forest",
"forest",
"frozen_ocean",
"frozen_peaks",
"frozen_river",
"grove",
"ice_spikes",
"jagged_peaks",
"jungle",
"lukewarm_ocean",
"lush_caves",
"meadow",
"mushroom_fields",
"nether_wastes",
"ocean",
"old_growth_birch_forest",
"old_growth_pine_taiga",
"old_growth_spruce_taiga",
"plains",
"river",
"savanna",
"savanna_plateau",
"small_end_islands",
"snowy_beach",
"snowy_plains",
"snowy_slopes",
"snowy_taiga",
"soul_sand_valley",
"sparse_jungle",
"stony_peaks",
"stony_shore",
"sunflower_plains",
"taiga",
"the_end",
"the_void",
"warm_ocean",
"warped_forest",
"windswept_forest",
"windswept_gravelly_hills",
"windswept_hills",
"windswept_savanna"
],
"color": 0
},
{
"keys": [
"cherry_grove"
],
"color": -4793503
},
{
"keys": [
"mangrove_swamp"
],
"color": -7491289
},
{
"keys": [
"pale_garden"
],
"color": -7893642
},
{
"keys": [
"swamp"
],
"color": -9801671
}
]
},
"water": {
"data": [
{
"keys": [
"badlands",
"bamboo_jungle",
"basalt_deltas",
"beach",
"birch_forest",
"crimson_forest",
"dark_forest",
"deep_dark",
"deep_ocean",
"desert",
"dripstone_caves",
"end_barrens",
"end_highlands",
"end_midlands",
"eroded_badlands",
"flower_forest",
"forest",
"frozen_peaks",
"grove",
"ice_spikes",
"jagged_peaks",
"jungle",
"lush_caves",
"mushroom_fields",
"nether_wastes",
"ocean",
"old_growth_birch_forest",
"old_growth_pine_taiga",
"old_growth_spruce_taiga",
"plains",
"river",
"savanna",
"savanna_plateau",
"small_end_islands",
"snowy_plains",
"snowy_slopes",
"soul_sand_valley",
"sparse_jungle",
"stony_peaks",
"stony_shore",
"sunflower_plains",
"taiga",
"the_end",
"the_void",
"warped_forest",
"windswept_forest",
"windswept_gravelly_hills",
"windswept_hills",
"windswept_savanna",
"wooded_badlands"
],
"color": -12618012
},
{
"keys": [
"cherry_grove"
],
"color": -10635281
},
{
"keys": [
"cold_ocean",
"deep_cold_ocean",
"snowy_beach",
"snowy_taiga"
],
"color": -12757034
},
{
"keys": [
"deep_frozen_ocean",
"frozen_ocean",
"frozen_river"
],
"color": -13027127
},
{
"keys": [
"deep_lukewarm_ocean",
"lukewarm_ocean"
],
"color": -12210702
},
{
"keys": [
"mangrove_swamp"
],
"color": -12944790
},
{
"keys": [
"meadow"
],
"color": -15839537
},
{
"keys": [
"pale_garden"
],
"color": -9008995
},
{
"keys": [
"swamp"
],
"color": -10388636
},
{
"keys": [
"warm_ocean"
],
"color": -12331538
}
]
},
"redstone": {
"data": [
{
"keys": [
0
],
"color": 4980736
},
{
"keys": [
1
],
"color": 7340032
},
{
"keys": [
2
],
"color": 7995392
},
{
"keys": [
3
],
"color": 8650752
},
{
"keys": [
4
],
"color": 9306112
},
{
"keys": [
5
],
"color": 10027008
},
{
"keys": [
6
],
"color": 10682368
},
{
"keys": [
7
],
"color": 11337728
},
{
"keys": [
8
],
"color": 11993088
},
{
"keys": [
9
],
"color": 12648448
},
{
"keys": [
10
],
"color": 13369344
},
{
"keys": [
11
],
"color": 14024704
},
{
"keys": [
12
],
"color": 14680064
},
{
"keys": [
13
],
"color": 15336960
},
{
"keys": [
14
],
"color": 15997696
},
{
"keys": [
15
],
"color": 16724480
}
]
},
"constant": {
"data": [
{
"keys": [
"birch_leaves"
],
"color": -8345771
},
{
"keys": [
"spruce_leaves"
],
"color": -10380959
},
{
"keys": [
"lily_pad"
],
"color": -14647248
},
{
"keys": [
"attached_melon_stem"
],
"color": -2046180
},
{
"keys": [
"attached_pumpkin_stem"
],
"color": -2046180
},
{
"keys": [
"melon_stem"
],
"color": -16711936
},
{
"keys": [
"pumpkin_stem"
],
"color": -16711936
}
]
}
}
@@ -0,0 +1,6 @@
{
"version": 775,
"minecraftVersion": "26.1",
"majorVersion": "26.1",
"releaseType": "release"
}
@@ -0,0 +1,247 @@
[
{
"name": "armor",
"resource": "minecraft:armor",
"min": 0.0,
"max": 30.0,
"default": 0.0
},
{
"name": "armorToughness",
"resource": "minecraft:armor_toughness",
"min": 0.0,
"max": 20.0,
"default": 0.0
},
{
"name": "attackDamage",
"resource": "minecraft:attack_damage",
"min": 0.0,
"max": 2048.0,
"default": 2.0
},
{
"name": "attackKnockback",
"resource": "minecraft:attack_knockback",
"min": 0.0,
"max": 5.0,
"default": 0.0
},
{
"name": "attackSpeed",
"resource": "minecraft:attack_speed",
"min": 0.0,
"max": 1024.0,
"default": 4.0
},
{
"name": "blockBreakSpeed",
"resource": "minecraft:block_break_speed",
"min": 0.0,
"max": 1024.0,
"default": 1.0
},
{
"name": "blockInteractionRange",
"resource": "minecraft:block_interaction_range",
"min": 0.0,
"max": 64.0,
"default": 4.5
},
{
"name": "burningTime",
"resource": "minecraft:burning_time",
"min": 0.0,
"max": 1024.0,
"default": 1.0
},
{
"name": "cameraDistance",
"resource": "minecraft:camera_distance",
"min": 0.0,
"max": 32.0,
"default": 4.0
},
{
"name": "explosionKnockbackResistance",
"resource": "minecraft:explosion_knockback_resistance",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "entityInteractionRange",
"resource": "minecraft:entity_interaction_range",
"min": 0.0,
"max": 64.0,
"default": 3.0
},
{
"name": "fallDamageMultiplier",
"resource": "minecraft:fall_damage_multiplier",
"min": 0.0,
"max": 100.0,
"default": 1.0
},
{
"name": "flyingSpeed",
"resource": "minecraft:flying_speed",
"min": 0.0,
"max": 1024.0,
"default": 0.4
},
{
"name": "followRange",
"resource": "minecraft:follow_range",
"min": 0.0,
"max": 2048.0,
"default": 32.0
},
{
"name": "gravity",
"resource": "minecraft:gravity",
"min": -1.0,
"max": 1.0,
"default": 0.08
},
{
"name": "jumpStrength",
"resource": "minecraft:jump_strength",
"min": 0.0,
"max": 32.0,
"default": 0.41999998688697815
},
{
"name": "knockbackResistance",
"resource": "minecraft:knockback_resistance",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "luck",
"resource": "minecraft:luck",
"min": -1024.0,
"max": 1024.0,
"default": 0.0
},
{
"name": "maxAbsorption",
"resource": "minecraft:max_absorption",
"min": 0.0,
"max": 2048.0,
"default": 0.0
},
{
"name": "maxHealth",
"resource": "minecraft:max_health",
"min": 1.0,
"max": 1024.0,
"default": 20.0
},
{
"name": "miningEfficiency",
"resource": "minecraft:mining_efficiency",
"min": 0.0,
"max": 1024.0,
"default": 0.0
},
{
"name": "movementEfficiency",
"resource": "minecraft:movement_efficiency",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "movementSpeed",
"resource": "minecraft:movement_speed",
"min": 0.0,
"max": 1024.0,
"default": 0.7
},
{
"name": "oxygenBonus",
"resource": "minecraft:oxygen_bonus",
"min": 0.0,
"max": 1024.0,
"default": 0.0
},
{
"name": "safeFallDistance",
"resource": "minecraft:safe_fall_distance",
"min": -1024.0,
"max": 1024.0,
"default": 3.0
},
{
"name": "scale",
"resource": "minecraft:scale",
"min": 0.0625,
"max": 16.0,
"default": 1.0
},
{
"name": "sneakingSpeed",
"resource": "minecraft:sneaking_speed",
"min": 0.0,
"max": 1.0,
"default": 0.3
},
{
"name": "spawnReinforcements",
"resource": "minecraft:spawn_reinforcements",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "stepHeight",
"resource": "minecraft:step_height",
"min": 0.0,
"max": 10.0,
"default": 0.6
},
{
"name": "submergedMiningSpeed",
"resource": "minecraft:submerged_mining_speed",
"min": 0.0,
"max": 20.0,
"default": 0.2
},
{
"name": "sweepingDamageRatio",
"resource": "minecraft:sweeping_damage_ratio",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "temptRange",
"resource": "minecraft:tempt_range",
"min": 0.0,
"max": 2048.0,
"default": 10.0
},
{
"name": "waterMovementEfficiency",
"resource": "minecraft:water_movement_efficiency",
"min": 0.0,
"max": 1.0,
"default": 0.0
},
{
"name": "waypointTransmitRange",
"resource": "minecraft:waypoint_transmit_range",
"min": 0.0,
"max": 6.0E7,
"default": 0.0
},
{
"name": "waypointReceiveRange",
"resource": "minecraft:waypoint_receive_range",
"min": 0.0,
"max": 6.0E7,
"default": 0.0
}
]
+652
View File
@@ -0,0 +1,652 @@
[
{
"id": 0,
"name": "badlands",
"category": "mesa",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Badlands",
"color": 7254527
},
{
"id": 1,
"name": "bamboo_jungle",
"category": "jungle",
"temperature": 0.95,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Bamboo Jungle",
"color": 7842047
},
{
"id": 2,
"name": "basalt_deltas",
"category": "nether",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "nether",
"displayName": "Basalt Deltas",
"color": 0
},
{
"id": 3,
"name": "beach",
"category": "beach",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Beach",
"color": 7907327
},
{
"id": 4,
"name": "birch_forest",
"category": "forest",
"temperature": 0.6,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Birch Forest",
"color": 8037887
},
{
"id": 5,
"name": "cherry_grove",
"category": "forest",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Cherry Grove",
"color": 8103167
},
{
"id": 6,
"name": "cold_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Cold Ocean",
"color": 8103167
},
{
"id": 7,
"name": "crimson_forest",
"category": "nether",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "nether",
"displayName": "Crimson Forest",
"color": 0
},
{
"id": 8,
"name": "dark_forest",
"category": "forest",
"temperature": 0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Dark Forest",
"color": 7972607
},
{
"id": 9,
"name": "deep_cold_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Deep Cold Ocean",
"color": 8103167
},
{
"id": 10,
"name": "deep_dark",
"category": "underground",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Deep Dark",
"color": 7907327
},
{
"id": 11,
"name": "deep_frozen_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Deep Frozen Ocean",
"color": 8103167
},
{
"id": 12,
"name": "deep_lukewarm_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Deep Lukewarm Ocean",
"color": 8103167
},
{
"id": 13,
"name": "deep_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Deep Ocean",
"color": 8103167
},
{
"id": 14,
"name": "desert",
"category": "desert",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Desert",
"color": 7254527
},
{
"id": 15,
"name": "dripstone_caves",
"category": "underground",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Dripstone Caves",
"color": 7907327
},
{
"id": 16,
"name": "end_barrens",
"category": "the_end",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "end",
"displayName": "End Barrens",
"color": 0
},
{
"id": 17,
"name": "end_highlands",
"category": "the_end",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "end",
"displayName": "End Highlands",
"color": 0
},
{
"id": 18,
"name": "end_midlands",
"category": "the_end",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "end",
"displayName": "End Midlands",
"color": 0
},
{
"id": 19,
"name": "eroded_badlands",
"category": "mesa",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Eroded Badlands",
"color": 7254527
},
{
"id": 20,
"name": "flower_forest",
"category": "forest",
"temperature": 0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Flower Forest",
"color": 7972607
},
{
"id": 21,
"name": "forest",
"category": "forest",
"temperature": 0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Forest",
"color": 7972607
},
{
"id": 22,
"name": "frozen_ocean",
"category": "ocean",
"temperature": 0.0,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Frozen Ocean",
"color": 8364543
},
{
"id": 23,
"name": "frozen_peaks",
"category": "ice",
"temperature": -0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Frozen Peaks",
"color": 8756735
},
{
"id": 24,
"name": "frozen_river",
"category": "ice",
"temperature": 0.0,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Frozen River",
"color": 8364543
},
{
"id": 25,
"name": "grove",
"category": "forest",
"temperature": -0.2,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Grove",
"color": 8495359
},
{
"id": 26,
"name": "ice_spikes",
"category": "ice",
"temperature": 0.0,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Ice Spikes",
"color": 8364543
},
{
"id": 27,
"name": "jagged_peaks",
"category": "mountain",
"temperature": -0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Jagged Peaks",
"color": 8756735
},
{
"id": 28,
"name": "jungle",
"category": "jungle",
"temperature": 0.95,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Jungle",
"color": 7842047
},
{
"id": 29,
"name": "lukewarm_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Lukewarm Ocean",
"color": 8103167
},
{
"id": 30,
"name": "lush_caves",
"category": "underground",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Lush Caves",
"color": 8103167
},
{
"id": 31,
"name": "mangrove_swamp",
"category": "forest",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Mangrove Swamp",
"color": 7907327
},
{
"id": 32,
"name": "meadow",
"category": "mountain",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Meadow",
"color": 8103167
},
{
"id": 33,
"name": "mushroom_fields",
"category": "mushroom",
"temperature": 0.9,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Mushroom Fields",
"color": 7842047
},
{
"id": 34,
"name": "nether_wastes",
"category": "nether",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "nether",
"displayName": "Nether Wastes",
"color": 0
},
{
"id": 35,
"name": "ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Ocean",
"color": 8103167
},
{
"id": 36,
"name": "old_growth_birch_forest",
"category": "forest",
"temperature": 0.6,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Old Growth Birch Forest",
"color": 8037887
},
{
"id": 37,
"name": "old_growth_pine_taiga",
"category": "taiga",
"temperature": 0.3,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Old Growth Pine Taiga",
"color": 8168447
},
{
"id": 38,
"name": "old_growth_spruce_taiga",
"category": "taiga",
"temperature": 0.25,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Old Growth Spruce Taiga",
"color": 8233983
},
{
"id": 39,
"name": "pale_garden",
"category": "none",
"temperature": 0.7,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Pale Garden",
"color": 12171705
},
{
"id": 40,
"name": "plains",
"category": "plains",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Plains",
"color": 7907327
},
{
"id": 41,
"name": "river",
"category": "river",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "River",
"color": 8103167
},
{
"id": 42,
"name": "savanna",
"category": "savanna",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Savanna",
"color": 7254527
},
{
"id": 43,
"name": "savanna_plateau",
"category": "savanna",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Savanna Plateau",
"color": 7254527
},
{
"id": 44,
"name": "small_end_islands",
"category": "the_end",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "end",
"displayName": "Small End Islands",
"color": 0
},
{
"id": 45,
"name": "snowy_beach",
"category": "beach",
"temperature": 0.05,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Snowy Beach",
"color": 8364543
},
{
"id": 46,
"name": "snowy_plains",
"category": "plains",
"temperature": 0.0,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Snowy Plains",
"color": 8364543
},
{
"id": 47,
"name": "snowy_slopes",
"category": "mountain",
"temperature": -0.3,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Snowy Slopes",
"color": 8560639
},
{
"id": 48,
"name": "snowy_taiga",
"category": "taiga",
"temperature": -0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Snowy Taiga",
"color": 8625919
},
{
"id": 49,
"name": "soul_sand_valley",
"category": "nether",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "nether",
"displayName": "Soul Sand Valley",
"color": 0
},
{
"id": 50,
"name": "sparse_jungle",
"category": "jungle",
"temperature": 0.95,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Sparse Jungle",
"color": 7842047
},
{
"id": 51,
"name": "stony_peaks",
"category": "mountain",
"temperature": 1.0,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Stony Peaks",
"color": 7776511
},
{
"id": 52,
"name": "stony_shore",
"category": "beach",
"temperature": 0.2,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Stony Shore",
"color": 8233727
},
{
"id": 53,
"name": "sunflower_plains",
"category": "plains",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Sunflower Plains",
"color": 7907327
},
{
"id": 54,
"name": "swamp",
"category": "swamp",
"temperature": 0.8,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Swamp",
"color": 7907327
},
{
"id": 55,
"name": "taiga",
"category": "taiga",
"temperature": 0.25,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Taiga",
"color": 8233983
},
{
"id": 56,
"name": "the_end",
"category": "the_end",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "end",
"displayName": "The End",
"color": 0
},
{
"id": 57,
"name": "the_void",
"category": "none",
"temperature": 0.5,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "The Void",
"color": 8103167
},
{
"id": 58,
"name": "warm_ocean",
"category": "ocean",
"temperature": 0.5,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Warm Ocean",
"color": 8103167
},
{
"id": 59,
"name": "warped_forest",
"category": "nether",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "nether",
"displayName": "Warped Forest",
"color": 0
},
{
"id": 60,
"name": "windswept_forest",
"category": "forest",
"temperature": 0.2,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Windswept Forest",
"color": 8233727
},
{
"id": 61,
"name": "windswept_gravelly_hills",
"category": "extreme_hills",
"temperature": 0.2,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Windswept Gravelly Hills",
"color": 8233727
},
{
"id": 62,
"name": "windswept_hills",
"category": "extreme_hills",
"temperature": 0.2,
"has_precipitation": true,
"dimension": "overworld",
"displayName": "Windswept Hills",
"color": 8233727
},
{
"id": 63,
"name": "windswept_savanna",
"category": "savanna",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Windswept Savanna",
"color": 7254527
},
{
"id": 64,
"name": "wooded_badlands",
"category": "mesa",
"temperature": 2.0,
"has_precipitation": false,
"dimension": "overworld",
"displayName": "Wooded Badlands",
"color": 7254527
}
]
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+242
View File
@@ -0,0 +1,242 @@
[
{
"id": 0,
"name": "Speed",
"displayName": "Speed",
"type": "good"
},
{
"id": 1,
"name": "Slowness",
"displayName": "Slowness",
"type": "bad"
},
{
"id": 2,
"name": "Haste",
"displayName": "Haste",
"type": "good"
},
{
"id": 3,
"name": "MiningFatigue",
"displayName": "Mining Fatigue",
"type": "bad"
},
{
"id": 4,
"name": "Strength",
"displayName": "Strength",
"type": "good"
},
{
"id": 5,
"name": "InstantHealth",
"displayName": "Instant Health",
"type": "good"
},
{
"id": 6,
"name": "InstantDamage",
"displayName": "Instant Damage",
"type": "bad"
},
{
"id": 7,
"name": "JumpBoost",
"displayName": "Jump Boost",
"type": "good"
},
{
"id": 8,
"name": "Nausea",
"displayName": "Nausea",
"type": "bad"
},
{
"id": 9,
"name": "Regeneration",
"displayName": "Regeneration",
"type": "good"
},
{
"id": 10,
"name": "Resistance",
"displayName": "Resistance",
"type": "good"
},
{
"id": 11,
"name": "FireResistance",
"displayName": "Fire Resistance",
"type": "good"
},
{
"id": 12,
"name": "WaterBreathing",
"displayName": "Water Breathing",
"type": "good"
},
{
"id": 13,
"name": "Invisibility",
"displayName": "Invisibility",
"type": "good"
},
{
"id": 14,
"name": "Blindness",
"displayName": "Blindness",
"type": "bad"
},
{
"id": 15,
"name": "NightVision",
"displayName": "Night Vision",
"type": "good"
},
{
"id": 16,
"name": "Hunger",
"displayName": "Hunger",
"type": "bad"
},
{
"id": 17,
"name": "Weakness",
"displayName": "Weakness",
"type": "bad"
},
{
"id": 18,
"name": "Poison",
"displayName": "Poison",
"type": "bad"
},
{
"id": 19,
"name": "Wither",
"displayName": "Wither",
"type": "bad"
},
{
"id": 20,
"name": "HealthBoost",
"displayName": "Health Boost",
"type": "good"
},
{
"id": 21,
"name": "Absorption",
"displayName": "Absorption",
"type": "good"
},
{
"id": 22,
"name": "Saturation",
"displayName": "Saturation",
"type": "good"
},
{
"id": 23,
"name": "Glowing",
"displayName": "Glowing",
"type": "bad"
},
{
"id": 24,
"name": "Levitation",
"displayName": "Levitation",
"type": "bad"
},
{
"id": 25,
"name": "Luck",
"displayName": "Luck",
"type": "good"
},
{
"id": 26,
"name": "BadLuck",
"displayName": "Bad Luck",
"type": "bad"
},
{
"id": 27,
"name": "SlowFalling",
"displayName": "Slow Falling",
"type": "good"
},
{
"id": 28,
"name": "ConduitPower",
"displayName": "Conduit Power",
"type": "good"
},
{
"id": 29,
"name": "DolphinsGrace",
"displayName": "Dolphin's Grace",
"type": "good"
},
{
"id": 30,
"name": "BadOmen",
"displayName": "Bad Omen",
"type": "bad"
},
{
"id": 31,
"name": "HeroOfTheVillage",
"displayName": "Hero of the Village",
"type": "good"
},
{
"id": 32,
"name": "Darkness",
"displayName": "Darkness",
"type": "bad"
},
{
"id": 33,
"name": "TrialOmen",
"displayName": "Trial Omen",
"type": "bad"
},
{
"id": 34,
"name": "RaidOmen",
"displayName": "Raid Omen",
"type": "bad"
},
{
"id": 35,
"name": "WindCharged",
"displayName": "Wind Charged",
"type": "bad"
},
{
"id": 36,
"name": "Weaving",
"displayName": "Weaving",
"type": "bad"
},
{
"id": 37,
"name": "Oozing",
"displayName": "Oozing",
"type": "bad"
},
{
"id": 38,
"name": "Infested",
"displayName": "Infested",
"type": "bad"
},
{
"id": 39,
"name": "BreathOfTheNautilus",
"displayName": "Breath of the Nautilus",
"type": "good"
}
]
@@ -0,0 +1,980 @@
[
{
"id": 0,
"name": "aqua_affinity",
"displayName": "Aqua Affinity",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "head_armor",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 1,
"name": "bane_of_arthropods",
"displayName": "Bane of Arthropods",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"breach",
"density",
"impaling",
"sharpness",
"smite"
],
"category": "weapon",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 2,
"name": "binding_curse",
"displayName": "Curse of Binding",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": true,
"curse": true,
"exclude": [],
"category": "equippable",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 3,
"name": "blast_protection",
"displayName": "Blast Protection",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"fire_protection",
"projectile_protection",
"protection"
],
"category": "armor",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 4,
"name": "breach",
"displayName": "Breach",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"bane_of_arthropods",
"density",
"impaling",
"sharpness",
"smite"
],
"category": "mace",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 5,
"name": "channeling",
"displayName": "Channeling",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"riptide"
],
"category": "trident",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 6,
"name": "density",
"displayName": "Density",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"bane_of_arthropods",
"breach",
"impaling",
"sharpness",
"smite"
],
"category": "mace",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 7,
"name": "depth_strider",
"displayName": "Depth Strider",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"frost_walker"
],
"category": "foot_armor",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 8,
"name": "efficiency",
"displayName": "Efficiency",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "mining",
"weight": 10,
"tradeable": true,
"discoverable": true
},
{
"id": 9,
"name": "feather_falling",
"displayName": "Feather Falling",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "foot_armor",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 10,
"name": "fire_aspect",
"displayName": "Fire Aspect",
"maxLevel": 2,
"minCost": {
"a": 1,
"b": 1
},
"maxCost": {
"a": 1,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "fire_aspect",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 11,
"name": "fire_protection",
"displayName": "Fire Protection",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"blast_protection",
"projectile_protection",
"protection"
],
"category": "armor",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 12,
"name": "flame",
"displayName": "Flame",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "bow",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 13,
"name": "fortune",
"displayName": "Fortune",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"silk_touch"
],
"category": "mining_loot",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 14,
"name": "frost_walker",
"displayName": "Frost Walker",
"maxLevel": 2,
"minCost": {
"a": 1,
"b": 1
},
"maxCost": {
"a": 1,
"b": 1
},
"treasureOnly": true,
"curse": false,
"exclude": [
"depth_strider"
],
"category": "foot_armor",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 15,
"name": "impaling",
"displayName": "Impaling",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"bane_of_arthropods",
"breach",
"density",
"sharpness",
"smite"
],
"category": "trident",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 16,
"name": "infinity",
"displayName": "Infinity",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"mending"
],
"category": "bow",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 17,
"name": "knockback",
"displayName": "Knockback",
"maxLevel": 2,
"minCost": {
"a": 1,
"b": 1
},
"maxCost": {
"a": 1,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "melee_weapon",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 18,
"name": "looting",
"displayName": "Looting",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "melee_weapon",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 19,
"name": "loyalty",
"displayName": "Loyalty",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"riptide"
],
"category": "trident",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 20,
"name": "luck_of_the_sea",
"displayName": "Luck of the Sea",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "fishing",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 21,
"name": "lunge",
"displayName": "Lunge",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "lunge",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 22,
"name": "lure",
"displayName": "Lure",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "fishing",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 23,
"name": "mending",
"displayName": "Mending",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": true,
"curse": false,
"exclude": [
"infinity"
],
"category": "durability",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 24,
"name": "multishot",
"displayName": "Multishot",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"piercing"
],
"category": "crossbow",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 25,
"name": "piercing",
"displayName": "Piercing",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"multishot"
],
"category": "crossbow",
"weight": 10,
"tradeable": true,
"discoverable": true
},
{
"id": 26,
"name": "power",
"displayName": "Power",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "bow",
"weight": 10,
"tradeable": true,
"discoverable": true
},
{
"id": 27,
"name": "projectile_protection",
"displayName": "Projectile Protection",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"blast_protection",
"fire_protection",
"protection"
],
"category": "armor",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 28,
"name": "protection",
"displayName": "Protection",
"maxLevel": 4,
"minCost": {
"a": 3,
"b": 1
},
"maxCost": {
"a": 3,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"blast_protection",
"fire_protection",
"projectile_protection"
],
"category": "armor",
"weight": 10,
"tradeable": true,
"discoverable": true
},
{
"id": 29,
"name": "punch",
"displayName": "Punch",
"maxLevel": 2,
"minCost": {
"a": 1,
"b": 1
},
"maxCost": {
"a": 1,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "bow",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 30,
"name": "quick_charge",
"displayName": "Quick Charge",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "crossbow",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 31,
"name": "respiration",
"displayName": "Respiration",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "head_armor",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 32,
"name": "riptide",
"displayName": "Riptide",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"channeling",
"loyalty"
],
"category": "trident",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 33,
"name": "sharpness",
"displayName": "Sharpness",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"bane_of_arthropods",
"breach",
"density",
"impaling",
"smite"
],
"category": "sharp_weapon",
"weight": 10,
"tradeable": true,
"discoverable": true
},
{
"id": 34,
"name": "silk_touch",
"displayName": "Silk Touch",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"fortune"
],
"category": "mining_loot",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 35,
"name": "smite",
"displayName": "Smite",
"maxLevel": 5,
"minCost": {
"a": 4,
"b": 1
},
"maxCost": {
"a": 4,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [
"bane_of_arthropods",
"breach",
"density",
"impaling",
"sharpness"
],
"category": "weapon",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 36,
"name": "soul_speed",
"displayName": "Soul Speed",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": true,
"curse": false,
"exclude": [],
"category": "foot_armor",
"weight": 1,
"tradeable": false,
"discoverable": false
},
{
"id": 37,
"name": "sweeping_edge",
"displayName": "Sweeping Edge",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "sweeping",
"weight": 2,
"tradeable": true,
"discoverable": true
},
{
"id": 38,
"name": "swift_sneak",
"displayName": "Swift Sneak",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": true,
"curse": false,
"exclude": [],
"category": "leg_armor",
"weight": 1,
"tradeable": false,
"discoverable": false
},
{
"id": 39,
"name": "thorns",
"displayName": "Thorns",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "armor",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 40,
"name": "unbreaking",
"displayName": "Unbreaking",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": false,
"curse": false,
"exclude": [],
"category": "durability",
"weight": 5,
"tradeable": true,
"discoverable": true
},
{
"id": 41,
"name": "vanishing_curse",
"displayName": "Curse of Vanishing",
"maxLevel": 1,
"minCost": {
"a": 0,
"b": 1
},
"maxCost": {
"a": 0,
"b": 1
},
"treasureOnly": true,
"curse": true,
"exclude": [],
"category": "vanishing",
"weight": 1,
"tradeable": true,
"discoverable": true
},
{
"id": 42,
"name": "wind_burst",
"displayName": "Wind Burst",
"maxLevel": 3,
"minCost": {
"a": 2,
"b": 1
},
"maxCost": {
"a": 2,
"b": 1
},
"treasureOnly": true,
"curse": false,
"exclude": [],
"category": "mace",
"weight": 2,
"tradeable": false,
"discoverable": false
}
]
File diff suppressed because it is too large Load Diff
+442
View File
@@ -0,0 +1,442 @@
[
{
"id": 894,
"name": "apple",
"stackSize": 64,
"displayName": "Apple",
"foodPoints": 4.0,
"saturation": 2.4,
"effectiveQuality": 6.4,
"saturationRatio": 0.6
},
{
"id": 948,
"name": "mushroom_stew",
"stackSize": 1,
"displayName": "Mushroom Stew",
"foodPoints": 6.0,
"saturation": 7.2000003,
"effectiveQuality": 13.200001,
"saturationRatio": 1.2
},
{
"id": 954,
"name": "bread",
"stackSize": 64,
"displayName": "Bread",
"foodPoints": 5.0,
"saturation": 6.0,
"effectiveQuality": 11.0,
"saturationRatio": 1.2
},
{
"id": 984,
"name": "porkchop",
"stackSize": 64,
"displayName": "Raw Porkchop",
"foodPoints": 3.0,
"saturation": 1.8000001,
"effectiveQuality": 4.8,
"saturationRatio": 0.6
},
{
"id": 985,
"name": "cooked_porkchop",
"stackSize": 64,
"displayName": "Cooked Porkchop",
"foodPoints": 8.0,
"saturation": 12.8,
"effectiveQuality": 20.8,
"saturationRatio": 1.6
},
{
"id": 987,
"name": "golden_apple",
"stackSize": 64,
"displayName": "Golden Apple",
"foodPoints": 4.0,
"saturation": 9.6,
"effectiveQuality": 13.6,
"saturationRatio": 2.4
},
{
"id": 988,
"name": "enchanted_golden_apple",
"stackSize": 64,
"displayName": "Enchanted Golden Apple",
"foodPoints": 4.0,
"saturation": 9.6,
"effectiveQuality": 13.6,
"saturationRatio": 2.4
},
{
"id": 1020,
"name": "pufferfish_bucket",
"stackSize": 1,
"displayName": "Bucket of Pufferfish",
"foodPoints": 1.0,
"saturation": 0.2,
"effectiveQuality": 1.2,
"saturationRatio": 0.2
},
{
"id": 1021,
"name": "salmon_bucket",
"stackSize": 1,
"displayName": "Bucket of Salmon",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1022,
"name": "cod_bucket",
"stackSize": 1,
"displayName": "Bucket of Cod",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1023,
"name": "tropical_fish_bucket",
"stackSize": 1,
"displayName": "Bucket of Tropical Fish",
"foodPoints": 1.0,
"saturation": 0.2,
"effectiveQuality": 1.2,
"saturationRatio": 0.2
},
{
"id": 1058,
"name": "cod",
"stackSize": 64,
"displayName": "Raw Cod",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1059,
"name": "salmon",
"stackSize": 64,
"displayName": "Raw Salmon",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1060,
"name": "tropical_fish",
"stackSize": 64,
"displayName": "Tropical Fish",
"foodPoints": 1.0,
"saturation": 0.2,
"effectiveQuality": 1.2,
"saturationRatio": 0.2
},
{
"id": 1061,
"name": "pufferfish",
"stackSize": 64,
"displayName": "Pufferfish",
"foodPoints": 1.0,
"saturation": 0.2,
"effectiveQuality": 1.2,
"saturationRatio": 0.2
},
{
"id": 1062,
"name": "cooked_cod",
"stackSize": 64,
"displayName": "Cooked Cod",
"foodPoints": 5.0,
"saturation": 6.0,
"effectiveQuality": 11.0,
"saturationRatio": 1.2
},
{
"id": 1063,
"name": "cooked_salmon",
"stackSize": 64,
"displayName": "Cooked Salmon",
"foodPoints": 6.0,
"saturation": 9.6,
"effectiveQuality": 15.6,
"saturationRatio": 1.6
},
{
"id": 1103,
"name": "cookie",
"stackSize": 64,
"displayName": "Cookie",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1107,
"name": "melon_slice",
"stackSize": 64,
"displayName": "Melon Slice",
"foodPoints": 2.0,
"saturation": 1.2,
"effectiveQuality": 3.2,
"saturationRatio": 0.6
},
{
"id": 1108,
"name": "dried_kelp",
"stackSize": 64,
"displayName": "Dried Kelp",
"foodPoints": 1.0,
"saturation": 0.6,
"effectiveQuality": 1.6,
"saturationRatio": 0.6
},
{
"id": 1111,
"name": "beef",
"stackSize": 64,
"displayName": "Raw Beef",
"foodPoints": 3.0,
"saturation": 1.8000001,
"effectiveQuality": 4.8,
"saturationRatio": 0.6
},
{
"id": 1112,
"name": "cooked_beef",
"stackSize": 64,
"displayName": "Steak",
"foodPoints": 8.0,
"saturation": 12.8,
"effectiveQuality": 20.8,
"saturationRatio": 1.6
},
{
"id": 1113,
"name": "chicken",
"stackSize": 64,
"displayName": "Raw Chicken",
"foodPoints": 2.0,
"saturation": 1.2,
"effectiveQuality": 3.2,
"saturationRatio": 0.6
},
{
"id": 1114,
"name": "cooked_chicken",
"stackSize": 64,
"displayName": "Cooked Chicken",
"foodPoints": 6.0,
"saturation": 7.2000003,
"effectiveQuality": 13.200001,
"saturationRatio": 1.2
},
{
"id": 1115,
"name": "rotten_flesh",
"stackSize": 64,
"displayName": "Rotten Flesh",
"foodPoints": 4.0,
"saturation": 0.8,
"effectiveQuality": 4.8,
"saturationRatio": 0.2
},
{
"id": 1123,
"name": "spider_eye",
"stackSize": 64,
"displayName": "Spider Eye",
"foodPoints": 2.0,
"saturation": 3.2,
"effectiveQuality": 5.2,
"saturationRatio": 1.6
},
{
"id": 1228,
"name": "carrot",
"stackSize": 64,
"displayName": "Carrot",
"foodPoints": 3.0,
"saturation": 3.6000001,
"effectiveQuality": 6.6000004,
"saturationRatio": 1.2
},
{
"id": 1229,
"name": "potato",
"stackSize": 64,
"displayName": "Potato",
"foodPoints": 1.0,
"saturation": 0.6,
"effectiveQuality": 1.6,
"saturationRatio": 0.6
},
{
"id": 1230,
"name": "baked_potato",
"stackSize": 64,
"displayName": "Baked Potato",
"foodPoints": 5.0,
"saturation": 6.0,
"effectiveQuality": 11.0,
"saturationRatio": 1.2
},
{
"id": 1231,
"name": "poisonous_potato",
"stackSize": 64,
"displayName": "Poisonous Potato",
"foodPoints": 2.0,
"saturation": 1.2,
"effectiveQuality": 3.2,
"saturationRatio": 0.6
},
{
"id": 1233,
"name": "golden_carrot",
"stackSize": 64,
"displayName": "Golden Carrot",
"foodPoints": 6.0,
"saturation": 14.400001,
"effectiveQuality": 20.400002,
"saturationRatio": 2.4
},
{
"id": 1242,
"name": "pumpkin_pie",
"stackSize": 64,
"displayName": "Pumpkin Pie",
"foodPoints": 8.0,
"saturation": 4.8,
"effectiveQuality": 12.8,
"saturationRatio": 0.6
},
{
"id": 1250,
"name": "rabbit",
"stackSize": 64,
"displayName": "Raw Rabbit",
"foodPoints": 3.0,
"saturation": 1.8000001,
"effectiveQuality": 4.8,
"saturationRatio": 0.6
},
{
"id": 1251,
"name": "cooked_rabbit",
"stackSize": 64,
"displayName": "Cooked Rabbit",
"foodPoints": 5.0,
"saturation": 6.0,
"effectiveQuality": 11.0,
"saturationRatio": 1.2
},
{
"id": 1252,
"name": "rabbit_stew",
"stackSize": 1,
"displayName": "Rabbit Stew",
"foodPoints": 10.0,
"saturation": 12.0,
"effectiveQuality": 22.0,
"saturationRatio": 1.2
},
{
"id": 1265,
"name": "mutton",
"stackSize": 64,
"displayName": "Raw Mutton",
"foodPoints": 2.0,
"saturation": 1.2,
"effectiveQuality": 3.2,
"saturationRatio": 0.6
},
{
"id": 1266,
"name": "cooked_mutton",
"stackSize": 64,
"displayName": "Cooked Mutton",
"foodPoints": 6.0,
"saturation": 9.6,
"effectiveQuality": 15.6,
"saturationRatio": 1.6
},
{
"id": 1284,
"name": "chorus_fruit",
"stackSize": 64,
"displayName": "Chorus Fruit",
"foodPoints": 4.0,
"saturation": 2.4,
"effectiveQuality": 6.4,
"saturationRatio": 0.6
},
{
"id": 1288,
"name": "beetroot",
"stackSize": 64,
"displayName": "Beetroot",
"foodPoints": 1.0,
"saturation": 1.2,
"effectiveQuality": 2.2,
"saturationRatio": 1.2
},
{
"id": 1290,
"name": "beetroot_soup",
"stackSize": 1,
"displayName": "Beetroot Soup",
"foodPoints": 6.0,
"saturation": 7.2000003,
"effectiveQuality": 13.200001,
"saturationRatio": 1.2
},
{
"id": 1341,
"name": "suspicious_stew",
"stackSize": 1,
"displayName": "Suspicious Stew",
"foodPoints": 6.0,
"saturation": 7.2000003,
"effectiveQuality": 13.200001,
"saturationRatio": 1.2
},
{
"id": 1374,
"name": "sweet_berries",
"stackSize": 64,
"displayName": "Sweet Berries",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1375,
"name": "glow_berries",
"stackSize": 64,
"displayName": "Glow Berries",
"foodPoints": 2.0,
"saturation": 0.4,
"effectiveQuality": 2.4,
"saturationRatio": 0.2
},
{
"id": 1382,
"name": "honey_bottle",
"stackSize": 16,
"displayName": "Honey Bottle",
"foodPoints": 6.0,
"saturation": 1.2,
"effectiveQuality": 7.2,
"saturationRatio": 0.2
}
]
@@ -0,0 +1,110 @@
[
{
"id": 0,
"name": "harp"
},
{
"id": 1,
"name": "basedrum"
},
{
"id": 2,
"name": "snare"
},
{
"id": 3,
"name": "hat"
},
{
"id": 4,
"name": "bass"
},
{
"id": 5,
"name": "flute"
},
{
"id": 6,
"name": "bell"
},
{
"id": 7,
"name": "guitar"
},
{
"id": 8,
"name": "chime"
},
{
"id": 9,
"name": "xylophone"
},
{
"id": 10,
"name": "iron_xylophone"
},
{
"id": 11,
"name": "cow_bell"
},
{
"id": 12,
"name": "didgeridoo"
},
{
"id": 13,
"name": "bit"
},
{
"id": 14,
"name": "banjo"
},
{
"id": 15,
"name": "pling"
},
{
"id": 16,
"name": "trumpet"
},
{
"id": 17,
"name": "trumpet_exposed"
},
{
"id": 18,
"name": "trumpet_oxidized"
},
{
"id": 19,
"name": "trumpet_weathered"
},
{
"id": 20,
"name": "zombie"
},
{
"id": 21,
"name": "skeleton"
},
{
"id": 22,
"name": "creeper"
},
{
"id": 23,
"name": "dragon"
},
{
"id": 24,
"name": "wither_skeleton"
},
{
"id": 25,
"name": "piglin"
},
{
"id": 26,
"name": "custom_head"
}
]
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,233 @@
{
"default": {},
"leaves": {
"1106": 1.0,
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5
},
"coweb": {
"1106": 15.0,
"912": 15.0,
"917": 15.0,
"922": 15.0,
"927": 15.0,
"932": 15.0,
"937": 15.0,
"942": 15.0
},
"plant": {
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5
},
"gourd": {
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5
},
"vine_or_glow_lichen": {
"1106": 2.0
},
"wool": {
"1106": 1.0
},
"sword_instantly_mines": {
"912": 2.0,
"917": 1.0,
"922": 4.0,
"927": 12.0,
"932": 6.0,
"937": 8.0,
"942": 9.0
},
"sword_efficient": {
"912": 2.0,
"917": 1.0,
"922": 4.0,
"927": 12.0,
"932": 6.0,
"937": 8.0,
"942": 9.0
},
"incorrect_for_wooden_tool": {
"913": 2.0,
"914": 2.0,
"915": 2.0,
"916": 2.0
},
"mineable/shovel": {
"913": 2.0,
"918": 1.0,
"923": 4.0,
"928": 12.0,
"933": 6.0,
"938": 8.0,
"943": 9.0
},
"mineable/pickaxe": {
"914": 2.0,
"919": 1.0,
"924": 4.0,
"929": 12.0,
"934": 6.0,
"939": 8.0,
"944": 9.0
},
"mineable/axe": {
"915": 2.0,
"920": 1.0,
"925": 4.0,
"930": 12.0,
"935": 6.0,
"940": 8.0,
"945": 9.0
},
"mineable/hoe": {
"916": 2.0,
"921": 1.0,
"926": 4.0,
"931": 12.0,
"936": 6.0,
"941": 8.0,
"946": 9.0
},
"incorrect_for_copper_tool": {
"918": 1.0,
"919": 1.0,
"920": 1.0,
"921": 1.0
},
"incorrect_for_stone_tool": {
"923": 4.0,
"924": 4.0,
"925": 4.0,
"926": 4.0
},
"incorrect_for_gold_tool": {
"928": 12.0,
"929": 12.0,
"930": 12.0,
"931": 12.0
},
"incorrect_for_iron_tool": {
"933": 6.0,
"934": 6.0,
"935": 6.0,
"936": 6.0
},
"incorrect_for_diamond_tool": {
"938": 8.0,
"939": 8.0,
"940": 8.0,
"941": 8.0
},
"incorrect_for_netherite_tool": {
"943": 9.0,
"944": 9.0,
"945": 9.0,
"946": 9.0
},
"plant;mineable/axe": {
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5,
"915": 2.0,
"920": 1.0,
"925": 4.0,
"930": 12.0,
"935": 6.0,
"940": 8.0,
"945": 9.0
},
"gourd;mineable/axe": {
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5,
"915": 2.0,
"920": 1.0,
"925": 4.0,
"930": 12.0,
"935": 6.0,
"940": 8.0,
"945": 9.0
},
"leaves;mineable/hoe": {
"1106": 1.0,
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5,
"916": 2.0,
"921": 1.0,
"926": 4.0,
"931": 12.0,
"936": 6.0,
"941": 8.0,
"946": 9.0
},
"leaves;mineable/axe;mineable/hoe": {
"1106": 1.0,
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5,
"915": 2.0,
"920": 1.0,
"925": 4.0,
"930": 12.0,
"935": 6.0,
"940": 8.0,
"945": 9.0,
"916": 2.0,
"921": 1.0,
"926": 4.0,
"931": 12.0,
"936": 6.0,
"941": 8.0,
"946": 9.0
},
"vine_or_glow_lichen;plant;mineable/axe": {
"1106": 2.0,
"912": 1.5,
"917": 1.5,
"922": 1.5,
"927": 1.5,
"932": 1.5,
"937": 1.5,
"942": 1.5,
"915": 2.0,
"920": 1.0,
"925": 4.0,
"930": 12.0,
"935": 6.0,
"940": 8.0,
"945": 9.0
}
}
@@ -0,0 +1,470 @@
[
{
"id": 0,
"name": "angry_villager"
},
{
"id": 1,
"name": "block"
},
{
"id": 2,
"name": "block_marker"
},
{
"id": 3,
"name": "bubble"
},
{
"id": 4,
"name": "cloud"
},
{
"id": 5,
"name": "copper_fire_flame"
},
{
"id": 6,
"name": "crit"
},
{
"id": 7,
"name": "damage_indicator"
},
{
"id": 8,
"name": "dragon_breath"
},
{
"id": 9,
"name": "dripping_lava"
},
{
"id": 10,
"name": "falling_lava"
},
{
"id": 11,
"name": "landing_lava"
},
{
"id": 12,
"name": "dripping_water"
},
{
"id": 13,
"name": "falling_water"
},
{
"id": 14,
"name": "dust"
},
{
"id": 15,
"name": "dust_color_transition"
},
{
"id": 16,
"name": "effect"
},
{
"id": 17,
"name": "elder_guardian"
},
{
"id": 18,
"name": "enchanted_hit"
},
{
"id": 19,
"name": "enchant"
},
{
"id": 20,
"name": "end_rod"
},
{
"id": 21,
"name": "entity_effect"
},
{
"id": 22,
"name": "explosion_emitter"
},
{
"id": 23,
"name": "explosion"
},
{
"id": 24,
"name": "gust"
},
{
"id": 25,
"name": "small_gust"
},
{
"id": 26,
"name": "gust_emitter_large"
},
{
"id": 27,
"name": "gust_emitter_small"
},
{
"id": 28,
"name": "sonic_boom"
},
{
"id": 29,
"name": "falling_dust"
},
{
"id": 30,
"name": "firework"
},
{
"id": 31,
"name": "fishing"
},
{
"id": 32,
"name": "flame"
},
{
"id": 33,
"name": "infested"
},
{
"id": 34,
"name": "cherry_leaves"
},
{
"id": 35,
"name": "pale_oak_leaves"
},
{
"id": 36,
"name": "tinted_leaves"
},
{
"id": 37,
"name": "sculk_soul"
},
{
"id": 38,
"name": "sculk_charge"
},
{
"id": 39,
"name": "sculk_charge_pop"
},
{
"id": 40,
"name": "soul_fire_flame"
},
{
"id": 41,
"name": "soul"
},
{
"id": 42,
"name": "flash"
},
{
"id": 43,
"name": "happy_villager"
},
{
"id": 44,
"name": "composter"
},
{
"id": 45,
"name": "heart"
},
{
"id": 46,
"name": "instant_effect"
},
{
"id": 47,
"name": "item"
},
{
"id": 48,
"name": "vibration"
},
{
"id": 49,
"name": "trail"
},
{
"id": 50,
"name": "pause_mob_growth"
},
{
"id": 51,
"name": "reset_mob_growth"
},
{
"id": 52,
"name": "item_slime"
},
{
"id": 53,
"name": "item_cobweb"
},
{
"id": 54,
"name": "item_snowball"
},
{
"id": 55,
"name": "large_smoke"
},
{
"id": 56,
"name": "lava"
},
{
"id": 57,
"name": "mycelium"
},
{
"id": 58,
"name": "note"
},
{
"id": 59,
"name": "poof"
},
{
"id": 60,
"name": "portal"
},
{
"id": 61,
"name": "rain"
},
{
"id": 62,
"name": "smoke"
},
{
"id": 63,
"name": "white_smoke"
},
{
"id": 64,
"name": "sneeze"
},
{
"id": 65,
"name": "spit"
},
{
"id": 66,
"name": "squid_ink"
},
{
"id": 67,
"name": "sweep_attack"
},
{
"id": 68,
"name": "totem_of_undying"
},
{
"id": 69,
"name": "underwater"
},
{
"id": 70,
"name": "splash"
},
{
"id": 71,
"name": "witch"
},
{
"id": 72,
"name": "bubble_pop"
},
{
"id": 73,
"name": "current_down"
},
{
"id": 74,
"name": "bubble_column_up"
},
{
"id": 75,
"name": "nautilus"
},
{
"id": 76,
"name": "dolphin"
},
{
"id": 77,
"name": "campfire_cosy_smoke"
},
{
"id": 78,
"name": "campfire_signal_smoke"
},
{
"id": 79,
"name": "dripping_honey"
},
{
"id": 80,
"name": "falling_honey"
},
{
"id": 81,
"name": "landing_honey"
},
{
"id": 82,
"name": "falling_nectar"
},
{
"id": 83,
"name": "falling_spore_blossom"
},
{
"id": 84,
"name": "ash"
},
{
"id": 85,
"name": "crimson_spore"
},
{
"id": 86,
"name": "warped_spore"
},
{
"id": 87,
"name": "spore_blossom_air"
},
{
"id": 88,
"name": "dripping_obsidian_tear"
},
{
"id": 89,
"name": "falling_obsidian_tear"
},
{
"id": 90,
"name": "landing_obsidian_tear"
},
{
"id": 91,
"name": "reverse_portal"
},
{
"id": 92,
"name": "white_ash"
},
{
"id": 93,
"name": "small_flame"
},
{
"id": 94,
"name": "snowflake"
},
{
"id": 95,
"name": "dripping_dripstone_lava"
},
{
"id": 96,
"name": "falling_dripstone_lava"
},
{
"id": 97,
"name": "dripping_dripstone_water"
},
{
"id": 98,
"name": "falling_dripstone_water"
},
{
"id": 99,
"name": "glow_squid_ink"
},
{
"id": 100,
"name": "glow"
},
{
"id": 101,
"name": "wax_on"
},
{
"id": 102,
"name": "wax_off"
},
{
"id": 103,
"name": "electric_spark"
},
{
"id": 104,
"name": "scrape"
},
{
"id": 105,
"name": "shriek"
},
{
"id": 106,
"name": "egg_crack"
},
{
"id": 107,
"name": "dust_plume"
},
{
"id": 108,
"name": "trial_spawner_detection"
},
{
"id": 109,
"name": "trial_spawner_detection_ominous"
},
{
"id": 110,
"name": "vault_connection"
},
{
"id": 111,
"name": "dust_pillar"
},
{
"id": 112,
"name": "ominous_spawning"
},
{
"id": 113,
"name": "raid_omen"
},
{
"id": 114,
"name": "trial_omen"
},
{
"id": 115,
"name": "block_crumble"
},
{
"id": 116,
"name": "firefly"
}
]
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+465
View File
@@ -0,0 +1,465 @@
{
"grass": {
"data": [
{
"keys": [
"badlands",
"eroded_badlands",
"wooded_badlands"
],
"color": -7306931
},
{
"keys": [
"bamboo_jungle",
"basalt_deltas",
"beach",
"birch_forest",
"cold_ocean",
"crimson_forest",
"deep_cold_ocean",
"deep_dark",
"deep_frozen_ocean",
"deep_lukewarm_ocean",
"deep_ocean",
"desert",
"dripstone_caves",
"end_barrens",
"end_highlands",
"end_midlands",
"flower_forest",
"forest",
"frozen_ocean",
"frozen_peaks",
"frozen_river",
"grove",
"ice_spikes",
"jagged_peaks",
"jungle",
"lukewarm_ocean",
"lush_caves",
"meadow",
"mushroom_fields",
"nether_wastes",
"ocean",
"old_growth_birch_forest",
"old_growth_pine_taiga",
"old_growth_spruce_taiga",
"plains",
"river",
"savanna",
"savanna_plateau",
"small_end_islands",
"snowy_beach",
"snowy_plains",
"snowy_slopes",
"snowy_taiga",
"soul_sand_valley",
"sparse_jungle",
"stony_peaks",
"stony_shore",
"sunflower_plains",
"taiga",
"the_end",
"the_void",
"warm_ocean",
"warped_forest",
"windswept_forest",
"windswept_gravelly_hills",
"windswept_hills",
"windswept_savanna"
],
"color": 0
},
{
"keys": [
"cherry_grove"
],
"color": -4793503
},
{
"keys": [
"dark_forest"
],
"color": -15459835
},
{
"keys": [
"mangrove_swamp",
"swamp"
],
"color": -9801671
},
{
"keys": [
"pale_garden"
],
"color": -8945038
}
]
},
"foliage": {
"data": [
{
"keys": [
"badlands",
"eroded_badlands",
"wooded_badlands"
],
"color": -6389427
},
{
"keys": [
"bamboo_jungle",
"basalt_deltas",
"beach",
"birch_forest",
"cold_ocean",
"crimson_forest",
"dark_forest",
"deep_cold_ocean",
"deep_dark",
"deep_frozen_ocean",
"deep_lukewarm_ocean",
"deep_ocean",
"desert",
"dripstone_caves",
"end_barrens",
"end_highlands",
"end_midlands",
"flower_forest",
"forest",
"frozen_ocean",
"frozen_peaks",
"frozen_river",
"grove",
"ice_spikes",
"jagged_peaks",
"jungle",
"lukewarm_ocean",
"lush_caves",
"meadow",
"mushroom_fields",
"nether_wastes",
"ocean",
"old_growth_birch_forest",
"old_growth_pine_taiga",
"old_growth_spruce_taiga",
"plains",
"river",
"savanna",
"savanna_plateau",
"small_end_islands",
"snowy_beach",
"snowy_plains",
"snowy_slopes",
"snowy_taiga",
"soul_sand_valley",
"sparse_jungle",
"stony_peaks",
"stony_shore",
"sunflower_plains",
"taiga",
"the_end",
"the_void",
"warm_ocean",
"warped_forest",
"windswept_forest",
"windswept_gravelly_hills",
"windswept_hills",
"windswept_savanna"
],
"color": 0
},
{
"keys": [
"cherry_grove"
],
"color": -4793503
},
{
"keys": [
"mangrove_swamp"
],
"color": -7491289
},
{
"keys": [
"pale_garden"
],
"color": -7893642
},
{
"keys": [
"swamp"
],
"color": -9801671
}
]
},
"water": {
"data": [
{
"keys": [
"badlands",
"bamboo_jungle",
"basalt_deltas",
"beach",
"birch_forest",
"crimson_forest",
"dark_forest",
"deep_dark",
"deep_ocean",
"desert",
"dripstone_caves",
"end_barrens",
"end_highlands",
"end_midlands",
"eroded_badlands",
"flower_forest",
"forest",
"frozen_peaks",
"grove",
"ice_spikes",
"jagged_peaks",
"jungle",
"lush_caves",
"mushroom_fields",
"nether_wastes",
"ocean",
"old_growth_birch_forest",
"old_growth_pine_taiga",
"old_growth_spruce_taiga",
"plains",
"river",
"savanna",
"savanna_plateau",
"small_end_islands",
"snowy_plains",
"snowy_slopes",
"soul_sand_valley",
"sparse_jungle",
"stony_peaks",
"stony_shore",
"sunflower_plains",
"taiga",
"the_end",
"the_void",
"warped_forest",
"windswept_forest",
"windswept_gravelly_hills",
"windswept_hills",
"windswept_savanna",
"wooded_badlands"
],
"color": -12618012
},
{
"keys": [
"cherry_grove"
],
"color": -10635281
},
{
"keys": [
"cold_ocean",
"deep_cold_ocean",
"snowy_beach",
"snowy_taiga"
],
"color": -12757034
},
{
"keys": [
"deep_frozen_ocean",
"frozen_ocean",
"frozen_river"
],
"color": -13027127
},
{
"keys": [
"deep_lukewarm_ocean",
"lukewarm_ocean"
],
"color": -12210702
},
{
"keys": [
"mangrove_swamp"
],
"color": -12944790
},
{
"keys": [
"meadow"
],
"color": -15839537
},
{
"keys": [
"pale_garden"
],
"color": -9008995
},
{
"keys": [
"swamp"
],
"color": -10388636
},
{
"keys": [
"warm_ocean"
],
"color": -12331538
}
]
},
"redstone": {
"data": [
{
"keys": [
0
],
"color": 4980736
},
{
"keys": [
1
],
"color": 7340032
},
{
"keys": [
2
],
"color": 7995392
},
{
"keys": [
3
],
"color": 8650752
},
{
"keys": [
4
],
"color": 9306112
},
{
"keys": [
5
],
"color": 10027008
},
{
"keys": [
6
],
"color": 10682368
},
{
"keys": [
7
],
"color": 11337728
},
{
"keys": [
8
],
"color": 11993088
},
{
"keys": [
9
],
"color": 12648448
},
{
"keys": [
10
],
"color": 13369344
},
{
"keys": [
11
],
"color": 14024704
},
{
"keys": [
12
],
"color": 14680064
},
{
"keys": [
13
],
"color": 15336960
},
{
"keys": [
14
],
"color": 15997696
},
{
"keys": [
15
],
"color": 16724480
}
]
},
"constant": {
"data": [
{
"keys": [
"birch_leaves"
],
"color": -8345771
},
{
"keys": [
"spruce_leaves"
],
"color": -10380959
},
{
"keys": [
"lily_pad"
],
"color": -14647248
},
{
"keys": [
"attached_melon_stem"
],
"color": -2046180
},
{
"keys": [
"attached_pumpkin_stem"
],
"color": -2046180
},
{
"keys": [
"melon_stem"
],
"color": -16711936
},
{
"keys": [
"pumpkin_stem"
],
"color": -16711936
}
]
}
}
@@ -0,0 +1,6 @@
{
"version": 776,
"minecraftVersion": "26.2",
"majorVersion": "26.2",
"releaseType": "release"
}
@@ -906,6 +906,11 @@
"description": "spawn position includes a dimension component", "description": "spawn position includes a dimension component",
"versions": ["1.21.9", "latest"] "versions": ["1.21.9", "latest"]
}, },
{
"name": "entityVelocityIsLpVec3",
"description": "entity velocity packets use length-prefixed vectors in blocks per tick",
"versions": ["1.21.9", "latest"]
},
{ {
"name": "gameRuleUsesResourceLocation", "name": "gameRuleUsesResourceLocation",
"description": "gamerule names use resource location syntax", "description": "gamerule names use resource location syntax",
@@ -1,4 +1,140 @@
[ [
{
"minecraftVersion": "26.3-snapshot-5",
"version": 1073742151,
"dataVersion": 5004,
"usesNetty": true,
"majorVersion": "26.3-snapshot-5",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.3-snapshot-4",
"version": 1073742150,
"dataVersion": 5003,
"usesNetty": true,
"majorVersion": "26.3-snapshot-4",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.3-snapshot-3",
"version": 1073742149,
"dataVersion": 5001,
"usesNetty": true,
"majorVersion": "26.3-snapshot-3",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.3-snapshot-2",
"version": 1073742148,
"dataVersion": 4999,
"usesNetty": true,
"majorVersion": "26.3-snapshot-2",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.3-snapshot-1",
"version": 1073742147,
"dataVersion": 4998,
"usesNetty": true,
"majorVersion": "26.3-snapshot-1",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.2",
"version": 776,
"dataVersion": 4903,
"usesNetty": true,
"majorVersion": "26.2",
"releaseType": "release"
},
{
"minecraftVersion": "26.2-rc-2",
"version": 1073742146,
"dataVersion": 4902,
"usesNetty": true,
"majorVersion": "26.2-rc-2",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.2-rc-1",
"version": 1073742145,
"dataVersion": 4901,
"usesNetty": true,
"majorVersion": "26.2-rc-1",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.2-pre-6",
"version": 1073742144,
"dataVersion": 4900,
"usesNetty": true,
"majorVersion": "26.2-pre-6",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.2-pre-5",
"version": 1073742143,
"dataVersion": 4898,
"usesNetty": true,
"majorVersion": "26.2-pre-5",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.2-pre-4",
"version": 1073742142,
"dataVersion": 4897,
"usesNetty": true,
"majorVersion": "26.2-pre-4",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.2-pre-3",
"version": 1073742141,
"dataVersion": 4896,
"usesNetty": true,
"majorVersion": "26.2-pre-3",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.2-pre-2",
"version": 1073742140,
"dataVersion": 4895,
"usesNetty": true,
"majorVersion": "26.2-pre-2",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.2-pre-1",
"version": 1073742139,
"dataVersion": 4894,
"usesNetty": true,
"majorVersion": "26.2-pre-1",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.2-snapshot-8",
"version": 1073742138,
"dataVersion": 4893,
"usesNetty": true,
"majorVersion": "26.2-snapshot-8",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.2-snapshot-7",
"version": 1073742137,
"dataVersion": 4891,
"usesNetty": true,
"majorVersion": "26.2-snapshot-7",
"releaseType": "snapshot"
},
{
"minecraftVersion": "26.2-snapshot-6",
"version": 1073742136,
"dataVersion": 4890,
"usesNetty": true,
"majorVersion": "26.2-snapshot-6",
"releaseType": "snapshot"
},
{ {
"minecraftVersion": "26.2-snapshot-5", "minecraftVersion": "26.2-snapshot-5",
"version": 1073742135, "version": 1073742135,
@@ -69,5 +69,7 @@
"1.21.8", "1.21.8",
"1.21.9", "1.21.9",
"1.21.10", "1.21.10",
"1.21.11" "1.21.11",
"26.1",
"26.2"
] ]
+5 -5
View File
@@ -13,9 +13,9 @@ import (
) )
func TestLevel(t *testing.T) { func TestLevel(t *testing.T) {
f, err := os.Open("./testdata/testworld/level.dat") f, err := os.Open("../../../.devres/anvil_testdata/testworld/level.dat")
if err != nil { if err != nil {
t.Fatal(err) t.Skipf("testdata not available: %v", err)
} }
defer f.Close() defer f.Close()
@@ -27,9 +27,9 @@ func TestLevel(t *testing.T) {
} }
func TestRegionFile(t *testing.T) { func TestRegionFile(t *testing.T) {
f, err := os.Open("./testdata/testworld/region/r.0.0.mca") f, err := os.Open("../../../.devres/anvil_testdata/testworld/region/r.0.0.mca")
if err != nil { if err != nil {
t.Fatal(err) t.Skipf("testdata not available: %v", err)
} }
defer f.Close() defer f.Close()
ch, err := anvil2.ReadChunkHeader(f) ch, err := anvil2.ReadChunkHeader(f)
@@ -42,7 +42,7 @@ func TestRegionFile(t *testing.T) {
return return
} }
fmt.Println(string(util.MustT(json.MarshalIndent(n, "", " ")))) fmt.Println(string(util.MustT(json.MarshalIndent(n, "", " ")))[100:])
fmt.Println("Chunk loaded successfully") fmt.Println("Chunk loaded successfully")
} }
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
-3
View File
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:14cd0df55488907baf26a6e8da9548d614d044a15259a526bb1f0be44a712764
size 10113024
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,215 +0,0 @@
{
"minecraft:recipes/building_blocks/polished_deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_sword": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_axe": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:story/mine_stone": {
"criteria": {
"get_stone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/furnace": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-01-18 19:40:40 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": {
"criteria": {
"has_porkchop": "2026-01-18 19:40:40 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop": {
"criteria": {
"has_porkchop": "2026-01-18 19:40:40 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_pickaxe": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/misc/charcoal": {
"criteria": {
"has_log": "2026-01-18 19:41:43 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/oak_planks": {
"criteria": {
"has_logs": "2026-01-18 19:41:43 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_smoking": {
"criteria": {
"has_porkchop": "2026-01-18 19:40:40 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:forest": "2026-01-18 19:40:40 +0100",
"minecraft:deep_dark": "2026-01-18 19:41:56 +0100",
"minecraft:stony_shore": "2026-01-18 19:40:46 +0100"
},
"done": false
},
"minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_hoe": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_shovel": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"DataVersion": 4556
}
@@ -1,17 +0,0 @@
{
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-04-23 22:08:36 +0200"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:taiga": "2026-04-23 22:10:55 +0200",
"minecraft:grove": "2026-04-23 22:09:03 +0200",
"minecraft:stony_shore": "2026-04-23 22:08:37 +0200"
},
"done": false
},
"DataVersion": 4671
}
@@ -1,17 +0,0 @@
{
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-05-08 20:07:02 +0200"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:forest": "2026-05-08 20:07:06 +0200",
"minecraft:taiga": "2026-05-08 20:07:05 +0200",
"minecraft:grove": "2026-05-08 20:07:03 +0200"
},
"done": false
},
"DataVersion": 4671
}
@@ -1,220 +0,0 @@
{
"minecraft:recipes/building_blocks/polished_deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_sword": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_axe": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:story/mine_stone": {
"criteria": {
"get_stone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/furnace": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": {
"criteria": {
"has_porkchop": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop": {
"criteria": {
"has_porkchop": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_pickaxe": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/misc/charcoal": {
"criteria": {
"has_log": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_spear": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/oak_planks": {
"criteria": {
"has_logs": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_smoking": {
"criteria": {
"has_porkchop": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:stony_shore": "2026-03-11 19:22:59 +0100",
"minecraft:plains": "2026-03-11 19:22:38 +0100"
},
"done": false
},
"minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_hoe": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_shovel": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"DataVersion": 4671
}
@@ -1,222 +0,0 @@
{
"minecraft:recipes/building_blocks/polished_deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_sword": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_axe": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:story/mine_stone": {
"criteria": {
"get_stone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/furnace": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": {
"criteria": {
"has_porkchop": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop": {
"criteria": {
"has_porkchop": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_pickaxe": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/misc/charcoal": {
"criteria": {
"has_log": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_spear": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/oak_planks": {
"criteria": {
"has_logs": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_smoking": {
"criteria": {
"has_porkchop": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:forest": "2026-02-07 19:19:04 +0100",
"minecraft:river": "2026-02-07 19:20:26 +0100",
"minecraft:stony_shore": "2026-02-07 19:20:11 +0100",
"minecraft:plains": "2026-02-07 19:20:12 +0100"
},
"done": false
},
"minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_hoe": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_shovel": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"DataVersion": 4671
}
@@ -1,119 +0,0 @@
{
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2025-11-30 09:32:28 +0100"
},
"done": true
},
"minecraft:recipes/transportation/cherry_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:adventure/kill_all_mobs": {
"criteria": {
"minecraft:zombie": "2025-11-30 10:06:33 +0100"
},
"done": false
},
"minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": {
"criteria": {
"has_porkchop": "2025-11-30 10:06:57 +0100"
},
"done": true
},
"minecraft:recipes/transportation/bamboo_raft": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/transportation/spruce_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/transportation/birch_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/transportation/oak_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/transportation/mangrove_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop": {
"criteria": {
"has_porkchop": "2025-11-30 10:06:57 +0100"
},
"done": true
},
"minecraft:recipes/transportation/acacia_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:adventure/root": {
"criteria": {
"killed_something": "2025-11-30 10:06:33 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_smoking": {
"criteria": {
"has_porkchop": "2025-11-30 10:06:57 +0100"
},
"done": true
},
"minecraft:adventure/kill_a_mob": {
"criteria": {
"minecraft:zombie": "2025-11-30 10:06:33 +0100"
},
"done": true
},
"minecraft:recipes/transportation/pale_oak_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:old_growth_birch_forest": "2025-11-30 10:03:58 +0100",
"minecraft:forest": "2025-11-30 10:04:40 +0100",
"minecraft:taiga": "2025-11-30 09:32:29 +0100",
"minecraft:deep_dark": "2025-11-30 10:05:12 +0100",
"minecraft:river": "2025-11-30 10:09:03 +0100",
"minecraft:grove": "2025-11-30 09:32:32 +0100",
"minecraft:meadow": "2025-11-30 09:32:44 +0100",
"minecraft:birch_forest": "2025-11-30 10:05:33 +0100",
"minecraft:frozen_peaks": "2025-11-30 09:32:55 +0100"
},
"done": false
},
"minecraft:recipes/transportation/jungle_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/transportation/dark_oak_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"DataVersion": 4556
}
@@ -1,220 +0,0 @@
{
"minecraft:recipes/building_blocks/polished_deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_sword": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_axe": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:story/mine_stone": {
"criteria": {
"get_stone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/furnace": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": {
"criteria": {
"has_porkchop": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop": {
"criteria": {
"has_porkchop": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_pickaxe": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/misc/charcoal": {
"criteria": {
"has_log": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_spear": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/oak_planks": {
"criteria": {
"has_logs": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_smoking": {
"criteria": {
"has_porkchop": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:stony_shore": "2026-03-12 21:17:48 +0100",
"minecraft:plains": "2026-03-12 21:17:31 +0100"
},
"done": false
},
"minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_hoe": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_shovel": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"DataVersion": 4671
}

Some files were not shown because too many files have changed in this diff Show More