TriggerReactor / TriggerReactor

Simple script parser with infinite possibility
GNU General Public License v3.0
50 stars 18 forks source link

SETBLOCK is still block changing like 1.12. #478

Open LimuLhw opened 2 years ago

LimuLhw commented 2 years ago

Before/읽어주세요

Make sure that you have used /trg debug so that the more detailed error message will show up in the console. 신고전에 /trg debug 명령어를 사용해서 디버그 모드를 켜주세요. 그래야 콘솔창에 더 자세한 정보가 나옵니다.


Describe the bug/버그 증상 Whether SETBLOCK is still working in 1.12 format, Colored (wool, concrete, etc.) blocks change to the default white color when using #SETBLOCK. 여전히 SETBLOCK이 1.12 형식으로 작동을 하는건지, 색깔 있는 (양털, 콘크리트 등) 블럭으로

SETBLOCK 사용시 기본값인 하얀색으로 바뀝니다.

Server information/서버 정보 TRG Version : 3.2.x or 3.3.x Latest Build Server Version : 1.16.5 Paper Latest

Error message/에러 메시지 No Error Log.

Others/그 밖의 정보들 Using part of the my code : IF (mpZ-getZNB) == 1 ELSE

SETBLOCK "SANDSTONE", rsX, rsY, rsZ-1

            #SETBLOCK "PURPLE_CONCRETE", rsX, rsY, rsZ+1 //PURPLE_CONCRETE just changed to WHITE_CONCRETE
            ENDIF

image image

Sayakie commented 2 years ago

The part of #SETBLOCK Executor determines their behavior by sets "legacy" variable, but modern (>= 1.13) BukkitAPI implementations still have setData method. https://github.com/TriggerReactor/TriggerReactor/blob/410e1999980627ed5e0435e03882658b44619dab/bukkit/src/main/resources/Executor/SETBLOCK.js#L66

We can resolve this issue by following the steps, but as I mentioned before, it seems urgent to refactoring the Executors and Placeholders.

var legacy = false;
try {
  Class.forName('org.bukkit.entity.Phantom');  // Phantom had been added at 1.13
} catch (_) {
  legacy = true;
}