잡다한 개발/마크플러그인 10

마크 가챠 5편

이제 타이머 기능을 추가하여 플러그인을 마무리 짓도록 하겠습니다. 타이머는 보스바로 개발을 하였습니다. 클래스명은 BossBarManagement 로 생성자 호출시, 타이머 기능을 수행하도록 합니다, public class BossBarManagement { public Plugin plugin; public static int time = 60; public static final HashMap timer = new HashMap(); // 고유 아이디, addedTime public static final HashMap userBossBars = new HashMap(); // 고유 아이디, BossBar public BossBarManagement(Player player, Plugin plugin..

마크 가챠 4편

지난번에는 가챠 상자를 정의하고 가챠 상자 이벤트를 만들 준비를 끝냈습니다. 이제 가챠 상자에서 나오는 오브젝트들을 선택하고 나오도록 만들겠습니다. 그리고 실제로 작동하도록 하겠습니다. 실제로 작동하도록 하는 것은 그리 어렵지는 않지만, 이를 기반으로 세팅하는 것은 자바로 직접적으로 연결이 되어있기 때문에 이번 강좌는 자바에 대해 혹은 개발에 대해 아무것도 모르시는 분들께는 어려울 수 있다는 점, 미리 말씀드립니다. 먼저 늘 그래 왔듯이 클래스를 하나 만듭니다. 클래스명은 GachaBoxResult입니다. 먼저 List라는 것을 사용할 것입니다. List를 간단하게 말하자면 자료형을 정하고 많은 자료들을 배열에 비해 편하게 사용을 할 수 있도록 하는 Collection 중 하나입니다. Collection..

마크 가챠 3편

이전에 모든 세팅을 끝내고 연결 코드를 작성하였기 때문에 가챠 상자를 만드는 것을 할 것입니다. 가챠 상자는 가장 상자스러우면 좋겠다고 생각하여 아래 4가지의 상자들을 후보로 선택하였습니다. 위 4가지 중 개인적으로 셜커 상자로 하고 싶어서 셜커 상자로 선택하였습니다. 엔더 상자도 마음에 들긴 하였지만, 열리는 모습이 독특한 셜커 상자로 결정하였습니다. 먼저 누가봐도 가챠 상자임을 확인할 수 있도록 클래스명은 GachaBox로 하였습니다. 그리고 가챠 상자와 해당 상자임을 확인할 수 있는 독특한 메타를 설정하기 위해 멤버 변수로 가챠 상자와 메타 변수를 선언합니다. public static ItemStack gachaBox = new ItemStack(Material.SHULKER_BOX); public..

마크 가챠 2편

지난 번에 모든 세팅을 하였습니다. 이번에는 예정대로 메인 클래스와 플러그인 작동 및 종료 로그를 보내도록 하겠습니다. 먼저 아마 저번에 세팅했던 플러그인 이름이 메인 클래스로 이미 되어 있을 겁니다. public final class 메인 클래스명 extends JavaPlugin { @Override public void onEnable() { // Plugin startup logic } @Override public void onDisable() { // Plugin shutdown logic } } 메인 클래스에 멤버 변수를 선언하여, 간단하게 로그를 보낼 수 있도록 합니다. 더보기 (※멤버변수란? 클래스 내부에 존재하는 변수로서 클래스 변수 혹은 인스턴스 변수로 구분 지을 수 있는 변수 입니다..

마크 가챠 1편

지난 번에 마크 가챠 플러그인 세팅에 대해 간단하게 하였습니다. 하지만 본격적으로 개발을 하기 전에 세팅이 크게 3가지가 존재합니다. 기존 Java 방식으로 외부 라이브러리 .jar 파일을 수동 설치 및 적용 방식 Maven을 이용한 방식 그리고 Gradle을 이용한 방식 이렇게 3가지 방식이 존재합니다. 일단 수동 방식은 지난 번에 버킷 다운로드한 .jar 파일을 외부라이브러리로 설정하여, 사용할 수 있습니다. maven, gradle 을 사용할 분들이라면 보다 간편하게 작업을 하실 수 있으십니다. 물론 일일이 작성할 수도 있지만, 인텔리제이에서 제공하는 플러그인을 사용하면 기존 세팅을 넘기고 바로 개발에 몰두할 수 도 있습니다. 일단 자바로 개발할 분들이라면 해당 플러그인을 설치 후, 하시길 바랍니다..

마크 가챠 0편

기존에 하던 마크 플러그인 서로 개발을 하지않는 관계로 그대로 묻혀져서 혼자서라도 간단한 프로젝트를 개발한 것을 바탕으로 자바에 대해 잘 모르더라도 2, 3시간안에 자바에 가장 기초적인 지식과 더불어 간단한 플러그인을 개발할 수 있도록 하겠습니다. 일단 0편은 늘 그래왔둣이 현재 상태, 그리고 앞으로의 계획을 작성하기 때문에 세팅만 하는 것으로 마무리를 짓겠습니다. 먼저, 마크가 이미 있다는 가정하여 작업을 할 것입니다. 그리고 마크 버전은 현재 최신 버전인 1.17.1로 할 것입니다. 제일 처음으로 해야할 것은 JDK 설치, 그리고 사람마다 다르겠으나, 저 같은 경우에는 spigot을 사용하였습니다. (제일 많이 사용하는 버킷은 spigot, 그리고 paper입니다.) JDK는 마크 버전이 1.16.x..

마크 플러그인 만들기 (#3)

오늘 구현할 기능은 버서커의 패시브 능력인 무모한 공격을 만들어보고자 합니다. 무모한 공격은 우클릭 시, 바라보는 방향으로 빠르게 이동하는 능력입니다. 이전에 마법사와 별다른 코드는 없으나, 다른 점이 있다면 특정 블럭을 선택 후, 이동이 아닌 말그대로 바라보는 방향이라는 점입니다. 그리고 테스트용으로 깃털을 들고있을 때 작동하도록 하였습니다. @EventHandler public void rush(PlayerInteractEvent e) { Player player = e.getPlayer(); Action action = e.getAction(); // 우 클릭시, 돌진함 if ((action == Action.RIGHT_CLICK_BLOCK || action == Action.RIGHT_CLICK_..

마크 플러그인 만들기 (#2)

RPG 직업들은 현재 기획한 것으로는 파이터, 머스킷티어, 버서커, 마법사, 암살자로 직업들은 각각 액티브형 능력 하나와 패시브형 능력 하나를 구현할 것입니다. 현재 버서커의 광전사 능력(패시브)과 암살자의 도주 능력(패시브)는 krapoi의 티스토리를 확인하여 코드와 더불어 어떤 형식으로 작동하는 지를 확인할 수 있습니다. 제가 구현한 기능들은 마법사의 라이트닝(액티브)능력과 머스킷티어의 헤드샷(패시브)를 구현하였습니다. 먼저 마법사의 라이트닝입니다. Wizard라는 클래스를 만들고 플러그인에 사용될 클래스들은 대부분은 Listener를 사용하여 이벤트를 받습니다. implements Listener를 하고, 받을 이벤트를 @EventHandler를 합니다. 마법사는 현재 개발해나가는 과정이기에 막대기..

마크 플러그인 만들기 (#1)

마크 버전은 작성일 기준 최신 버전은 1.17.1를 사용할 것이고, spigot 1.17.1를 사용할 것입니다. 외부라이브러리로 spigot 1.17.1 .jar를 설정합니다. 자바 버전은 16 버전의 자바로 하였습니다. (16.0.2) ※자바 버전을 16버전의 JDK를 설치하여야 서버가 열릴 겁니다. 먼저 src에 Main.java 를 추가하여 메인 클래스를 만듭니다. Main에 extends JavaPlugin과 implements Listener를 추가합니다. public class Main extends JavaPlugin implements Listener { } 플러그인을 실행하였을 때에 콘솔창에서 나올 텍스트를 추가하기위해 ConsoleCommandSender consol = Bukkit.g..

마크 플러그인 만들기 (#0)

※본 글은 마인크래프트 플러그인을 개발하고자 작성하는 글이다. 학교 친구인 krapoi와 함께 마인크래프트 플러그인을 함께 개발하고자합니다. 이전에 같이 만들어본 경험이 있긴하나, 완성을 다 못했을 뿐만 아니라 완성도가 많이 떨어저 다시 한 번 더 만들어보고자 합니다. krapoi의 깃허브, krapoi의 티스토리 마인크래프트 최신 버전인 1.17.1을 기준으로 개발할 예정이며, 에디터는 Intellij를 사용할 예정입니다. 만들고자하는 플러그인은 넣고싶은 기능들을 다 때려 박아 넣을 수 있는 RPG플러그인을 개발하고자 합니다. 안타깝지만 개발을 하며 commit하는 깃허브는 private으로 할 것이지만, 필자의 티스토리와 krapoi의 티스토리를 확인해주길 바랍니다. 티스토리에는 진행 상황 및 저희가..