111111#include " mc/world/scores/ScoreboardId.h"
112112#include " mc/world/scores/ScoreboardOperationResult.h"
113113
114- SetScorePacket::SetScorePacket () = default;
114+ SetScorePacket::SetScorePacket () { mType = ScorePacketType::Change; }
115+ ToastRequestPacket::ToastRequestPacket () { mSerializationMode = SerializationMode::ManualOnly; }
116+ ToastRequestPacketPayload::ToastRequestPacketPayload () = default;
117+ SetDisplayObjectivePacket::SetDisplayObjectivePacket () { mSerializationMode = SerializationMode::ManualOnly; }
118+ SetDisplayObjectivePacketPayload::SetDisplayObjectivePacketPayload () { mSortOrder = ObjectiveSortOrder::Ascending; }
119+ RemoveObjectivePacketPayload::RemoveObjectivePacketPayload () = default;
120+ RemoveObjectivePacket::RemoveObjectivePacket () { mSerializationMode = SerializationMode::ManualOnly; }
115121
116122// ////////////////// Class Definition ////////////////////
117123
@@ -746,8 +752,28 @@ Local<Value> McClass::broadcast(Arguments const& args) {
746752 int newType = args[1 ].asNumber ().toInt32 ();
747753 if (newType >= 0 && newType <= 11 ) type = static_cast <TextPacketType>(newType);
748754 }
755+
749756 TextPacket pkt;
750- pkt.mBody = TextPacket::MessageOnly (type, args[0 ].asString ().toString ());
757+ switch (type) {
758+ case TextPacketType::Raw:
759+ case TextPacketType::Tip:
760+ case TextPacketType::SystemMessage:
761+ case TextPacketType::TextObject:
762+ case TextPacketType::TextObjectWhisper:
763+ case TextPacketType::TextObjectAnnouncement:
764+ pkt.mBody = TextPacket::MessageOnly (type, args[0 ].asString ().toString ());
765+ break ;
766+ case TextPacketType::Chat:
767+ case TextPacketType::Whisper:
768+ case TextPacketType::Announcement:
769+ pkt.mBody = TextPacket::AuthorAndMessage (type, " " , args[0 ].asString ().toString ());
770+ break ;
771+ case TextPacketType::Translate:
772+ case TextPacketType::Popup:
773+ case TextPacketType::JukeboxPopup:
774+ pkt.mBody = TextPacket::MessageAndParams (type, args[0 ].asString ().toString (), {});
775+ }
776+
751777 pkt.sendToClients ();
752778 return Boolean::newBoolean (true );
753779 }
@@ -1623,8 +1649,27 @@ Local<Value> PlayerClass::tell(Arguments const& args) const {
16231649 if (newType >= 0 && newType <= 11 ) type = static_cast <TextPacketType>(newType);
16241650 }
16251651
1626- TextPacket pkt = TextPacket ();
1627- pkt.mBody = TextPacket::MessageOnly (type, args[0 ].asString ().toString ());
1652+ TextPacket pkt;
1653+ switch (type) {
1654+ case TextPacketType::Raw:
1655+ case TextPacketType::Tip:
1656+ case TextPacketType::SystemMessage:
1657+ case TextPacketType::TextObject:
1658+ case TextPacketType::TextObjectWhisper:
1659+ case TextPacketType::TextObjectAnnouncement:
1660+ pkt.mBody = TextPacket::MessageOnly (type, args[0 ].asString ().toString ());
1661+ break ;
1662+ case TextPacketType::Chat:
1663+ case TextPacketType::Whisper:
1664+ case TextPacketType::Announcement:
1665+ pkt.mBody = TextPacket::AuthorAndMessage (type, " " , args[0 ].asString ().toString ());
1666+ break ;
1667+ case TextPacketType::Translate:
1668+ case TextPacketType::Popup:
1669+ case TextPacketType::JukeboxPopup:
1670+ pkt.mBody = TextPacket::MessageAndParams (type, args[0 ].asString ().toString (), {});
1671+ }
1672+
16281673 player->sendNetworkPacket (pkt);
16291674 return Boolean::newBoolean (true );
16301675 }
@@ -2249,9 +2294,6 @@ Local<Value> PlayerClass::deleteScore(Arguments const& args) const {
22492294 CATCH_AND_THROW
22502295}
22512296
2252- SetDisplayObjectivePacket::SetDisplayObjectivePacket () = default;
2253- SetDisplayObjectivePacketPayload::SetDisplayObjectivePacketPayload () = default;
2254-
22552297Local<Value> PlayerClass::setSidebar (Arguments const & args) const {
22562298 CHECK_ARGS_COUNT (args, 2 );
22572299 CHECK_ARG_TYPE (args[0 ], ValueKind::kString );
@@ -2266,7 +2308,7 @@ Local<Value> PlayerClass::setSidebar(Arguments const& args) const {
22662308 auto source = args[1 ].asObject ();
22672309 auto keys = source.getKeyNames ();
22682310 for (auto & key : keys) {
2269- data.push_back ( make_pair ( key, source.get (key).asNumber ().toInt32 () ));
2311+ data.emplace_back ( key, source.get (key).asNumber ().toInt32 ());
22702312 }
22712313
22722314 int sortOrder = 1 ;
@@ -2298,9 +2340,6 @@ Local<Value> PlayerClass::setSidebar(Arguments const& args) const {
22982340 CATCH_AND_THROW
22992341}
23002342
2301- RemoveObjectivePacketPayload::RemoveObjectivePacketPayload () = default;
2302- RemoveObjectivePacket::RemoveObjectivePacket () = default;
2303-
23042343Local<Value> PlayerClass::removeSidebar (Arguments const &) const {
23052344 try {
23062345 Player* player = get ();
@@ -3532,9 +3571,6 @@ Local<Value> PlayerClass::removeItem(Arguments const& args) const {
35323571 CATCH_AND_THROW
35333572}
35343573
3535- ToastRequestPacket::ToastRequestPacket () = default;
3536- ToastRequestPacketPayload::ToastRequestPacketPayload () = default;
3537-
35383574Local<Value> PlayerClass::sendToast (Arguments const & args) const {
35393575 CHECK_ARGS_COUNT (args, 2 );
35403576 CHECK_ARG_TYPE (args[0 ], ValueKind::kString );
0 commit comments