iJGN
대표칭호 없음
JGNoraejarang 650fc5d6c4284df6bb4f5671ca493f52
이해도 | 초보자 |
---|---|
게임버전 (JE) | 1.19.2, 1.19.3 |
게임버전 (BE) | 관련없음 |
페이퍼 버킷에서 콘피그에 유저의 소지 금액을 유저명: 금액의 형식으로 저장하는 돈 플러그인을 만들었습니다. 다른 플러그인에서 이 플러그인의 콘피그에 있는 유저별 금액을 수정하게 하고싶은데 어떻게 작성해야 할까요?
qsef1256
2022.12.28일단 제목 그대로 해석해서 직접 파일에 접근해 변경하게 할 수 있냐고 묻는다면 일단은 가능합니다.
그러나, 이 행위는 각 플러그인의 영역을 침범하는 준해킹 프로그램 수준의 행동으로, 자신의 플러그인이라면 모르겠으나 남의 플러그인에서 실제로 이런 행위를 하면 심각한 마찰을 빚을 소지가 있습니다.
정상적인 방법은, API를 제공해서 해당 API로 내부 데이터를 조작할 수 있도록 하는 것입니다.
iJGN
2022.12.28현재 제가 작성한 돈 플러그인의 작동 방식이
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args){
String preset = "§l§6[JGNEconomy]";
String danwi = getConfig().getString("기본단위");
if(command.getName().equals("내돈") || command.getName().equals("mymoney")){
float sendermoney = Float.parseFloat(getConfig().getString(sender.getName()));
sender.sendMessage(preset + "§e " + sender.getName() +" §b님의 돈은 §a" + sendermoney + danwi + "§b입니다.");
}
}
이렇게 콘피그에 저장하는 방식입니다. 이런 플러그인의 기능들을 API로 만들 수 있는 방법이 있을까요?
qsef1256
2022.12.28조금 고민 되는 부분입니다. API 설계는 제 생각에 현재 마인크래프트 분야에서는 제대로 배울 수 있는 강좌 같은 게 없습니다. 그렇다고 이걸 다 알려주면 답변이 매우 길어질 수도 있고, 소프트웨어 공학 적인 지식을 동원해야 할 수도 있습니다. 그렇다고 그냥 Vault에 연결하게 하는 것도 지금 코드 수준에서는 이해 하기 어려울 것입니다.
앵간해서는 DM은 안 하는데, 집중적인 설명이 좀 필요할 것 같습니다. qsef1256#6620 으로 연락 바랍니다
qsef1256
2022.12.28그리고, 돈은 이미 버킷에 RegisteredServiceProvider 라는 공통 인터페이스가 존재합니다. 해당 인터페이스를 이용한 것이 Vault이며, 일반적으로 여기다가 연결을 합니다.
0reo
2022.12.28파일에 단순하게 접근하면 되는거라 불가능한건 아닙니다