Lunar OS (Part 4)

Also can you make a cloud message system?

That was not my cloud var blocks.Mine are JS free.

Hey, could you make a cloud message server?

But it needs JS :frowning:
client is
https://snap.berkeley.edu/snap/snap.html#present:Username=18001767679&ProjectName=meshes
@sir_kitten2

I know, but yours doesnt work eigther. Order of operations: get cloud id, cache cloud vars, set cloud vars, retrieve cloud vars and reports nothing. (P.S. you wont be able to see it in my project; I recovered a working version.)

Hmm?It works for me

Nooooooooooooooooooooooooo!
Previous versions all use JS!

Im not talking about your blocks, plus could you please impliment your blocks here:
Snap! 6.9.0 Build Your Own Blocks Please dont change any other code than what you need, Lunar OS uses JS, and has its own detection system to detect is JS Extensions are enabled, and will redirect you to a Lunar OS Safe Mode if JS Extensions are off.

Blocks xml:

<blocks app="Snap! 6, https://snap.berkeley.edu" version="1"><block-definition s="set cloud var %&apos;cloud&apos; to %&apos;value&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="fork"><block s="reifyScript"><script><custom-block s="ignore %s"><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><block s="reportJoinWords"><list><l>set/</l><custom-block s="cloud ID"></custom-block><l>/</l><block var="cloud"/><l>/</l><block var="value"/><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block></custom-block></script><list></list></block><list></list></block></script></block-definition><block-definition s="ignore %&apos;s&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cloud var %&apos;s&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doForEach"><l>item</l><block var="varcache"/><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="item"/></block><block var="s"/></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="item"/></block></block></script></block></script></block></script><scripts><script x="373" y="44.666666666666686"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return varcache[a];</l></block><list><block var="s"/></list></block></script></scripts></block-definition><block-definition s="cloud ID %&apos;m&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>cloudid</l><block var="m"/></block><custom-block s="ping %upvar"><l>error</l></custom-block><block s="doIf"><block var="error"/><script><custom-block s="sign up"></custom-block></script></block></script><scripts><script x="196" y="86.80000000000001"><block s="doDeclareVariables"><list><l>s</l></list></block><block s="doSetVar"><l>s</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return location.hash.replace("#","")</l></block><list></list></block></block><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>cloudid = a||"default";</l></block><list><block var="s"/></list></block></script></scripts></block-definition><block-definition s="cloud ID" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block var="cloudid"/></block></script></block-definition><block-definition s="username" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>An anonymous guy</l></block></script><scripts><script x="131" y="97.63333333333333"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.parentThatIsA(IDE_Morph).cloud.username</l></block><list></list></block></script></scripts></block-definition><block-definition s="cache cloud vars %&apos;var&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="fork"><block s="reifyScript"><script><block s="doSetVar"><l>varcache</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="var"/><script><block s="doAddToList"><block s="reportNewList"><list><block var="item"/><l>0</l></list></block><block var="varcache"/></block></script></block><block s="doForever"><script><block s="doForEach"><l>item</l><block var="var"/><script><block s="doForEach"><l>jtem</l><block var="varcache"/><script><block s="doIf"><block s="reportEquals"><block var="item"/><block s="reportListItem"><l>1</l><block var="jtem"/></block></block><script><block s="doReplaceInList"><l>2</l><block var="jtem"/><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><l>get/</l><block s="reportJoinWords"><list><custom-block s="cloud ID"></custom-block><l>/</l><block var="item"/><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block></block></script></block></script></block></script></block></script></block></script><list></list></block><list></list></block></script><scripts><script x="33" y="404.33333333333366"><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doRun"><block s="reportJSFunction"><list><l>t</l></list><l>console.log("Cached vars!Time used:"+t+"ms")</l></block><list><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="a"/></block></list></block></script></scripts></block-definition><block-definition s="listify %&apos;s&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>c</l><l>e</l></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>c</l><block s="reportTextSplit"><block var="s"/><l><option>letter</option></l></block></block><block s="doSetVar"><l>e</l><l>0</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="e"/><block s="reportListAttribute"><l><option>length</option></l><block var="c"/></block></block><script><block s="doChangeVar"><l>e</l><l>1</l></block><block s="doIfElse"><block s="reportAnd"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block var="e"/><block var="c"/></block><l>|</l></block><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><block s="reportSum"><block var="e"/><l>1</l></block><block var="c"/></block><l>|</l></block></block></block><block s="reportNot"><block s="reportEquals"><block s="reportListItem"><block s="reportDifference"><block var="e"/><l>1</l></block><block var="c"/></block><l>|</l></block></block></block><script><block s="doAddToList"><l></l><block var="a"/></block><block s="doChangeVar"><l>e</l><l>1</l></block></script><script><block s="doReplaceInList"><l><option>last</option></l><block var="a"/><block s="reportJoinWords"><list><block s="reportListItem"><l><option>last</option></l><block var="a"/></block><block s="reportListItem"><block var="e"/><block var="c"/></block></list></block></block></script></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="replace %s %s %s"><l></l><l>||</l><l>|</l></custom-block></autolambda><list></list></block><block var="a"/></block></block></script></block-definition><block-definition s="replace %&apos;s&apos; %&apos;x&apos; %&apos;y&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportTextSplit"><block var="s"/><block var="x"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><block var="y"/><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="stringify %&apos;s&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>| </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="replace %s %s %s"><l></l><l>|</l><l>||</l></custom-block></autolambda><list></list></block><block var="s"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l>| </l><l></l></list></block></autolambda><list></list></block></block></list></block></block></script></block-definition><block-definition s="add %&apos;s&apos; to cloud list %&apos;v&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="v"/></custom-block></custom-block></block><block s="doAddToList"><block var="s"/><block var="a"/></block><custom-block s="set cloud var %s to %s"><block var="v"/><custom-block s="stringify %l"><block var="a"/></custom-block></custom-block></script></block-definition><block-definition s="delete %&apos;s&apos; of cloud list %&apos;v&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="v"/></custom-block></custom-block></block><block s="doDeleteFromList"><block var="s"/><block var="a"/></block><custom-block s="set cloud var %s to %s"><block var="v"/><custom-block s="stringify %l"><block var="a"/></custom-block></custom-block></script></block-definition><block-definition s="insert %&apos;s&apos; at %&apos;l&apos; of cloud list %&apos;v&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="v"/></custom-block></custom-block></block><block s="doInsertInList"><block var="s"/><block var="l"/><block var="a"/></block><custom-block s="set cloud var %s to %s"><block var="v"/><custom-block s="stringify %l"><block var="a"/></custom-block></custom-block></script></block-definition><block-definition s="replace item %&apos;l&apos; of cloud list %&apos;v&apos; with %&apos;s&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="v"/></custom-block></custom-block></block><block s="doReplaceInList"><block var="l"/><block var="a"/><block var="s"/></block><custom-block s="set cloud var %s to %s"><block var="v"/><custom-block s="stringify %l"><block var="a"/></custom-block></custom-block></script></block-definition><block-definition s="item %&apos;s&apos; of cloud list %&apos;v&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><block var="s"/><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="v"/></custom-block></custom-block></block></block></script></block-definition><block-definition s="ping %&apos;error&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><block s="reportJoinWords"><list><l>ping/</l><custom-block s="cloud ID"></custom-block><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block><l>None</l></block><script><block s="doSetVar"><l>error</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doSetVar"><l>error</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="sign up" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="ignore %s"><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><block s="reportJoinWords"><list><l>signup/</l><custom-block s="cloud ID"></custom-block><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block></custom-block></script></block-definition><block-definition s="cloud list %&apos;g&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="g"/></custom-block></custom-block></block></script></block-definition><block-definition s="all cloud vars" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><l>cvs/</l><block s="reportJoinWords"><list><custom-block s="cloud ID"></custom-block><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block><l>,</l></block></block><block s="doReplaceInList"><l>1</l><block var="a"/><custom-block s="all but first letter of %txt"><block s="reportListItem"><l>1</l><block var="a"/></block></custom-block></block><block s="doReplaceInList"><l><option>last</option></l><block var="a"/><custom-block s="all but last letter of %txt"><block s="reportListItem"><l><option>last</option></l><block var="a"/></block></custom-block></block><block s="doReport"><block var="a"/></block></script><scripts><script x="434.9951171875" y="139.90000000000015"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return new List(eval(a))</l></block><list><l></l></list></block></script></scripts></block-definition><block-definition s="delete cloud var %&apos;cloud&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="fork"><block s="reifyScript"><script><custom-block s="ignore %s"><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><block s="reportJoinWords"><list><l>del/</l><custom-block s="cloud ID"></custom-block><l>/</l><block var="cloud"/><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block></custom-block></script><list></list></block><list></list></block></script></block-definition><block-definition s="all but first letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="199" collapsed="false">Takes a text string as input, and reports a new text string containing all but the first character of the input.</comment><header></header><code></code><translations>pt:_ sem o primeiro caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script><scripts><script x="211" y="408"><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>str</l></list><l>return str.slice(1);</l></block><list><block s="errorObsolete"></block></list></block></block></script></scripts></block-definition><block-definition s="all but last letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="218" collapsed="false">Takes a text string as input, and reports a new text string containing all but the last letter of the input.</comment><header></header><code></code><translations>pt:_ sem o último caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but last letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportEquals"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script><scripts><script x="145.9951171875" y="332.6666666666667"><block s="evaluate"><block s="reportJSFunction"><list><l>str</l></list><l>return str.slice(0,-1);</l></block><list><block s="errorObsolete"></block></list></block></script></scripts></block-definition></blocks>

When I emit a message it displays the last message I emited.

Please make a copy, and give me the name of the project so I can get the data please.

https://snap.berkeley.edu/snap/snap.html#present:Username=18001767679&ProjectName=Lunar%20OS

Intended behaviour

Yes it works

wdym?

It's intended behaviour

the project or server?

project

restart the program

ooofie

Supposed to happen. Look at the project screen.