@@ -50,16 +50,20 @@ public List<BlockChangeEventModel> readEventByPos(final BlockPos blockPos) throw
5050 final TLongSet needBlockName = new TLongHashSet ();
5151 final TIntSet needNickName = new TIntHashSet ();
5252 iterateByFile ((byteList ) -> {
53- final PrepareReadBlockChangeEvent prepareReadBlockChangeEvent = prepareOrNullByPos (byteList .toArray (),
54- needPosX , needPosY , needPosZ );
55- if (prepareReadBlockChangeEvent == null ) {
56- return ;
53+ try {
54+ final PrepareReadBlockChangeEvent prepareReadBlockChangeEvent = prepareOrNullByPos (byteList .toArray (),
55+ needPosX , needPosY , needPosZ );
56+ if (prepareReadBlockChangeEvent == null ) {
57+ return ;
58+ }
59+
60+ needBlockName .add (prepareReadBlockChangeEvent .getBlockId ());
61+ needNickName .add (prepareReadBlockChangeEvent .getPlayerid ());
62+
63+ prepareEvents .add (prepareReadBlockChangeEvent );
64+ } catch (Exception e ) {
65+ FMLLog .log .warn ("Your logfile is corrupt!" , e );
5766 }
58-
59- needBlockName .add (prepareReadBlockChangeEvent .getBlockId ());
60- needNickName .add (prepareReadBlockChangeEvent .getPlayerid ());
61-
62- prepareEvents .add (prepareReadBlockChangeEvent );
6367 });
6468
6569 final TIntObjectMap <ASCIString > idToNick = CollectionUtils .toHashMap (needNickName , id -> nickMapper .getById (id ));
@@ -103,6 +107,6 @@ public void sync() throws IOException {
103107
104108 @ Override
105109 protected boolean checkLineEnd (final TByteArrayList arrayList , final byte endByte ) {
106- return arrayList . size () == Constants .SIZE_LOGLINE ;
110+ return endByte == Constants .DEVIDER_SYMBOL ;
107111 }
108112}
0 commit comments