게임버전 (JE) | 1.17.1 |
---|---|
게임버전 (BE) | 관련없음 |
[23:58:39 WARN]: [RailKorea] Plugin RailKorea v2.0.0 generated an exception while executing task 3
java.lang.NoSuchMethodError: 'org.bukkit.entity.Player$Spigot org.bukkit.entity.Player.spigot()'
at gold24park.railkorea.module.LocationModule.showLocationHud(LocationModule.java:98) ~[?:?]
at gold24park.railkorea.module.LocationModule.access$000(LocationModule.java:24) ~[?:?]
at gold24park.railkorea.module.LocationModule$1.run(LocationModule.java:64) ~[?:?]
at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:77) ~[craftbukkit.jar:3246-Bukkit-dc764e7]
at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) [craftbukkit.jar:3246-Bukkit-dc764e7]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
이런 크래쉬 문구 계속뜨는데 뭐가 문제란거인가요?
허두
2021.10.01RailKorea 플러그인은 스피곳에서만 작동하는것 같아요!
혹시 지금 크래프트버킷을 사용중이실까요?
보빈이
2021.10.01네 버킷 쓰는중입니다. 1시간전엔 이런 문구가 안떴는데 갑자기 이럴수도 있나요??
허두
2021.10.01네! 만약 해당 코드와 관련된 기능을 방금 처음 실행하신거라면 코드가 처음으로 동작한게 돼버려 오류가 날 수 있습니다.
https://github.com/lx5475/RailKorea/blob/master/src/main/java/gold24park/railkorea/module/LocationModule.java#L98
해당 코드 보니까 스피곳 버킷에만 있는 spigot() 함수를 호출하는데, 크래프트버킷은 스피곳의 하위 호환이기에 스피곳용 기능을 포함하고 있지 않아서 발생하는 오류인 듯 해요 :)
해당 플러그인 소개에도 스피곳 1.16에서 테스트하셨다고 하니, 스피곳으로 넘어가거나 해당 플러그인을 포기하는 것이 최선이지 않을까 싶슴다..!
+ 참고로 크래프트버킷, 스피곳, 페이퍼 등은 모두 버킷 계열이에요!
보빈이
2021.10.01물음표 살인마라 죄송합니다. 버킷 => 스피곳으로 넘어가도 그럼 버킷 기능을 전부 활용할 수 있는거니 스피곳 사용이 더 나은거겠죠?
허두
2021.10.01네! 이미 많은 분들이 크래프트버킷보단 스피곳을 더 선호하고 계세요 :)
아, 근데 복잡한 커맨드(execute -> data Pos등)는 스피곳에서는 잘 작동하지 않을 수도 있어요..!
보빈이
2021.10.01알겠습니다! 버킷 폴더에 그대로 스피곳 구동시키면 충돌나겠죠?
보빈이
2021.10.01학생들이랑 하려고 처음 서버를 여니 미숙한게 많네요 ㅠㅠ
허두
2021.10.01가장 좋은 이동 방법은 월드 폴더들과 플러그인 폴더, eula.txt, ops.json, server.properties + 기타 변경하셨던 파일들만 복사해서 다른 폴더에 옮기시고
해당 폴더에 스피곳 jar 파일을 넣고 가동하시는 거에요!
이러면 어쩌다 오류가 나도 기존 폴더에 원래 파일들이 남아있으니까요 :)
보빈이
2021.10.01알겠습니다 그렇게 해보도록 하겠습니다! 감사합니다.
허두
2021.10.01넵! 하다가 막히는 부분 있으면 언제든지 댓글 남겨주세요!
보빈이
2021.10.01넵 친절한 답변 너무 감사합니다 덕분에 힘이나네요~
보빈이
2021.10.03선생님 급히 질문이 있습니다 ㅠㅠ 샵키퍼랑 시티즌을 활용해 npc 상점을 만들고 서버를 닫았다 열면
[Shopkeepers] Invalid Citizen shopkeeper 5: There is no NPC with unique id 5e4c40e0-62cd-42ce-af02-a129989a0f9a
[23:10:06 WARN]: [Shopkeepers] Invalid Citizen shopkeeper 6: There is no NPC with unique id 925059ee-199f-4077-b851-478543ef8b07
[23:10:06 WARN]: [Shopkeepers] Found 2 invalid Citizen shopkeepers!
[23:10:06 WARN]: [Shopkeepers] Either enable the setting 'delete-invalid-citizen-shopkeepers' inside the config, or use the command '/shopkeepers cleanupCitizenShopkeepers' to automatically delete these shopkeepers and get rid of these warnings.
이라고 뜨면서 상인이 사라집니다. 혹시 상인 저장 하는것과 관련해서 제가 뭔가 빠진게 있는건가요?
허두
2021.10.03어... 샵키퍼 플러그인은 보통 플러그인이 서버에서 언로드될 때, 즉 서버가 닫힐 때 샵키퍼들을 저장합니다
1. 혹시 서버를 /stop 명령어로 닫으시는 것이 맞으실지요?
2. /reload를 사용하신 것은 아니신지요?
보빈이
2021.10.03서버를 그냥 도스 or 자바 파일 x 를 누르면 문제가 생기는건가요? 둘 다 사용하지 않았습니다.
허두
2021.10.03앗.. 그렇게 닫으면 서버가 정상적으로 종료되지 않습니다! 서버가 저장되는 과정 없이 강제로 종료되거든요.
권한이 있는 플레이어가 /stop 명령어를 치거나, 서버 콘솔창(검정 cmd창 또는 하얀색 창의 우측 하단 입력창)에 stop을 입력하여 닫아야 저장 후 종료됩니다!
아마 그냥 닫으시면서 샵키퍼 플러그인이 npc 저장 과정을 거치지 못하여 오류가 났던 것 같아요 :)
보빈이
2021.10.03하 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ드디어 찾았네요 3시간박았는데.. 진짜 감사합니다 ............
허두
2021.10.03도움이 되셨다니 다행입니다!
질문포럼에 다시 올리셨던 글은 대신 삭제해드렸어요 :>
보빈이
2021.10.03넵 감사합니다.. 즐거운 연휴 되십쇼~
보빈이
2021.10.04every 1 second:
loop all players:
send action bar "&2돈: %{%loop-player%.돈}%" to loop-player
wipe loop-player's sidebar
set name of sidebar of loop-player to "&e%loop-player%&6님의 &2소지금"
set score "&a이름: %loop-player%" in sidebar of loop-player to 2
set score "&2소지금: %{%loop-player%.돈}%" in sidebar of loop-player to 1
set score "&a나이: 14살" in sidebar of loop-player to 0
command /수표 [<integer>]:
trigger:
if arg-1 is bigger than {%player%.돈}:
message "&c돈 더 벌어와서 인출해라."
else:
message "&a성공적으로 수표를 발급했습니다."
give paper named "&a수표 %arg-1%&a원" with lore "&c우클릭하면 돈을 지급받습니다." to player
subtract arg-1 from {%player%.돈}
on rightclick with paper:
if name of player's tool contains "수표":
set {_name} to uncoloerd name of player's tool"
replace all "수표" and "원" and " " with "" in {_name}
set {_name} to {_name} parsed as integer
add {_name} to {%player%.돈}
message "&a수표를 사용해 %{_name}%&a원을 지급받았습니다."
wait 1 tick
remove 1 paper from player's tool
-----------------------------------------------------------------------------------------------------------
이러한 구문을 활용해서 스코어보드에 돈을 집어넣으려 하는데요..
돈벌기 기능은 정상작동하나, 수표 우클릭을 하면 <none> 원이 지급되었다고 하면서 전체 돈이 <none>원으로 바뀝니다.
제가 스크립트에 뭔가 잘못 건든게 있을까요?
허두
2021.10.04앗 제가 스크립트는 잘 모르는지라..ㅠ 아마 추가로 올리신 질문글에 다른분이 답변해주시지 않으실까 싶어요!
근데 on rightclick with paper: 단락에 두번째줄에 set {_name} to uncoloerd name of player's tool"에서
uncoloerd 오타하고 "가 하나만 있는것 같아요!
보빈이
2021.10.04오타찾고 알고보니 탭을 덜쳤네요 ㅠㅠ 감사합니다
허두
2021.10.04아핫ㅋㅋㅋㅋ 해결되셨다니 다행입니다!