Примеры

Пример .mixin.ss теперь лежит в run/sscripts/mixin_example.mixin.ss.

Базовый пример: run это центр SScript

on player_join(player):
    run "say [SScript] " + player.name + " зашел"
    run "effect give " + player.name + " minecraft:speed 10 0 true"
    run "tellraw " + player.name + " {\"text\":\"Добро пожаловать!\",\"color\":\"green\"}"
end

Это главный сценарий: скрипт реагирует на событие, run исполняет реальные серверные команды.

Функция + run

func reward(player_name):
    run "give " + player_name + " minecraft:diamond 1"
    run "xp add " + player_name + " 5 levels"
end

on block_break(player, block):
    if block.id == "minecraft:diamond_ore":
        reward(player.name)
    end
end

Лог чата

on player_chat(player, message):
    file_mkdirs("sscripts/logs")
    line = player.name + ": " + message + "\n"
    file_append("sscripts/logs/chat.log", line)
end

Синхронизация погоды

func sync_weather():
    headers = {
        "Accept": "application/json",
        "User-Agent": "SScriptWeatherSync/1.0"
    }

    resp = http_get("https://api.open-meteo.com/v1/forecast?latitude=55.75&longitude=37.61&current=temperature_2m", headers, 10)

    if resp.ok:
        file_mkdirs("sscripts/data")
        file_write_json("sscripts/data/weather.json", resp.json)
        log "weather saved"
    else:
        log "weather request failed: " + str(resp.status)
    end
end

on load:
    while true:
        sync_weather()
        sleep 600
    end
end

Реакция на установку блока

on block_place(player, block):
    run "tellraw " + player.name + " {\"text\":\"Поставлен блок: " + block.id + "\"}"
end

Запуск скрипта из консоли (/sscript run)

/sscript run startup
/sscript run startup function reward Steve
  • Первая команда запускает весь файл скрипта.
  • Вторая вызывает конкретную функцию с аргументами.

This site uses Just the Docs, a documentation theme for Jekyll.