개인 자료란 (JE)

  서버 커뮤니티

Profile MinsooM2 대표칭호 없음
Profile

강좌 자바 에디션(JE) 플러그인 개발

[ 부록 ] 너도하고 나도하는 Skript : 변수를 MariaDB에 저장하자! ( #2 ) ( 데이터 주의 )

2020.01.21 조회 수 3453 추천 수 3
분야 스크립트 
게임버전 1.12.x 


4be96cd3a90b0fe34dbfd0e2a46282c7.png


데이터베이스 같은 경우는 필자가 정확한 지식으로 배우지 않고, 몸으로 부딪히며 얻은 지식입니다.

틀린 내용이 존재할 수 있으니 유의하고 봐주시길 바랍니다.


( 피드백 및 오타 지적은 환영입니다. )


1. 준비물

SQLibrary 플러그인 : set {TEST} to "TEST" 와 같은 구문을 쿼리 없이 DB에 저장시키실려면 사용하시면 됩니다.

Skellett 플러그인 : 쿼리문을 사용하실려면 사용하시면됩니다.

1.9.6B 버전으로 다운하셔야합니다.

SQLibrary 를 사용하실분은 2번을 보시면됩니다.

Skellett를 사용하실분은 3번을 보시면됩니다.

2. SQLibrary 사용

Skript 폴더의 Config.sk 파일을 수정하겠습니다.

스크롤을 내리시다보면 Variables 구역이 나오게됩니다. 못찾으시겠으면 ( database: ) 검색하시면 됩니다.

2e33f39e9a056a3bb5667b37563f8719.png

빨간 줄로 하이라이트된 부분만 수정하겠습니다.

먼저 Skript에 MySQL을 쓸거라고 말해주어야하기에 type: MySQL을 써주겠습니다.

두번째인 pattern 옵션은 저장할 변수를 정의(?) 한다고 보시면 됩니다.

만약 .* 을 사용할시 모든 변수를 데이터베이스에 저장하는것이고, db_.* 을 사용할시 db_. 으로 시작하는 모든 변수를 데이터 베이스에 저장하는것이지요.

저는 기본값으로 놓겠습니다.

설치 과정에서 아무것도 건들이지 않으셨다면 password 만 설치할때 쓴 암호로 입력해주시면됩니다.

데이터 베이스와 테이블의 이름을 변경하실분은 변경하시면됩니다.

저는 기본값으로 두겠습니다.


이제 HeidiSQL로 들어와서 데이터베이스를 생성해주겠습니다.

데이터베이스들이 모여있는 공간을 우클릭 한뒤, 새로 생성  > 데이터베이스를 클릭해줍니다.

383b9c264ff5d1be9256c3180f4280b0.png


아래와 같은 화면이 뜨면 이름을 Skript로 변경해줍니다. (Config에서 database를 변경한 경우 그 이름을 써주시면 됩니다.)

7330ec6851e94b5c568ec407bc49f034.png


이렇게 설정을 맞추신뒤 서버를 실행시키시면 자동으로 테이블이 생성되면서 연동이 완료되었습니다.

구문을 제작하겠습니다.

on load:
    set {TEST} to "테스트입니다"
    broadcast {TEST}
command /TEST:
    trigger:    
        broadcast {TEST}

위와 같은 구문을 실행해보겠습니다.

46f203e74d78683fdcf0c181eae21230.png스크립트 로드c6be6fb277cd6b644423a2a6bfcfa527.png/TEST 출력

364e20a735ded4463ebff8f1d963e43c.pngCSVbf6ff44cba11dd3423a3424c47bf6e78.png

위와 같이 CSV에 저장되지 않고 MySQL에 저장되는것을 확인 하실 수 있습니다.



3. Skellett 사용

Skellett 폴더의 MySQL.YML 파일입니다.

아래와 같이 변경하면됩니다.

MySQL: true

PASSWORD 에는 자신의 비밀번호를 입력해주세요

DATABASE 에는 skript를 입력해주세요. 

73543494f3b39895b678e2ce6a8638c8.png



데이터 베이스를 생성하겠습니다. 

1579604431026.png


데이터 베이스의 이름은 Skript로 지정해주겠습니다.

1579604538207.png


스크립트 구문을 작성하겠습니다.

on load:
    set mysql host to "localhost"
    set mysql port to 3306
    set mysql username to "root"
    set mysql database to "skript"
    connect to mysql
    mysql update "CREATE TABLE IF NOT EXISTS skript_1 (TEXT varchar(10))"
    mysql update "UPDATE skript_1 SET TEXT = 'te1st'"
    

command /TEST:
    trigger:    
        set {_result} to mysql result of query "SELECT * FROM skript_1"
        set {_am::*} to mysql object "TEXT" in {_result}
        broadcast "%{_am::*}%"

위 구문을 실행해보겠습니다.

2524caee0c4b94dcd6266e1c435b8744.png스크립트 리로드eb88deecd13c1719a171440ca0819129.png출력

정상작동하는것을 확인할 수 있습니다!


이번 강좌글이 가장 어려웠습니다.

쿼리문 중 간단한건 제가 설명하겠지만, 대부분은 인터넷 참고하셔야 좋을꺼같습니다.




17개의 댓글

JSD-ITHAN
2020.01.22

강좌 잘 보고 갑니다!

MinsooM2
2020.02.23
@JSD-ITHAN

감사합니다.

아이스틴
2020.01.22

좋은 강좌 감사합니다~

MinsooM2
2020.02.23
@아이스틴

읽어주셔서 감사합니다 :)

HELLO!
2020.02.03

강좌 앞으로 기대되네요

MinsooM2
2020.02.23
@HELLO!

기대하지마십쇼.. 들쑥날쑥입니다..

윈초
2020.02.07

감사해용~

MinsooM2
2020.02.23
@윈초

봐주셔서 감사합니다.

윈초
2020.02.23
@MinsooM2

어렵네여.. 저는

시듀아
2020.02.19

이 방법을 이용해서 마크 서버 전적 사이트를 만들겠습니당..

MinsooM2
2020.02.23
@시듀아

기대하겠습니다!

qsef1256
2020.05.17

HeidiSQL에서 value를 안 깨지게 하는 방법이 있나요? 직접 값을 봐야 하는데 다 깨져서 볼 수가 없네요..

MinsooM2
2020.06.19
@qsef1256

직접 값을 보실려면 쿼리문으로 저장하시고 가져오셔야합니다.

스크립트는 데이터를 저장할때 난독화 비스무리 하게 해서 저장하더군요.

 

ASSERVER
2020.12.04

따로 저장할 변수를 추가하려면 database: 밑에 있는 것들을 하나 더 만들어줘야 하나요?

리곤(Lee_gon)
2021.05.13

위와 관련된거에 관련해서 질문이 있는데 혹시 개인 디스코드 가능하실까요..?

MinsooM2
2021.06.07
@리곤(Lee_gon)

민수#5264 입니다

 

굿럭
2021.07.06

변수는 저장이 되는데 서버를 끄고 다시 켰을때 서버접속이 안돼요.... ㅠ

뉴스 및 창작물
/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 2

노트블럭전문가

2024-11-27

0

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ?

팀뉴일리시

2024-11-23

4

/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 6

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2

/files/thumbnails/246/898/003/262x150.crop.jpg?20241008102328

레드스톤

단다단 - 오토노케(オトノケ) | 마인크래프트 노트블럭 커버

노트블럭전문가

2024-10-08

1

/files/thumbnails/348/896/003/262x150.crop.jpg?20241006103035

디도스/봇테러등등을 낚는 방법 5

물귀신

2024-10-06

3