게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
tile entity garbage 제거 프로그램 소스
게시물ID : minecraft_21340짧은주소 복사하기
작성자 : 빈행성
추천 : 2
조회수 : 623회
댓글수 : 3개
등록시간 : 2015/07/18 22:28:33
옵션
  • 창작글
worldedit이나 mcedit이 잘 못 동작하면 가끔 블럭 정보는 수정 되었는데 제거 되었어야할 타일 엔티티 정보가 홀로 남아있게 되어서 아래와 같은 에러가 납니다.

타일엔티티 정보에는 (-45,14,-56) 좌표에 몹스포너라는데
(-45,14,-56) 좌표에 실제로는 몹 스포너 블럭이 아니라 돌 블럭이 있는 경우
[20:22:38] [Server thread/INFO]: Attempted to place a tile entity (net.minecraft.server.v1_8_R3.TileEntityMobSpawner@587720d) at -45,14,-56 (STONE) where there was no entity tile!
[20:22:38] [Server thread/INFO]: Chunk coordinates: -48,-64
[20:22:38] [Server thread/WARN]: java.lang.Exception
[20:22:38] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.Chunk.a(Chunk.java:791)
[20:22:38] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.Chunk.a(Chunk.java:769)
[20:22:38] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.ChunkRegionLoader.loadEntities(ChunkRegionLoader.java:420)
[20:22:38] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_8_R3.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:46)
[20:22:38] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_8_R3.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:1)
[20:22:38] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_8_R3.util.AsynchronousExecutor.skipQueue(AsynchronousExecutor.java:337)
[20:22:38] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_8_R3.util.AsynchronousExecutor.getSkipQueue(AsynchronousExecutor.java:295)
[20:22:38] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_8_R3.chunkio.ChunkIOExecutor.syncChunkLoad(ChunkIOExecutor.java:16)
[20:22:38] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:115)
[20:22:38] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:97)
[20:22:38] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:373)
[20:22:38] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:337)
[20:22:38] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:256)
[20:22:38] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:528)
[20:22:38] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source)

이런 지점이 상당히 많게 되면 유저가 해당 지역 진입시 에러 로그가 어마하게 쌓일 수도 있고, (8GB까지 봤습니다)
한번에 에러가 심하게 많이 올라오면 서버가 다운됩니다.

그래서 수정을 위해 코드를 짰습니다.
https://gist.github.com/blankplanet/bc41d931a36be87df7ff

GlowStone++을 수정 해서 청크 로드 중에 로드에 실패한 타일 엔티티만 버리고 다시 청크를 저장합니다.
https://glowstoneplusplus.github.io/

FixAnvil.java는 메인 실행 부분이고 
AnvilChunkIoService.java는 GlowStone++ 소스파일 패치 입니다.


사용하실려면 GlowStone++ 소스에 넣고 컴파일 하시면 되겠습니다.


--주의사항--
보관용 맵이거나, 정말 에러가 심해서 수정이 꼭 필요한 맵에만 쓰세요.
맵의 손상은 제가 책임지지 않습니다.

출처 https://gist.github.com/blankplanet/bc41d931a36be87df7ff
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호