add 26.1 support, raw-capture subcommand, and local minecraft-data copy script
This commit is contained in:
@@ -19,6 +19,7 @@ import (
|
||||
"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_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/serve_tmcpr"
|
||||
"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,
|
||||
"data": data.Run,
|
||||
"print-replay": print_replay.Run,
|
||||
"raw-capture": raw_capture.Run,
|
||||
"registry-data-hunter": registry_data_hunter.Run,
|
||||
"serve-world": serve_world.Run,
|
||||
"mca-to-tmcpr": mca_to_tmcpr.Run,
|
||||
|
||||
@@ -26,6 +26,7 @@ var (
|
||||
ProtocolVersion = cmd.Int("protocol", -1, "The protocol version")
|
||||
CreateTestsPath = cmd.String("create-tests", "", "")
|
||||
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
|
||||
@@ -67,6 +68,7 @@ func SaveUnCodeAbleAsTest(packet *proto.UnCodablePacket) (err error) {
|
||||
}
|
||||
|
||||
var state = proto_base.Login
|
||||
var direction = proto_base.ToClient
|
||||
|
||||
func UnpackPacket(r io.Reader) (packet proto_base.EncodeDecodeAble, i proto_base.PacketInfo, err error) {
|
||||
var timestamp, length uint32
|
||||
@@ -99,17 +101,27 @@ func UnpackPacket(r io.Reader) (packet proto_base.EncodeDecodeAble, i proto_base
|
||||
indexafterid := int(b.Size()) - b.Len()
|
||||
|
||||
var ok bool
|
||||
i, ok = proto.LookUpTypeByPacketInfo(proto_base.ToClient, state, packetId, int32(*ProtocolVersion))
|
||||
i, ok = proto.LookUpTypeByPacketInfo(direction, state, packetId, int32(*ProtocolVersion))
|
||||
if !ok {
|
||||
packet = &proto.UnCodablePacket{Err: proto.BadPacketIdErr, Data: packetData, Info: i}
|
||||
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)
|
||||
err = packet.Decode(b)
|
||||
if err != nil {
|
||||
@@ -144,6 +156,14 @@ func Run(args []string) (err error) {
|
||||
default:
|
||||
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)
|
||||
if err != nil {
|
||||
return
|
||||
|
||||
@@ -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
|
||||
}
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/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}"
|
||||
|
||||
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
|
||||
@@ -1583,7 +1583,8 @@
|
||||
"tints": "pc/1.21.5",
|
||||
"version": "pc/1.21.5",
|
||||
"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": {
|
||||
"attributes": "pc/1.21.6",
|
||||
@@ -1610,7 +1611,8 @@
|
||||
"tints": "pc/1.21.6",
|
||||
"version": "pc/1.21.6",
|
||||
"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": {
|
||||
"attributes": "pc/1.21.8",
|
||||
@@ -1630,7 +1632,6 @@
|
||||
"loginPacket": "pc/1.21.3",
|
||||
"mapIcons": "pc/1.20.2",
|
||||
"materials": "pc/1.21.8",
|
||||
"multi_noise_biome_source_parameter_list": "pc/1.21.8",
|
||||
"particles": "pc/1.21.8",
|
||||
"protocol": "pc/1.21.8",
|
||||
"recipes": "pc/1.21.8",
|
||||
@@ -1638,7 +1639,8 @@
|
||||
"tints": "pc/1.21.8",
|
||||
"version": "pc/1.21.8",
|
||||
"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": {
|
||||
"attributes": "pc/1.21.9",
|
||||
@@ -1658,7 +1660,6 @@
|
||||
"loginPacket": "pc/1.21.9",
|
||||
"mapIcons": "pc/1.20.2",
|
||||
"materials": "pc/1.21.9",
|
||||
"multi_noise_biome_source_parameter_list": "pc/1.21.9",
|
||||
"particles": "pc/1.21.9",
|
||||
"protocol": "pc/1.21.9",
|
||||
"recipes": "pc/1.21.9",
|
||||
@@ -1666,7 +1667,8 @@
|
||||
"tints": "pc/1.21.9",
|
||||
"version": "pc/1.21.9",
|
||||
"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": {
|
||||
"attributes": "pc/1.21.9",
|
||||
@@ -1713,7 +1715,6 @@
|
||||
"loginPacket": "pc/1.21.11",
|
||||
"mapIcons": "pc/1.20.2",
|
||||
"materials": "pc/1.21.11",
|
||||
"multi_noise_biome_source_parameter_list": "pc/1.21.11",
|
||||
"particles": "pc/1.21.11",
|
||||
"protocol": "pc/1.21.11",
|
||||
"recipes": "pc/1.21.11",
|
||||
@@ -1721,6 +1722,34 @@
|
||||
"tints": "pc/1.21.11",
|
||||
"version": "pc/1.21.11",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
@@ -2767,12 +2796,12 @@
|
||||
"language": "bedrock/1.21.70"
|
||||
},
|
||||
"1.26.0": {
|
||||
"blocks": "bedrock/1.21.111",
|
||||
"blockStates": "bedrock/1.21.111",
|
||||
"blockCollisionShapes": "bedrock/1.21.111",
|
||||
"blocks": "bedrock/1.26.0",
|
||||
"blockStates": "bedrock/1.26.0",
|
||||
"blockCollisionShapes": "bedrock/1.26.0",
|
||||
"biomes": "bedrock/1.21.60",
|
||||
"entities": "bedrock/1.21.80",
|
||||
"items": "bedrock/1.21.111",
|
||||
"items": "bedrock/1.26.0",
|
||||
"recipes": "bedrock/1.19.10",
|
||||
"instruments": "bedrock/1.17.0",
|
||||
"materials": "pc/1.17",
|
||||
@@ -2781,33 +2810,77 @@
|
||||
"protocol": "bedrock/1.26.0",
|
||||
"windows": "bedrock/1.16.201",
|
||||
"steve": "bedrock/1.21.70",
|
||||
"blocksB2J": "bedrock/1.21.111",
|
||||
"blocksJ2B": "bedrock/1.21.111",
|
||||
"blocksB2J": "bedrock/1.26.0",
|
||||
"blocksJ2B": "bedrock/1.26.0",
|
||||
"proto": "bedrock/1.26.0",
|
||||
"types": "bedrock/latest",
|
||||
"version": "bedrock/1.26.0",
|
||||
"language": "bedrock/1.21.70"
|
||||
},
|
||||
"26.10": {
|
||||
"blocks": "bedrock/1.21.111",
|
||||
"blockStates": "bedrock/1.21.111",
|
||||
"blockCollisionShapes": "bedrock/1.21.111",
|
||||
"1.26.10": {
|
||||
"blocks": "bedrock/1.26.10",
|
||||
"blockStates": "bedrock/1.26.10",
|
||||
"blockCollisionShapes": "bedrock/1.26.10",
|
||||
"biomes": "bedrock/1.21.60",
|
||||
"entities": "bedrock/1.21.80",
|
||||
"items": "bedrock/1.21.111",
|
||||
"items": "bedrock/1.26.10",
|
||||
"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/26.10",
|
||||
"protocol": "bedrock/1.26.10",
|
||||
"windows": "bedrock/1.16.201",
|
||||
"steve": "bedrock/1.21.70",
|
||||
"blocksB2J": "bedrock/1.21.111",
|
||||
"blocksJ2B": "bedrock/1.21.111",
|
||||
"blocksB2J": "bedrock/1.26.0",
|
||||
"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",
|
||||
"types": "bedrock/latest",
|
||||
"version": "bedrock/26.10",
|
||||
"version": "bedrock/1.26.30",
|
||||
"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": [
|
||||
{
|
||||
"biome": "minecraft:mushroom_fields",
|
||||
@@ -227942,5 +227790,157 @@
|
||||
"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
@@ -447,6 +447,11 @@
|
||||
]
|
||||
],
|
||||
"attribute_modifiers": [
|
||||
"container",
|
||||
[
|
||||
{
|
||||
"name": "attributes",
|
||||
"type": [
|
||||
"array",
|
||||
{
|
||||
"countType": "varint",
|
||||
@@ -500,6 +505,11 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "display",
|
||||
@@ -536,8 +546,6 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"custom_model_data": [
|
||||
"container",
|
||||
|
||||
@@ -3031,7 +3031,7 @@
|
||||
"count": 3
|
||||
}
|
||||
]
|
||||
checksum: i8
|
||||
checksum: u8
|
||||
# MC: ServerboundChatPacket
|
||||
packet_chat_message:
|
||||
message: string
|
||||
@@ -3050,7 +3050,7 @@
|
||||
"count": 3
|
||||
}
|
||||
]
|
||||
checksum: i8
|
||||
checksum: u8
|
||||
# MC: ServerboundChatSessionUpdatePacket
|
||||
packet_chat_session_update:
|
||||
sessionUUID: UUID
|
||||
@@ -3076,7 +3076,7 @@
|
||||
# MC: ServerboundContainerButtonClickPacket
|
||||
packet_enchant_item:
|
||||
windowId: ContainerID
|
||||
enchantment: i8
|
||||
enchantment: varint
|
||||
# MC: ServerboundContainerClickPacket
|
||||
packet_window_click:
|
||||
windowId: ContainerID
|
||||
|
||||
@@ -8996,7 +8996,7 @@
|
||||
},
|
||||
{
|
||||
"name": "checksum",
|
||||
"type": "i8"
|
||||
"type": "u8"
|
||||
}
|
||||
]
|
||||
],
|
||||
@@ -9042,7 +9042,7 @@
|
||||
},
|
||||
{
|
||||
"name": "checksum",
|
||||
"type": "i8"
|
||||
"type": "u8"
|
||||
}
|
||||
]
|
||||
],
|
||||
@@ -9115,7 +9115,7 @@
|
||||
},
|
||||
{
|
||||
"name": "enchantment",
|
||||
"type": "i8"
|
||||
"type": "varint"
|
||||
}
|
||||
]
|
||||
],
|
||||
|
||||
@@ -3305,7 +3305,7 @@
|
||||
"count": 3
|
||||
}
|
||||
]
|
||||
checksum: i8
|
||||
checksum: u8
|
||||
# MC: ServerboundChatPacket
|
||||
packet_chat_message:
|
||||
message: string
|
||||
@@ -3350,7 +3350,7 @@
|
||||
# MC: ServerboundContainerButtonClickPacket
|
||||
packet_enchant_item:
|
||||
windowId: ContainerID
|
||||
enchantment: i8
|
||||
enchantment: varint
|
||||
# MC: ServerboundContainerClickPacket
|
||||
packet_window_click:
|
||||
windowId: ContainerID
|
||||
|
||||
@@ -10130,7 +10130,7 @@
|
||||
},
|
||||
{
|
||||
"name": "checksum",
|
||||
"type": "i8"
|
||||
"type": "u8"
|
||||
}
|
||||
]
|
||||
],
|
||||
@@ -10249,7 +10249,7 @@
|
||||
},
|
||||
{
|
||||
"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
|
||||
}
|
||||
]
|
||||
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||
}
|
||||
@@ -906,6 +906,11 @@
|
||||
"description": "spawn position includes a dimension component",
|
||||
"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",
|
||||
"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",
|
||||
"version": 1073742135,
|
||||
|
||||
@@ -69,5 +69,6 @@
|
||||
"1.21.8",
|
||||
"1.21.9",
|
||||
"1.21.10",
|
||||
"1.21.11"
|
||||
"1.21.11",
|
||||
"26.1"
|
||||
]
|
||||
File diff suppressed because one or more lines are too long
@@ -1,14 +1,14 @@
|
||||
// Code generated by strom. DO NOT EDIT.
|
||||
// source: minecraft-data/pc/1.21.11/protocol.json (sha256:5d0fffae79fe3d99919d16f79ed22d4c76d80fcddf92868b93abda1f55867dd8)
|
||||
// version: (devel) (go1.26.4-X:nodwarf5)
|
||||
// source: minecraft-data/pc/1.21.11/protocol.json (sha256:4562ba6f519a698f0eddb64cae1b938570eba3a3a0c6ccf0d53e057abded7a81)
|
||||
// version: (devel) (go1.26.5-X:nodwarf5)
|
||||
package v1_21_11
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"github.com/admin-else/strom/mc/nbt"
|
||||
"github.com/admin-else/strom/mc/proto_base"
|
||||
"github.com/google/uuid"
|
||||
"io"
|
||||
"github.com/admin-else/strom/mc/proto_base"
|
||||
"github.com/admin-else/strom/mc/nbt"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type ArmorTrimMaterial struct {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
// Code generated by strom. DO NOT EDIT.
|
||||
// source: minecraft-data/pc/1.21.8/protocol.json (sha256:627f4138d1a6e4a6fff1cde6008c95a72cd580728aafca8ba62ad0ef21c88f61)
|
||||
// version: (devel) (go1.26.4-X:nodwarf5)
|
||||
// source: minecraft-data/pc/1.21.8/protocol.json (sha256:2d064a68210ff4816cbeba22e0340b8164564753c5f0c795c0a2ec4a65bfe2a1)
|
||||
// version: (devel) (go1.26.5-X:nodwarf5)
|
||||
package v1_21_8
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"github.com/admin-else/strom/mc/nbt"
|
||||
"github.com/admin-else/strom/mc/proto_base"
|
||||
"github.com/google/uuid"
|
||||
"io"
|
||||
"github.com/admin-else/strom/mc/proto_base"
|
||||
"github.com/admin-else/strom/mc/nbt"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type ArmorTrimMaterial struct {
|
||||
@@ -22720,7 +22720,7 @@ type PlayToServerPacketChatCommandSigned struct {
|
||||
}
|
||||
MessageCount int32
|
||||
Acknowledged [3]byte
|
||||
Checksum int8
|
||||
Checksum uint8
|
||||
}
|
||||
|
||||
func (ret *PlayToServerPacketChatCommandSigned) Decode(r io.ReadSeeker) (err error) {
|
||||
@@ -22825,7 +22825,7 @@ type PlayToServerPacketChatMessage struct {
|
||||
Signature *[256]byte
|
||||
Offset int32
|
||||
Acknowledged [3]byte
|
||||
Checksum int8
|
||||
Checksum uint8
|
||||
}
|
||||
|
||||
func (ret *PlayToServerPacketChatMessage) Decode(r io.ReadSeeker) (err error) {
|
||||
@@ -23775,7 +23775,7 @@ func (ret *PlayToServerPacketEditBook) Encode(w io.Writer) (err error) {
|
||||
|
||||
type PlayToServerPacketEnchantItem struct {
|
||||
WindowId ContainerID
|
||||
Enchantment int8
|
||||
Enchantment int32
|
||||
}
|
||||
|
||||
func (ret *PlayToServerPacketEnchantItem) Decode(r io.ReadSeeker) (err error) {
|
||||
@@ -23783,7 +23783,7 @@ func (ret *PlayToServerPacketEnchantItem) Decode(r io.ReadSeeker) (err error) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = binary.Read(r, binary.BigEndian, &ret.Enchantment)
|
||||
ret.Enchantment, err = proto_base.DecodeVarInt(r)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -23794,7 +23794,7 @@ func (ret *PlayToServerPacketEnchantItem) Encode(w io.Writer) (err error) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = binary.Write(w, binary.BigEndian, ret.Enchantment)
|
||||
err = proto_base.EncodeVarInt(w, ret.Enchantment)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
// Code generated by strom. DO NOT EDIT.
|
||||
// source: minecraft-data/pc/1.21.9/protocol.json (sha256:5c5c5947ac583745cb1ea9a8b2fa654f0356349f37fa0248ba2e44baf4e5c485)
|
||||
// version: (devel) (go1.26.4-X:nodwarf5)
|
||||
// source: minecraft-data/pc/1.21.9/protocol.json (sha256:7d4791896427272ee05e74a2a9da093e7c100024f71f88dac453601a605cb66b)
|
||||
// version: (devel) (go1.26.5-X:nodwarf5)
|
||||
package v1_21_9
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"github.com/admin-else/strom/mc/nbt"
|
||||
"github.com/admin-else/strom/mc/proto_base"
|
||||
"github.com/google/uuid"
|
||||
"io"
|
||||
"github.com/admin-else/strom/mc/proto_base"
|
||||
"github.com/admin-else/strom/mc/nbt"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type ArmorTrimMaterial struct {
|
||||
@@ -24089,7 +24089,7 @@ type PlayToServerPacketChatCommandSigned struct {
|
||||
}
|
||||
MessageCount int32
|
||||
Acknowledged [3]byte
|
||||
Checksum int8
|
||||
Checksum uint8
|
||||
}
|
||||
|
||||
func (ret *PlayToServerPacketChatCommandSigned) Decode(r io.ReadSeeker) (err error) {
|
||||
@@ -25175,7 +25175,7 @@ func (ret *PlayToServerPacketEditBook) Encode(w io.Writer) (err error) {
|
||||
|
||||
type PlayToServerPacketEnchantItem struct {
|
||||
WindowId ContainerID
|
||||
Enchantment int8
|
||||
Enchantment int32
|
||||
}
|
||||
|
||||
func (ret *PlayToServerPacketEnchantItem) Decode(r io.ReadSeeker) (err error) {
|
||||
@@ -25183,7 +25183,7 @@ func (ret *PlayToServerPacketEnchantItem) Decode(r io.ReadSeeker) (err error) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = binary.Read(r, binary.BigEndian, &ret.Enchantment)
|
||||
ret.Enchantment, err = proto_base.DecodeVarInt(r)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -25194,7 +25194,7 @@ func (ret *PlayToServerPacketEnchantItem) Encode(w io.Writer) (err error) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = binary.Write(w, binary.BigEndian, ret.Enchantment)
|
||||
err = proto_base.EncodeVarInt(w, ret.Enchantment)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -429,7 +429,7 @@ func GenerateVersions(versions []string) (err error) {
|
||||
}
|
||||
|
||||
func main() {
|
||||
err := GenerateVersions([]string{"1.21.8", "1.21.9", "1.21.11"})
|
||||
err := GenerateVersions([]string{"1.21.8", "1.21.9", "1.21.11", "26.1"})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user