package legacypacket import ( "github.com/akmalfairuz/legacy-version/legacyver/proto" "github.com/sandertv/gophertunnel/minecraft/protocol" "github.com/sandertv/gophertunnel/minecraft/protocol/packet" ) // GameRulesChanged is sent by the server to the client to update client-side game rules, such as game rules // like the 'showCoordinates' game rule. type GameRulesChanged struct { // GameRules defines game rules changed with their respective values. The value of these game rules may be // either 'bool', 'int32' or 'float32'. // Note that some game rules are server side only, and don't necessarily need to be sent to the client. // Only changed game rules need to be sent in this packet. Game rules that were not changed do not need to // be sent if the client is already updated on them. GameRules []protocol.GameRule } // ID ... func (*GameRulesChanged) ID() uint32 { return packet.IDGameRulesChanged } func (pk *GameRulesChanged) Marshal(io protocol.IO) { if proto.IsProtoGTE(io, proto.ID844) { protocol.FuncSlice(io, &pk.GameRules, io.GameRule) } else { protocol.FuncSlice(io, &pk.GameRules, io.GameRuleLegacy) } }