개인 자료란 (JE)

  서버 커뮤니티

Profile 준너 정품인증자

Ricky_Kim f8e47150bfe44d8695eca6ad48f4e552

Profile

질문하기 스크립트

도와주세요 스크립트로 만든 아이템 사용시 서버가 강제 종료 됩니다..

2021.03.12 조회 수 523 추천 수 0
이해도 1.16 
게임버전 (JE) 스피곳 
게임버전 (BE) Skript 
스크립트 애드온 2.5.3 

스크립트 들을 정리해서 인벤토리 겹침이나 다른 모든 현상은 수정 완료했습니다. 다만 오늘 서버 베타 테스트 도중 "허스크 던전 이동 주문서" 및 이동에 관련된 아이템들을 사용시에 서버 버킷이 강제로 종료되는 현상이 발생했습니다. 초반에 테스트 할때는 멀쩡히 잘 작동하였는데 무슨 영문인지 모르겠습니다.. 도와주세요ㅠ..


밑은 버킷에 올라온 오류 입니다.


[03:27:25] [Server thread/ERROR]: Encountered an unexpected exception

java.lang.AssertionError: TRAP

        at net.minecraft.server.v1_16_R3.ItemStack.checkEmpty(ItemStack.java:99) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.ItemStack.setCount(ItemStack.java:890) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.PlayerInteractManager.a(PlayerInteractManager.java:407) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1425) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:28) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:1) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(SourceFile:144) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(SourceFile:118) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:942) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:935) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(SourceFile:127) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:919) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:851) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.5.jar:3016-Spigot-73fb609-ea050e6]

        at java.lang.Thread.run(Thread.java:832) [?:?]

[03:27:25] [Server thread/ERROR]: This crash report has been saved to: C:\Users\RICKY\Desktop\두견\1.16.5대규모 전용 -  복사본\.\crash-reports\crash-2021-03-12_03.27.25-server.txt

[03:27:25] [Server thread/INFO]: Stopping server


이 밑은 스크립트에 사용한 구문입니다.

command /husk1:

    trigger:

        if player is op:

            give diamond named "&b&l[허스크 던전 이동 주문서]" to player



on rightclick:

    if name of player's tool is "&b&l[허스크 던전 이동 주문서]":

        teleport player to location at 504.21, 32, -234.93 in world "world"

        remove 1 of player's tool from player's tool

        stop


command /야생주문서5:

    trigger:

        if player is op:

            give paper named "&b&l[5분 야생 이용권]" to player


on rightclick:

    if name of player's tool is "&b&l[5분 야생 이용권]":

        execute player command "tp @s 0 66 0"

        remove 1 of player's tool from player's tool

        stop


command /야생주문서10:

    trigger:

        if player is op:

            give paper named "&b&l[10분 야생 이용권]" to player


on rightclick:

    if name of player's tool is "&b&l[10분 야생 이용권]":

        execute player command "tp @s 0 66 0"

        remove 1 of player's tool from player's tool

        stop


command /야생주문서15:

    trigger:

        if player is op:

            give paper named "&b&l[15분 야생 이용권]" to player


on rightclick:

    if name of player's tool is "&b&l[15분 야생 이용권]":

        execute player command "tp @s 0 66 0"

        remove 1 of player's tool from player's tool

        stop



혹시나 하여 크래쉬 리포트 또한 첨부합니다..

crash-2021-03-12_03.27.25-server.txt 

도와주실수 있는분들 꼭 도와주세요 ㅠㅜ

무슨 문제인지 모르겠습니다..




6개의 댓글

이하님
2021.03.12

on rightclick Event에 Cancel Event 를 넣어보세요.

준너
2021.03.12
@이하님

cancel event 가 맞는것 같습니다!! 혹시 cancel event 라는 구문이 정확히 무슨 일을 하는 친구인지 알려주실수 있을까요??

도와주셔서 정말 감사합니다!!

10thousandoo
2021.03.13
@준너

cancel event란 그 동작을 취소하는 행위입니다

준너
2021.03.14
@10thousandoo

네..그건 압니다만...ㅎㅎ 어쨋든 감사합니다~

스크립터브혼
2021.03.12

이 오류는 블록이 변경될 때 공기로 변경되는 경우에 발생합니다.

공기는 블록과 달리 설치하거나 부수거나 할 수 없기 때문에 블록을 공기로 바꾸려하면 오류가 발생합니다.

정확히 따지면 블록을 공기로 바꾸는 것이 아니라 블록을 제거하거나 부수는 것이죠.


이 오류를 정확히 이해하기 위해서는 이벤트의 동작순서에 대한 이해가 필요합니다.


먼저 on click 이벤트는 모든 상호작용에 있어서 가장 먼저 동작하는 이벤트입니다.

예를들어, 먹기, 쏘기, 설치하기 등의 행위는 on eat, on shoot, on place 등의 이벤트와 매칭되는데

모두 클릭을 해서 동작하기 때문에 on click 이벤트가 먼저 동작하고 그 뒤에 행위에 따른 이벤트가 동작합니다.


on click 이벤트에서 손에 든 아이템을 공기(빈 슬롯)으로 만들어버린다면

후에 동작하는 on place 이벤트에서 공기를 설치하는 행위를 하게 되므로 오류가 발생하게 됩니다.

>  remove 1 of player's tool from player's tool

이 코드로 인해 손이 비워지게 되면 오류가 발생하는 것이죠.


오류 내용을 보시면 설명해드린 내용을 유추하실 수 있습니다.

> PacketPlayInBlockPlace : 설치 행위가 일어남

> ItemStack.checkEmpty : 아이템이 비었는지 확인함

준너
2021.03.14
@스크립터브혼

아하 그러면 행위/행동을 특정한 다음에는 cancel event 를 사용해서 그 행위를 지운 상태로 만들어야하는거군요??

뉴스 및 창작물
/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ?

팀뉴일리시

2024-11-23

3

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

건축

서울 숭례문(崇禮門) 5

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