<snapdata remixID="12221926"><project name="mqtt cooperation2" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes>https://forum.snap.berkeley.edu/t/simple-moving-game-with-mqtt/13060</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAABE5JREFUeF7tnT9OonEURX+EAmJFYmHLFuxYBvSEXbgBW2t3YA/LoGMLbICEhISgCTL5vgTyjf+4jt7R93JsjHi5vHfegUw1tg6Hw6HwBYEfItAaDoe1gNPp9MMRhsNhabVarzLnnvdDe/GyQQjUAlYfgrPZrB55NBqdRm8+/vJ3lYzPz8+n5wXZlzF/GYFawOanWFPAl49XP1efhNXX8dOQT8BfdtFg47Te+zfgZDIpV1dX5e7uLthKjBuJwLsCRlqCWeMSQMC4t0sxOQKmOGPcJRAw7u1STI6AKc4YdwkEjHu7FJMjYIozxl0CAePeLsXkCJjijHGXQMC4t0sxOQKmOGPcJRAw7u1STI6AKc4YdwkEjHu7FJMjYIozxl0CAePeLsXkCJjijHGXQMC4t0sxOQKmOGPcJRAw7u1STI6AKc4YdwkEjHu7FJMjYIozxl0CAePeLsXkCJjijHGXQMC4t0sxOQKmOGPcJRAw7u1STI6AKc4YdwkEjHu7FJMjYIozxl0CAePeLsXkCJjijHGXQMC4t0sxOQKmOGPcJRDwG2633W7LxcXFNzT934rfMDcCNm5e/YWAf/lf/9frden1eqemlz9Xvzgeu/r+9PT0V17RbrfblW63W0dXq1W5vLw8+7Rz+xznVPuOL3iu9+xgjQACfkLA5XJZ+v3+K74fCfj4+Fg6nU7Z7/el3W7X3zebTS3gzc3N6a8QVN339/fv/tx8UUWcxWJRbm9vX72hqsevr6/rumPPW2+Y5uuNx+Py8PBweggBP/MWI/tlAvP5vAwGgy/3vFXAJ6AFK6UqAQRUSZGzEEBAC1ZKVQIIqJIiZyGAgBaslKoEEFAlRc5CAAEtWClVCSCgSoqchQACWrBSqhJAQJUUOQsBBLRgpVQlgIAqKXIWAghowUqpSgABVVLkLAQQ0IKVUpUAAqqkyFkIIKAFK6UqAQRUSZGzEEBAC1ZKVQIIqJIiZyGAgBaslKoEEFAlRc5CAAEtWClVCSCgSoqchQACWrBSqhJAQJUUOQsBBLRgpVQlgIAqKXIWAghowUqpSgABVVLkLAQQ0IKVUpUAAqqkyFkIIKAFK6UqAQRUSZGzEEBAC1ZKVQIIqJIiZyGAgBaslKoEEFAlRc5CAAEtWClVCSCgSoqchQACWrBSqhJAQJUUOQsBBLRgpVQlgIAqKXIWAghowUqpSgABVVLkLAQQ0IKVUpUAAqqkyFkIIKAFK6UqAQRUSZGzEEBAC1ZKVQIIqJIiZyGAgBaslKoEEFAlRc5CAAEtWClVCSCgSoqchQACWrBSqhJAQJUUOQsBBLRgpVQlgIAqKXIWAghowUqpSgABVVLkLAQQ0IKVUpUAAqqkyFkIIKAFK6UqAQRUSZGzEEBAC1ZKVQIIqJIiZyGAgBaslKoEEFAlRc5CAAEtWClVCSCgSoqchQACWrBSqhJAQJUUOQsBBLRgpVQlgIAqKXIWAn8ASoprt+CgsGwAAAAASUVORK5CYII=</thumbnail><scenes select="1"><scene name="mqtt cooperation2"><notes>https://forum.snap.berkeley.edu/t/simple-moving-game-with-mqtt/13060</notes><palette><category name="MQTT" color="143,0,100,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="$cloudOutline MQTT connect to %&apos;broker&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="416.6666666666666" collapsed="false">Connect to a broker&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1. username (some brokers need this)&#xD;2. password (some brokers need this)&#xD;3. keepalive (default time is 60 seconds but some brokers need a shorter time)&#xD;4. connection callback (ringed set of scripts to be run when connection is made or remade)&#xD;&#xD;Note: The connection callback doesn&apos;&apos;t have to be the 4th option - it just has to be the last (or only) option.&#xD;&#xD;ADVANCED: The brokers offered in the menu are accessed using default ports and  basepaths (if needed).  If accessing other brokers, the complete urls should be formed like this:&#xD;&#xD;siteURL:port/basepath &#xD;e.g mqtt.eclipseprojects.io:443/mqtt&#xD;&#xD;&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script></block><block s="doDeclareVariables"><list><l>connection status</l><l>callback</l></list></block><block s="doSetVar"><l>connection status</l><l>connecting</l></block><block s="doSetVar"><l>callback</l><l></l></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l><option>last</option></l><block var="options"/></block><l><option>command</option></l></block><script><block s="doSetVar"><l>callback</l><block s="reportListItem"><l><option>last</option></l><block var="options"/></block></block><block s="doDeleteFromList"><l><option>last</option></l><block var="options"/></block></script></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>username</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>password</l><block s="reportListItem"><l>2</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>keepalive</l><block s="reportListItem"><l>3</l><block var="options"/></block></list></block></list></block></block></block><block s="doApplyExtension"><l>mqt_connect(broker,callback,options)</l><list><block var="broker"/><block var="callback"/><block var="options"/></list></block><block s="doWaitUntil"><block s="reportNot"><block s="reportEquals"><block var="connection status"/><l>connecting</l></block></block></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="connection status"/><l>connected</l></block></block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="connection status"/></list></block></script></block></script></block-definition><block-definition s="$cloudOutline MQTT publish to %&apos;broker&apos; topic %&apos;topic&apos; payload %&apos;payload&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="200" collapsed="false">Publish a message to an MQTT broker&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1. qos (quality of service 0,1 or 2)&#xD;2. retain flag (boolean)&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%s">hello</input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>qos</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>retain</l><block s="reportListItem"><l>2</l><block var="options"/></block></list></block></list></block></block></block><block s="doIf"><block s="reportIsA"><block var="payload"/><l><option>list</option></l></block><script><block s="doSetVar"><l>payload</l><block s="reportListAttribute"><l><option>json</option></l><block var="payload"/></block></block></script></block><block s="doIf"><block s="reportIsA"><block var="payload"/><l><option>number</option></l></block><script><block s="doSetVar"><l>payload</l><block s="reportJoinWords"><list><block var="payload"/></list></block></block></script></block><block s="doApplyExtension"><l>mqt_pub(broker,topic,payload,options)</l><list><block var="broker"/><block var="topic"/><block var="payload"/><block var="options"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT subscribe to %&apos;broker&apos; topic %&apos;topic&apos; $nl on each message run %&apos;callback&apos;" type="command" category="MQTT"><comment x="0" y="0" w="216.9999999999999" collapsed="false">Subscribe to a topic on a broker&#xD;&#xD;Make sure you have already run an MQTT connect block before using this one&#xD;&#xD;You should add a script to be run inside he grey ring.&#xD;&#xD;It will be run each time a message is received&#xD;&#xD;If you click on the arrow on the grey ring twice, you can use #1 and #2 inside your script.&#xD;&#xD;#1 will contain the received payload&#xD;&#xD;#2 will contain the received topic name</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%cmdRing"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doApplyExtension"><l>mqt_sub(broker,topic,callback,options)</l><list><block var="broker"/><block var="topic"/><block var="callback"/><l></l></list></block></script></block-definition><block-definition s="$cloudOutline MQTT unsubscribe from %&apos;broker&apos; topic %&apos;topic&apos;" type="command" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doApplyExtension"><l>mqt_unsub(broker,topic)</l><list><block var="broker"/><block var="topic"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT disconnect from %&apos;broker&apos;" type="command" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">all<options>all&#xD;broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doApplyExtension"><l>mqt_disconnect(broker)</l><list><block var="broker"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT response %&apos;broker&apos; topic %&apos;topic&apos; $nl reply %&apos;reply&apos;" type="command" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>resp</l><l>callbackTopic</l><l>error</l></list></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing"><block var="broker"/><block var="topic"/><block s="reifyScript"><script><block s="doIf"><block s="reportGreaterThan"><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><l>/@</l><block var="received topic"/></list></block><l>0</l></block><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block s="evaluate"><block var="reply"/><list><block var="received payload"/><block var="received topic"/></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block s="evaluate"><block var="reply"/><list></list></block></block></script><list></list></block><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doSetVar"><l>callbackTopic</l><block s="reportListItem"><l><option>last</option></l><block s="reportTextSplit"><block var="received topic"/><l>@</l></block></block></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %s %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="callbackTopic"/><block var="resp"/><list><l></l></list></custom-block></script></block></script><list><l>received payload</l><l>received topic</l></list></block></custom-block></script></block-definition><block-definition s="$cloudOutline MQTT request %&apos;broker&apos; topic %&apos;topic&apos; $nl response topic %&apos;rtopic&apos; payload %&apos;payload&apos; $nl on response run %&apos;callback&apos;" type="command" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%s">name2</input><input type="%s">hello</input><input type="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>error</l></list></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block><block s="reifyScript"><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doRun"><block var="callback"/><list><block var="received payload"/><block var="received topic"/></list></block></script><list></list></block><block s="reifyScript"><script><block s="doRun"><block var="callback"/><list></list></block></script><list></list></block><block var="error"/></list></block></script><list><l>received payload</l><l>received topic</l></list></block></custom-block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %s %br $options-1-192-192-192 %mult%s"><block var="broker"/><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block><block var="payload"/><list><l></l></list></custom-block></script></block-definition><block-definition s="$cloudOutline MQTT example response reporter payload %&apos;payload&apos; topic %&apos;topic&apos;" type="reporter" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">hello</input><input type="%txt">name</input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>Echo: </l><block var="payload"/></list></block></block></script></block-definition><block-definition s="$cloudOutline MQTT request %&apos;broker&apos; topic %&apos;topic&apos; $nl response topic %&apos;rtopic&apos; payload %&apos;payload&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="reporter" category="MQTT"><comment x="0" y="0" w="343" collapsed="false">The response topic should be a unique value for each call e.g. use timer&#xD;&#xD;There is only 1 option at present&#xD;1.  Timeout value - default is 3 seconds</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%s">name2</input><input type="%s">hello</input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>resp</l><l>semaphore</l><l>timer0</l><l>timeout</l></list></block><block s="doSetVar"><l>semaphore</l><l>0</l></block><block s="doSetVar"><l>timeout</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="options"/></block><l><option>number</option></l></block><block s="reportListItem"><l>1</l><block var="options"/></block><l>3</l></block></block><block s="doSetVar"><l>resp</l><l>timeout</l></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block var="received payload"/></block><block s="doSetVar"><l>semaphore</l><l>1</l></block></script><list><l>received payload</l><l>received topic</l></list></block></custom-block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %s %br $options-1-192-192-192 %mult%s"><block var="broker"/><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block><block var="payload"/><list><l></l></list></custom-block><block s="doSetVar"><l>timer0</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doWaitUntil"><block s="reportOr"><block s="reportEquals"><block var="semaphore"/><l>1</l></block><block s="reportGreaterThan"><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="timer0"/></block><block s="reportVariadicProduct"><list><block var="timeout"/><l>1000</l></list></block></block></block></block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block></custom-block><block s="doReport"><block var="resp"/></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="535"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="536"></list></costumes><sounds><list struct="atomic" id="537"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="-192" y="168" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="80,80,80,1" pen="tip" id="542"><costumes><list struct="atomic" id="543"></list></costumes><sounds><list struct="atomic" id="544"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="10"><block s="receiveKey"><l><option>j</option></l><list></list></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %s %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>returnsync move</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><block s="getLastAnswer"></block><block s="reportDate"><l><option>time in milliseconds</option></l></block><l></l></list></block><block s="reportNewList"><list><l>0</l><l>0</l></list></block></list></block></list></block></block><list></list><comment w="90" collapsed="false">jump starter</comment></custom-block></script><script x="20" y="154.66666666666652"><block s="receiveGo"></block><block s="doAsk"><l>what&apos;s your name?</l></block><block s="doDeclareVariables"><list><l>data</l><l>position</l><l>answer</l></list></block><custom-block s="$cloudOutline MQTT connect to %s %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><list></list></custom-block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing"><l>mqtt.eclipseprojects.io</l><l>returnsync move</l><block s="reifyScript"><script><block s="doSetVar"><l>data</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block></script><list><l>#1</l></list></block></custom-block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %s %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>sync move</l><block s="getLastAnswer"></block><list></list></custom-block><block s="doWaitUntil"><block var="data"/></block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><l>mqtt.eclipseprojects.io</l><l>returnsync move</l></custom-block><block s="doSetVar"><l>position</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing"><l>mqtt.eclipseprojects.io</l><l>sync move</l><block s="reifyScript"><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportNewList"><list><block var="#1"/><block s="reportDate"><l><option>time in milliseconds</option></l></block><l></l></list></block><block s="reportNewList"><list><l>0</l><l>0</l></list></block></list></block><block var="data"/></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %s %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>returnsync move</l><block s="reportListAttribute"><l><option>json</option></l><block var="data"/></block><list></list></custom-block></script><list><l>#1</l></list></block></custom-block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing"><l>mqtt.eclipseprojects.io</l><l>packet move</l><block s="reifyScript"><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block><block var="data"/><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block></block></script><list><l>#1</l></list></block></custom-block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing"><l>mqtt.eclipseprojects.io</l><block s="reportJoinWords"><list><l>ping </l><block var="position"/><l> move</l></list></block><block s="reifyScript"><script><block s="gotoXY"><l>-240</l><l>168</l></block><block s="write"><block s="reportJoinWords"><list><l>Ping:</l><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="#1"/></block></list></block><l>12</l></block></script><list><l>#1</l></list></block></custom-block><block s="hide"></block><block s="doForever"><script><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %s %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><block s="reportJoinWords"><list><l>ping </l><block var="position"/><l> move</l></list></block><block s="reportDate"><l><option>time in milliseconds</option></l></block><list></list></custom-block><block s="doIf"><block s="reportKeyPressed"><l><option>t</option></l></block><script><block s="doIf"><block s="reportOr"><l><bool>false</bool></l><block s="reportEquals"><l>this is a violation of tos</l><l>true</l></block></block><script><block s="doAsk"><l>chat?</l></block><block s="doSetVar"><l>answer</l><block s="getLastAnswer"></block></block></script></block></script></block><block s="doIf"><block s="reportNot"><block s="reportKeyPressed"><l><option>g</option></l></block></block><script><block s="doIfElse"><block var="answer"/><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block var="position"/><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="position"/><block var="data"/></block></block></block><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="answer"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportNewList"><list><block s="reportDifference"><block s="reportKeyPressed"><l><option>d</option></l></block><block s="reportKeyPressed"><l><option>a</option></l></block></block><block s="reportDifference"><block s="reportKeyPressed"><l><option>w</option></l></block><block s="reportKeyPressed"><l><option>s</option></l></block></block></list></block><l>10</l></list></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="position"/><block var="data"/></block></block></list></block></list></block></list></block></block></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %s %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>packet move</l><block var="a"/><list></list></custom-block></script><script><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %s %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>packet move</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block var="position"/><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="position"/><block var="data"/></block></block></block><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportListItem"><l>3</l><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="position"/><block var="data"/></block></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportNewList"><list><block s="reportDifference"><block s="reportKeyPressed"><l><option>d</option></l></block><block s="reportKeyPressed"><l><option>a</option></l></block></block><block s="reportDifference"><block s="reportKeyPressed"><l><option>w</option></l></block><block s="reportKeyPressed"><l><option>s</option></l></block></block></list></block><l>10</l></list></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="position"/><block var="data"/></block></block></list></block></list></block></list></block></block><list></list></custom-block></script></block></script></block><block s="clear"></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="data"/><script><block s="doIf"><block s="reportLessThan"><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="item"/></block></block></block><l>10000</l></block><script><block s="doGotoObject"><block s="reportListItem"><l>2</l><block var="item"/></block></block><block s="write"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="item"/></block></block><l>12</l></block><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="reportNewList"><list><l>0</l><l>20</l></list></block><block s="reportListItem"><l>2</l><block var="item"/></block></list></block></block><block s="write"><block s="reportListItem"><l>3</l><block s="reportListItem"><l>1</l><block var="item"/></block></block><l>12</l></block></script></block></script></block></script></block></script></block></script><script x="282" y="966.0000000000009"><block s="doUntil"><block s="reportEquals"><block s="reportListItem"><block var="position"/><block var="data"/></block><block var="a"/></block><script><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %s %br $options-1-192-192-192 %mult%s"><l>mqtt.eclipseprojects.io</l><l>packet move</l><block var="a"/><list></list></custom-block></script></block><block s="doSetVar"><l>answer</l><l>0</l></block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="mqtt cooperation2" app="Snap! 7, https://snap.berkeley.edu" version="2"></media></snapdata>