Documentation ¶
Overview ¶
Package utils ...
Index ¶
- Constants
- Variables
- func BlendColors(c1, c2 color.RGBA) (ret color.RGBA)
- func CfbDecrypt(data []byte, key []byte) []byte
- func Chunk2Img(c *chunk.Chunk) *image.RGBA
- func Clamp(a, b int) int
- func CleanupName(name string) string
- func DecodePacket(pool packet.Pool, header packet.Header, payload []byte) packet.Packet
- func DrawImgScaledPos(dst *image.RGBA, src *image.RGBA, bottomLeft image.Point, sizeScaled int)
- func DumpStruct(level int, inputStruct any, withType bool, isInList bool) (s string)
- func GetLocalIP() string
- func GetRealmsAPI() *realms.Client
- func IPPrivate(ip net.IP) bool
- func Img2rgba(img *image.RGBA) []color.RGBA
- func LERP(p1, p2, alpha float64) float64
- func RandSeededUUID(str string) string
- func RegisterCommand(sub Command)
- func ServerInput(ctx context.Context, server string) (string, string, error)
- func SetCurrentUI(ui UI)
- func ShowFile(path string)
- func SizeofFmt(num float32) string
- func SplitExt(filename string) (name, ext string)
- func UnpackZip(r io.ReaderAt, size int64, unpackFolder string)
- func UserInput(ctx context.Context, q string, validator func(string) bool) (string, bool)
- func ValidateServerInput(server string) bool
- func WriteManifest(manifest *resource.Manifest, fpath string) error
- func WriteReplayHeader(f io.Writer)
- func ZipFolder(filename, folder string) error
- type BaseUI
- type Command
- type CustomClientData
- type IngameCommand
- type InteractiveCLI
- type Pack
- type Packb
- type PacketFunc
- type ProxyContext
- func (p *ProxyContext) AddCommand(cmd IngameCommand)
- func (p *ProxyContext) AddHandler(handler *ProxyHandler)
- func (p *ProxyContext) ClientWritePacket(pk packet.Packet) error
- func (p *ProxyContext) CommandHandlerPacketCB(pk packet.Packet, toServer bool, _ time.Time) (packet.Packet, error)
- func (p *ProxyContext) Disconnect()
- func (p *ProxyContext) DisconnectClient()
- func (p *ProxyContext) DisconnectServer()
- func (p *ProxyContext) IsClient(addr net.Addr) bool
- func (p *ProxyContext) LoadCustomUserData(path string) error
- func (p *ProxyContext) Run(ctx context.Context, serverAddress, name string) (err error)
- func (p *ProxyContext) SendMessage(text string)
- func (p *ProxyContext) SendPopup(text string)
- type ProxyHandler
- type Skin
- type SkinGeometry
- type SkinGeometryDescription
- type SkinGeometry_1_12
- type SkinMeta
- type SkinPack
- type UI
Constants ¶
View Source
const TokenFile = "token.json"
Variables ¶
View Source
var Auth authsrv
View Source
var CmdName = "bedrocktool"
View Source
var DisconnectReason = "Connection lost"
View Source
var MakeGui = func() UI { return &InteractiveCLI{} }
View Source
var NewDebugLogger func(bool) *ProxyHandler
View Source
var NewPacketCapturer func() *ProxyHandler
View Source
var Options struct { Debug bool Preload bool IsInteractive bool ExtraDebug bool Capture bool PathCustomUserData string }
View Source
var PackFromBase = func(pack *resource.Pack) Pack { b := &Packb{pack} return b }
View Source
var RealmsEnv string
View Source
var UpdateAvailable string
View Source
var Updater = &selfupdate.Updater{ CurrentVersion: Version, ApiURL: updateServer, BinURL: updateServer, Dir: "update/", CmdName: CmdName, Requester: &trequester{}, }
View Source
var ValidCMDs = make(map[string]Command, 0)
View Source
var Version string
Functions ¶
func CfbDecrypt ¶ added in v1.28.0
func CleanupName ¶
CleanupName cleans name so it can be used as a filename
func DecodePacket ¶ added in v1.29.0
func DrawImgScaledPos ¶ added in v1.28.0
DrawImgScaledPos draws src onto dst at bottomLeft, scaled to size
func DumpStruct ¶ added in v1.28.0
func GetRealmsAPI ¶ added in v1.28.0
func RandSeededUUID ¶ added in v1.28.0
func RegisterCommand ¶
func RegisterCommand(sub Command)
func SetCurrentUI ¶ added in v1.28.0
func SetCurrentUI(ui UI)
func ValidateServerInput ¶ added in v1.30.0
func WriteManifest ¶ added in v1.28.0
func WriteReplayHeader ¶ added in v1.28.0
Types ¶
type BaseUI ¶ added in v1.28.0
type BaseUI struct {
UI
}
func (*BaseUI) Message ¶ added in v1.28.0
func (u *BaseUI) Message(data interface{}) messages.MessageResponse
type CustomClientData ¶ added in v1.28.0
type IngameCommand ¶
type InteractiveCLI ¶ added in v1.28.0
type InteractiveCLI struct {
BaseUI
}
func (*InteractiveCLI) Init ¶ added in v1.28.0
func (c *InteractiveCLI) Init() bool
func (*InteractiveCLI) Start ¶ added in v1.28.0
func (c *InteractiveCLI) Start(ctx context.Context, cancel context.CancelFunc) error
type Pack ¶ added in v1.28.0
type Packb ¶ added in v1.28.0
func (*Packb) CanDecrypt ¶ added in v1.28.0
type ProxyContext ¶
type ProxyContext struct { Server minecraft.IConn Client minecraft.IConn Listener *minecraft.Listener AlwaysGetPacks bool WithClient bool IgnoreDisconnect bool CustomClientData *login.ClientData // contains filtered or unexported fields }
func NewProxy ¶
func NewProxy() (*ProxyContext, error)
func (*ProxyContext) AddCommand ¶
func (p *ProxyContext) AddCommand(cmd IngameCommand)
func (*ProxyContext) AddHandler ¶ added in v1.28.1
func (p *ProxyContext) AddHandler(handler *ProxyHandler)
func (*ProxyContext) ClientWritePacket ¶ added in v1.28.1
func (p *ProxyContext) ClientWritePacket(pk packet.Packet) error
func (*ProxyContext) CommandHandlerPacketCB ¶
func (*ProxyContext) Disconnect ¶ added in v1.28.1
func (p *ProxyContext) Disconnect()
Disconnect disconnects both the client and server
func (*ProxyContext) DisconnectClient ¶ added in v1.28.1
func (p *ProxyContext) DisconnectClient()
Disconnect disconnects the client
func (*ProxyContext) DisconnectServer ¶ added in v1.28.1
func (p *ProxyContext) DisconnectServer()
Disconnect disconnects from the server
func (*ProxyContext) IsClient ¶ added in v1.28.1
func (p *ProxyContext) IsClient(addr net.Addr) bool
func (*ProxyContext) LoadCustomUserData ¶ added in v1.28.0
func (p *ProxyContext) LoadCustomUserData(path string) error
func (*ProxyContext) Run ¶
func (p *ProxyContext) Run(ctx context.Context, serverAddress, name string) (err error)
func (*ProxyContext) SendMessage ¶
func (p *ProxyContext) SendMessage(text string)
func (*ProxyContext) SendPopup ¶
func (p *ProxyContext) SendPopup(text string)
type ProxyHandler ¶ added in v1.28.1
type ProxyHandler struct { Name string ProxyRef func(pc *ProxyContext) // AddressAndName func(address, hostname string) error // called to change game data GameDataModifier func(gd *minecraft.GameData) // called for every packet PacketFunc func(header packet.Header, payload []byte, src, dst net.Addr) // called on every packet after login PacketCB func(pk packet.Packet, toServer bool, timeReceived time.Time) (packet.Packet, error) // called after client connected OnClientConnect func(conn minecraft.IConn) SecondaryClientCB func(conn minecraft.IConn) // called after server connected & downloaded resource packs OnServerConnect func() (cancel bool) // called after game started ConnectCB func(err error) bool // called when the proxy stops OnEnd func() }
func NewTransferHandler ¶ added in v1.31.0
func NewTransferHandler() *ProxyHandler
type Skin ¶ added in v1.28.1
func (*Skin) HaveAnimations ¶ added in v1.28.1
func (*Skin) HaveGeometry ¶ added in v1.28.1
func (*Skin) WriteCapePng ¶ added in v1.28.1
WriteCape writes the cape as a png at output_path
type SkinGeometry ¶ added in v1.28.1
type SkinGeometry struct { SkinGeometryDescription Bones []any `json:"bones"` }
type SkinGeometryDescription ¶ added in v1.31.0
type SkinGeometryDescription struct { Identifier string `json:"identifier,omitempty"` Texturewidth int `json:"texturewidth"` Textureheight int `json:"textureheight"` VisibleBoundsWidth float64 `json:"visible_bounds_width"` VisibleBoundsHeight float64 `json:"visible_bounds_height"` VisibleBoundsOffset []float64 `json:"visible_bounds_offset,omitempty"` }
type SkinGeometry_1_12 ¶ added in v1.31.0
type SkinGeometry_1_12 struct { Description SkinGeometryDescription `json:"description"` Bones []any `json:"bones"` }
type SkinPack ¶ added in v1.28.1
type SkinPack struct { Name string // contains filtered or unexported fields }
func NewSkinPack ¶ added in v1.28.1
Source Files ¶
Click to show internal directories.
Click to hide internal directories.