This page is only available in Korean for now.

프로젝트 탭에는 만든 봇이 카드로 나열돼요. 위쪽에는 지금 켜져 있는 프로젝트 수가 보여요.

새 프로젝트

새 프로젝트 버튼을 누르면 다섯 단계로 프로젝트를 만들어요.

단계내용
이름영문, 한글, 숫자, -, _를 쓸 수 있어요. 대소문자만 다른 이름도 겹치는 것으로 봐요. 메인 파일은 <이름>.js가 돼요.
API 방식스크립트에서 쓸 API를 골라요. 여러 개를 고를 수 있고, 기본은 StarLight 오리지널이에요. 아래 API 방식을 보세요.
언어JS(NeonJS), JS(RhinoJS), 그리고 플러그인이 더한 언어 중에서 골라요. 만든 뒤에는 바꿀 수 없어요.
이벤트프로젝트가 받을 이벤트를 골라요. 고른 이벤트는 기본 코드에 함수 틀(API2는 리스너)로 들어가요. 고른 API 방식에 있는 이벤트만 보이고, 메시지 이벤트(onMessage, API2는 Event.MESSAGE)가 기본으로 골라져 있어요.
언어 설정언어에 설정이 있을 때만 나와요. 나중에 프로젝트 설정에서 바꿀 수 있어요.

새 프로젝트는 꺼진 채, 컴파일되지 않은 상태로 만들어져요. 코드를 쓰고 컴파일한 뒤에 켜세요. 처음부터 따라 해 보려면 첫 봇 만들기를 보세요.

팁

이벤트 단계에서 고르지 않은 이벤트는 나중에 프로젝트 설정의 받을 이벤트에서 켜고 함수를 직접 쓰면 받을 수 있어요.

API 방식

참고

Google Play 판과 베타 채널의 1.0.0-261103에는 API 방식이 없어요. 모든 프로젝트가 아래 세 방식의 API를 함께 쓰고, response는 설정 → 알림, 이벤트의 레거시 이벤트 사용을 켜야 불려요.

프로젝트마다 스크립트에서 쓸 API를 골라요. 고른 방식에 든 객체와 이벤트만 스크립트에 들어가고, 여러 방식에 함께 든 객체(Log, Device, FileStream 등)는 한 번만 들어가요. 플러그인이 더한 객체와 이벤트는 방식과 상관없이 모든 프로젝트에 들어가요.

방식객체이벤트
StarLight 오리지널Log, Projects, Plugins, Languages, Platform, Env, Java, Notification, HomeWidget, MediaSharer, EventEmitteronMessage, onMessageDeleted, onNotificationPosted, onStartCompile
메신저봇 API2Log, BotManager, Event, Broadcast, App, Device, FileStreambot.addListener(…)로 등록하는 리스너 (starlight.api2.*)
메신저봇 레거시Log, Api, Utils, DataBase, Bridge, Device, FileStreamresponse, onNotificationPosted, onStartCompile
  • 새 프로젝트의 마법사에서 고르고, 나중에 프로젝트 설정 → API 방식에서 바꿀 수 있어요. 바꾼 뒤에는 다시 컴파일해야 적용돼요.
  • StarLight 오리지널이나 메신저봇 API2를 고르면 언어 단계에서 NeonJS가 미리 골라져요.
  • Rhino에서 StarLight 오리지널과 메신저봇 API2를 함께 고르면, 최상위에 정의한 onMessage 함수가 StarLight 이벤트로도 불려 한 메시지에 두 번 호출될 수 있어요. NeonJS는 export한 함수만 부르므로 해당되지 않아요.
  • API 방식이 생기기 전에 만든 프로젝트는 세 방식을 모두 가진 채로 옮겨져요.

프로젝트 카드

카드에는 이름과 언어, 상태(실행 중 / 꺼짐 / 컴파일 필요)가 보여요. 오른쪽 스위치로 프로젝트를 켜고 꺼요. 스위치는 프로젝트가 한 번 컴파일된 뒤에 쓸 수 있어요. 끄면 새 이벤트를 받지 않지만, 스크립트가 걸어 둔 타이머처럼 이미 돌고 있는 작업은 다시 컴파일하거나 스코프를 폐기해야 멈춰요.

카드 윗부분을 누르면 펼쳐지며 버튼이 나와요.

버튼하는 일
수정코드 에디터를 열어요.
컴파일스크립트를 다시 읽어 실행할 준비를 해요. 실패하면 자세히로 오류를 볼 수 있어요.
디버그디버그 룸을 열어요. 컴파일된 뒤에 쓸 수 있어요.
설정프로젝트 설정을 열어요.
정보이름, 메인 스크립트, 생성일, 언어, 스레드와 작업 상태를 보여 줘요.
즐겨찾기프로젝트를 목록 맨 위에 고정해요.

프로젝트 설정에서 사용자 지정 버튼을 추가했다면 그 버튼도 여기에 나와요. 버튼을 누르면 스크립트의 onProjectButtonClicked(buttonId) 함수가 불려요.

참고

켜 둔 프로젝트는 앱이 시작될 때 자동으로 컴파일돼요. 이때 컴파일에 실패한 프로젝트는 꺼져요.

정렬과 검색

  • 정렬 칩을 누르면 가나다 순, 생성일 순, 컴파일 순으로 정렬할 수 있어요. 내림차순 정렬과 활성화 우선도 고를 수 있어요. 즐겨찾기한 프로젝트는 항상 맨 위에 있어요.
  • 돋보기 버튼으로 이름을 검색해요.

프로젝트 설정

카드의 설정을 누르면 열려요. 값을 바꾸면 위쪽에 저장 버튼이 나타나니, 눌러서 저장하세요.

분류항목
일반프로젝트 위치(폴더 경로), 프로젝트 이름 변경(메인 스크립트 이름도 함께 바꿀 수 있어요), 오류 발생시 비활성화(기본 켜짐)
API 방식스크립트에서 쓸 API예요. 위 API 방식을 보세요.
이벤트받을 이벤트 — 이 프로젝트가 받는 이벤트예요. 아래 받을 이벤트를 보세요.
언어언어별 설정이에요. NeonJS는 언어 설정을 보세요. Rhino는 JS-라이노 카테고리에 있어요.
실험적 기능사용자 지정 버튼 — 카드에 버튼을 추가해요. 버튼마다 ID와 아이콘을 정해요.
위험프로젝트 정보 다시 로드, 프로젝트 스레드 강제 종료, 프로젝트 스코프 폐기, 프로젝트 제거

받을 이벤트

참고

Google Play 판과 베타 채널의 1.0.0-261103에서는 이 항목이 호출이 허용된 이벤트예요. 받을 이벤트 ID를 목록에 하나씩 더해요. 기본값 starlight.*은 StarLight의 기본 이벤트를 모두 받아요.

항목에는 지금 받는 이벤트가 보이고, 누르면 이벤트 목록이 열려요.

  • 이벤트는 StarLight와 플러그인별로 묶여 있어요. 체크한 이벤트만 받고, 묶음 이름 옆의 체크 상자로 모두 고르거나 풀 수 있어요. 받는 이벤트가 없는 플러그인은 접혀 있어요.
  • 각 이벤트에는 스크립트가 받는 방법(onMessage(event), bot.on(Event.MESSAGE) 같은), 불리는 때, 이벤트 ID가 보여요.
  • 새 이벤트도 받기를 켜면 StarLight나 플러그인이 나중에 더하는 이벤트도 바로 받아요.
  • 프로젝트의 API 방식에 없는 이벤트는 API 방식에 없는 이벤트에 흐리게 모여 있어요. 그 API 방식을 켜면 보이는 그대로 받아요.
  • 등록된 이벤트가 없는 항목(꺼진 플러그인의 이벤트나 오타)은 알 수 없는 항목에 남아 있어요. 직접 지우기 전까지 그대로예요.
  • ID 직접 편집을 누르면 항목을 한 줄에 하나씩 글로 고칠 수 있어요. 이벤트 ID, starlight.* 같은 와일드카드, !로 시작하는 제외 항목(예: !starlight.message.legacy)을 쓸 수 있고, 입력하는 동안 ID를 제안하고 줄마다 무엇을 받는지 보여 줘요.

목록에서 체크를 바꾸면 항목은 필요한 만큼만 바뀌어요. 예를 들어 starlight.*이 있을 때 한 이벤트를 끄면 ! 제외 항목이 하나 더해져요. 고른 내용은 확인을 누른 뒤 설정의 저장 버튼을 눌러야 저장되고, 저장하면 다시 컴파일하지 않아도 바로 적용돼요.

  • 프로젝트 스레드 강제 종료는 실행 중인 작업을 멈추고 대기 중인 이벤트를 비워요. 항목 아래에 지금 실행 중인 작업과 대기 중인 이벤트 수가 보여요.
  • 프로젝트 스코프 폐기는 컴파일된 상태를 버려요. 다시 컴파일하기 전까지 프로젝트가 동작하지 않아요.

팁

봇이 끝나지 않는 반복문에 빠져 응답하지 않으면 프로젝트를 다시 컴파일하거나 프로젝트 스코프 폐기를 쓰세요. NeonJS 프로젝트는 이때 실행 중인 코드가 중단돼요.

내보내기와 가져오기

  • 카드의 정보를 누르고 파일 → 내보내기를 누르면 프로젝트를 zip 파일로 저장해요.
  • 새 프로젝트 창의 zip 파일에서 가져오기로 내보낸 프로젝트를 다시 불러와요.

백업하거나, 다른 기기 또는 다른 판(Google Play 판, GitHub 판)으로 옮길 때 써요.

프로젝트 지우기

카드에는 삭제 버튼이 없어요. 설정 → 위험 → 프로젝트 제거를 누르고 확인하면 프로젝트 폴더가 통째로 지워져요. 되돌릴 수 없으니 필요한 파일은 미리 백업하세요.

프로젝트 폴더

프로젝트는 StarLight/projects/<이름>/ 폴더에 저장돼요.

StarLight/projects/hello-bot/
├─ project.json        이름, 언어, 메인 스크립트, 허용 이벤트, API 방식 등 프로젝트 정보
├─ hello-bot.js        메인 스크립트
├─ config.json         프로젝트 설정 (언어 설정 포함)
├─ logs.json           이 프로젝트의 로그
├─ data/               스크립트가 저장하는 데이터
└─ debugroom/          디버그 룸 대화 기록

다른 기기로 옮기거나 백업할 때는 이 폴더를 통째로 복사하세요. 새 기기의 StarLight/projects/에 넣고 앱을 다시 시작하면 목록에 나타나요.