@@ -139,33 +139,7 @@ public Result canBuild(@NotNull Player player, @NotNull Block block) {
139139
140140 BlockBreakEvent beMainHand ;
141141
142- beMainHand = new BlockBreakEvent (block , player ) {
143-
144- @ Override
145- public void setCancelled (boolean cancel ) {
146- //tracking cancel plugin
147- if (cancel && !isCancelled ()) {
148- Util .debugLog ("An plugin blocked the protection checking event! See this stacktrace:" );
149- for (StackTraceElement element : Thread .currentThread ().getStackTrace ()) {
150- Util .debugLog (element .getClassName () + "." + element .getMethodName () + "(" + element .getLineNumber () + ")" );
151- }
152- isCanBuild .setMessage (Thread .currentThread ().getStackTrace ()[2 ].getClassName ());
153- out :
154- for (StackTraceElement element : Thread .currentThread ().getStackTrace ()) {
155-
156- for (RegisteredListener listener : getHandlerList ().getRegisteredListeners ()) {
157- if (listener .getListener ().getClass ().getName ().equals (element .getClassName ())) {
158- isCanBuild .setResult (false );
159- isCanBuild .setMessage (listener .getPlugin ().getName ());
160- isCanBuild .setListener (listener .getListener ().getClass ().getName ());
161- break out ;
162- }
163- }
164- }
165- }
166- super .setCancelled (cancel );
167- }
168- };
142+ beMainHand = new FakeBlockBreakEvent (block , player , isCanBuild );
169143 // Call for event for protection check start
170144 this .eventManager .callEvent (new ShopProtectionCheckEvent (block .getLocation (), player , ProtectionCheckStatus .BEGIN , beMainHand ));
171145 beMainHand .setDropItems (false );
@@ -196,6 +170,41 @@ public void onTestEvent(BlockBreakEvent event) {
196170 return isCanBuild ;
197171 }
198172
173+ public static class FakeBlockBreakEvent extends BlockBreakEvent {
174+
175+ private final org .maxgamer .quickshop .util .holder .Result isCanBuild ;
176+
177+ public FakeBlockBreakEvent (@ NotNull Block theBlock , @ NotNull Player player , @ NotNull org .maxgamer .quickshop .util .holder .Result isCanBuild ) {
178+ super (theBlock , player );
179+ this .isCanBuild = isCanBuild ;
180+ }
181+
182+ @ Override
183+ public void setCancelled (boolean cancel ) {
184+ //tracking cancel plugin
185+ if (cancel && !isCancelled ()) {
186+ Util .debugLog ("An plugin blocked the protection checking event! See this stacktrace:" );
187+ for (StackTraceElement element : Thread .currentThread ().getStackTrace ()) {
188+ Util .debugLog (element .getClassName () + "." + element .getMethodName () + "(" + element .getLineNumber () + ")" );
189+ }
190+ isCanBuild .setMessage (Thread .currentThread ().getStackTrace ()[2 ].getClassName ());
191+ out :
192+ for (StackTraceElement element : Thread .currentThread ().getStackTrace ()) {
193+
194+ for (RegisteredListener listener : getHandlerList ().getRegisteredListeners ()) {
195+ if (listener .getListener ().getClass ().getName ().equals (element .getClassName ())) {
196+ isCanBuild .setResult (false );
197+ isCanBuild .setMessage (listener .getPlugin ().getName ());
198+ isCanBuild .setListener (listener .getListener ().getClass ().getName ());
199+ break out ;
200+ }
201+ }
202+ }
203+ }
204+ super .setCancelled (cancel );
205+ }
206+ }
207+
199208 /**
200209 * Callback for reloading
201210 *
0 commit comments