MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / receiveMessage

Method receiveMessage

source/game/StarPlayer.cpp:766–833  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

764}
765
766Maybe<Json> Player::receiveMessage(ConnectionId fromConnection, String const& message, JsonArray const& args) {
767 bool localMessage = fromConnection == world()->connection();
768 if (message == "queueRadioMessage" && args.size() > 0) {
769 float delay = 0;
770 if (args.size() > 1 && args.get(1).canConvert(Json::Type::Float))
771 delay = args.get(1).toFloat();
772
773 queueRadioMessage(args.get(0), delay);
774 } else if (message == "warp") {
775 Maybe<String> animation;
776 if (args.size() > 1)
777 animation = args.get(1).toString();
778
779 bool deploy = false;
780 if (args.size() > 2)
781 deploy = args.get(2).toBool();
782
783 setPendingWarp(args.get(0).toString(), animation, deploy);
784 } else if (message == "interruptRadioMessage") {
785 m_interruptRadioMessage = true;
786 } else if (message == "playCinematic" && args.size() > 0) {
787 bool unique = false;
788 if (args.size() > 1)
789 unique = args.get(1).toBool();
790 setPendingCinematic(args.get(0), unique);
791 } else if (message == "playAltMusic" && args.size() > 0) {
792 float fadeTime = args.size() > 1 ? args.get(1).toFloat() : 0.f;
793 int loops = args.size() > 2 ? args.get(2).toInt() : -1;
794 StringList trackList;
795 if (args.get(0).canConvert(Json::Type::Array))
796 trackList = jsonToStringList(args.get(0).toArray());
797 else
798 trackList = StringList();
799 m_pendingAltMusic = pair<Maybe<pair<StringList, int>>, float>(make_pair(trackList, loops), fadeTime);
800 } else if (message == "stopAltMusic") {
801 float fadeTime = 0;
802 if (args.size() > 0)
803 fadeTime = args.get(0).toFloat();
804 m_pendingAltMusic = pair<Maybe<pair<StringList, int>>, float>({}, fadeTime);
805 } else if (message == "recordEvent") {
806 statistics()->recordEvent(args.at(0).toString(), args.at(1));
807 } else if (message == "addCollectable") {
808 auto collection = args.get(0).toString();
809 auto collectable = args.get(1).toString();
810 if (Root::singleton().collectionDatabase()->hasCollectable(collection, collectable))
811 addCollectable(collection, collectable);
812 } else {
813 Maybe<Json> result = m_tools->receiveMessage(message, localMessage, args);
814 if (!result)
815 result = m_statusController->receiveMessage(message, localMessage, args);
816 if (!result)
817 result = m_companions->receiveMessage(message, localMessage, args);
818 if (!result)
819 result = m_deployment->receiveMessage(message, localMessage, args);
820 if (!result)
821 result = m_techController->receiveMessage(message, localMessage, args);
822 if (!result)
823 result = m_questManager->receiveMessage(message, localMessage, args);

Callers 1

updateMethod · 0.45

Calls 15

jsonToStringListFunction · 0.85
StringListClass · 0.85
singletonClass · 0.85
canConvertMethod · 0.80
toFloatMethod · 0.80
toBoolMethod · 0.80
toIntMethod · 0.80
toArrayMethod · 0.80
recordEventMethod · 0.80
hasCollectableMethod · 0.80
collectionDatabaseMethod · 0.80
handleMessageMethod · 0.80

Tested by

no test coverage detected