31.10.2017, 14:27
Od v2.3.2 możliwe będzie wysyłanie przez komendy tworzone przez graczy etykiet pokazywanych po najechaniu na tekst, klikalnych linków, sugestii na chacie, a nawet klikalnych komend. W tym celu został utworzony nowy język bazujący na składni XML - dokumentacja poniżej.
Tagi:
Przykład - style wbudowane:
Jak można zauważyć za pomocą stylu można definiować nowe tagi - w tym przypadku jest to prefix: p. <p>Serwer</p> zmieni się w na złoty napis "Serwer»", a <p/> zmieni się w sam złoty znak "»".
Przykład - kod komendy:
clickable.xml:
Rezultat:
Na potrzeby formatowania pojawił się tag <f> o podobnym działaniu jak <span> z HTMLa - mógłby nazywać się inaczej. Dodatkowo w zwracanym JSONie został zadeklarowany własny styl nadający sugestiom kolor różowy zamiast wbudowanego żółtego.
Tagi:
- label: <l>etykieta</l> - ustawia etykietę wyświetlaną po najechaniu dla elementu w którym się znajduje.
- command: <cmd v="/pomoc">tekst</cmd> - klikalna komenda z niezmienną etykietą "» /komenda".
- suggest: <sgt v="/mod cuboid na <budowla>">tekst</sgt> - klikalna sugestia wstawiana na chat.
- url: <url v="https://fcraft.pl">tekst</url> - klikalny link.
- new line: <n/> - tworzy nową linię.
- value: v - wymieniony wcześniej atrybut dla tagów <cmd>, <sgt> oraz <url>.
- style: s - określa formatowanie elementu, może zostać użyty dla dowolnego tagu.
- format - formatowanie elementu składające się z koloru (black, navy, green, teal, maroon, purple, gold, gray; white, blue, lime, aqua, red, pink, yellow, silver) oraz efektów (bold, italic, underline, strikethrough, obfuscate).
- before - tekst dodawany na początku elementu.
- after - tekst dodawany na końcu elementu.
Przykład - style wbudowane:
Kod:
{
"style": {
"p": {
"format": "gold",
"after": "»"
},
"cmd": {
"format": "yellow"
},
"sgt": {
"format": "yellow"
},
"url": {
"format": "aqua"
}
}
}
Przykład - kod komendy:
Kod PHP:
echo(json_encode([
'content' => str_replace('%nick%', $_POST['nick'], file_get_contents('clickable.xml')),
'style' => [
'sgt' => [
'format' => 'pink'
]
]
]));
Kod:
<p>API</p> <f s="bold">Test interaktywnego tekstu:</f><n/>
<p/> Formatowanie: <f s="red">czerwony tekst</f>, <f s="lime underline italic">limonkowy tekst</f>, <f s="gold obfuscate">magia!</f><n/><n/>
<p/> Komendy: <cmd v="/msg %nick% Właśnie uruchomiłeś komendę /msg %nick%">kliknij mnie</cmd><n/>
<p/> Sugestie: <sgt v="/mod proszę o cuboida na <nazwa budowli>">kliknij mnie
<l>Kliknij, aby poprosić o <f s="underline">cuboida</f>!</l></sgt><n/>
<p/> Linki: <url v="https://fcraft.pl/">kliknij mnie
<l>Kliknij, aby otworzyć <f s="gold bold">forum</f>!</l></url>
Na potrzeby formatowania pojawił się tag <f> o podobnym działaniu jak <span> z HTMLa - mógłby nazywać się inaczej. Dodatkowo w zwracanym JSONie został zadeklarowany własny styl nadający sugestiom kolor różowy zamiast wbudowanego żółtego.