개인 자료란 (JE)

  서버 커뮤니티

Profile 햬뉴 대표칭호 없음
Profile

질문하기 Java

플러그인 안에서 루프문

2022.03.31 조회 수 911 추천 수 0
이해도 플러그인 
게임버전 (JE) 버킷 

안녕하세요 땜쟁이에서 아이들과 같이 놀려고 플러그인을 만들어 보려는 중입니다.

C언어만 다뤄봐서 그런지 생각보다 어렵더라고요..


public class Main extends JavaPlugin implements Listener {


    @Override

    public void onEnable() {

    consol.sendMessage( ChatColor.AQUA + "[플러그인 활성화 중 입니다.]");

     getServer().getPluginManager().registerEvents(this, this);

}


지금 현재 만들고 싶은 것은 통신을 아두이노와 1초마다 진행을 하고 싶습니다. (센서 값 요청 등등)

class를 만들었는데 도대체 이걸 어디에 넣어야 1초마다 진행이 될지 몰라서 질문드립니다.


12개의 댓글

lanthanide
2022.03.31

BukkitRunnable 로 구문 실행에 딜레이를 줄 수 있는데, 이걸 재귀함수에 넣어보세요.

함수 A가 있다면 'A-BukkitRunnable-A호출' 같은 느낌일까요.

햬뉴
2022.03.31
@lanthanide

답변 정말 감사합니다. 정말 초보적인 질문이지만..

public void transloop(BukkitRunnable run)

{

run.runTaskLater(null, 1000) << Plugin plugin

}

 

저 plugin 자리에는 도대체 어떤 값을 집어 넣어야 할까요?

인터페이스라는게 껍데기로 알고 있으며 Plugin 의 형태로 return을 한다고 공부했는데 도대체 Plugin의 어떤값이 있길래 무엇을 넘긴다는 말일까요?

(제가 잘못 배운거 일 수 있고요..)

 

 

qsef1256
2022.04.01
@햬뉴

JavaPlugin을 extends한 Main 클래스의 인스턴스를 의미합니다.

qsef1256
2022.04.01
@햬뉴

https://www.spigotmc.org/threads/best-way-to-get-instance.17776/ 여기서 첫번째 스니펫 참고하시면 될 듯 싶습니다.

qsef1256
2022.04.01
@햬뉴

간단하게 말해서 버킷에 이 작업이 어느 플러그인의 작업인지 알려준다고 생각하시면 될 것 같네요.

qsef1256
2022.04.01

또한 BukkitRunnable 에는 runTaskTimer 로 계속 반복 실행을 할 수 있는 메서드도 있는 것으로 압니다. 한번 참고해보시는게 좋을 것 같아요

햬뉴
2022.04.01
@qsef1256

정말 감사합니다 ㅜㅜㅜ 새로 시작한다는 생각으로 열심히 해보겠습니다

명이
2022.04.02

https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/scheduler/BukkitScheduler.html#runTaskTimer(org.bukkit.plugin.Plugin,org.bukkit.scheduler.BukkitRunnable,long,long)

 

현재 BukkitScheduler에서 BukkitRunnable을 사용하는 메소드는 모두 Deprecated된 상태입니다.

대신 Runnable 사용을 추천드립니다.

qsef1256
2022.04.03
@명이

https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/scheduler/BukkitRunnable.html#runTaskTimer(org.bukkit.plugin.Plugin,long,long)

qsef1256
2022.04.03
@명이

그거 Deprecated 된거는 좀 된걸로 알고 있구요, BukkitRunnable.runTaskTimer 를 쓰라고 https://www.spigotmc.org/wiki/scheduler-programming/ 에서 권장하고 있습니다.

qsef1256
2022.04.03
@명이

Runnable을 써도 되긴 하는데 BukkitRunnable이 존재하고, 더 많은 기능을 제공하는 만큼 BukkitRunnable을 쓰는게 더 좋습니다.

qsef1256
2022.04.03

https://bukkit.fandom.com/wiki/Scheduler_Programming

 

https://www.spigotmc.org/wiki/scheduler-programming/

 

생각해보니 제가 설명하는 것 보다 위에껀 공식 내용이고 더 정리가 잘 되어 있는 것 같더라고요, 한번 읽어보셨으면 합니다