Skip to content

Commit 55d7fdc

Browse files
AyhamAl-AlisovdeethModerocky
authored
🚀 Add Cancellable section (#5691)
* Add Cancellable section * Correct effect name EffCancelEvent * Support EffCancelEvent extra hardcoded event * Nothing, just better logic! --------- Co-authored-by: sovdee <[email protected]> Co-authored-by: Moderocky <[email protected]>
1 parent 27094a6 commit 55d7fdc

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/main/java/ch/njol/skript/doc/HTMLGenerator.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
import com.google.common.collect.Lists;
3737
import com.google.common.io.Files;
3838
import org.apache.commons.lang.StringUtils;
39+
import org.bukkit.event.Cancellable;
40+
import org.bukkit.event.Event;
41+
import org.bukkit.event.block.BlockCanBuildEvent;
3942
import org.eclipse.jdt.annotation.Nullable;
4043
import org.skriptlang.skript.lang.entry.EntryData;
4144
import org.skriptlang.skript.lang.entry.EntryValidator;
@@ -481,6 +484,9 @@ private String generateAnnotated(String descTemp, SyntaxElementInfo<?> info, @Nu
481484
}
482485
desc = desc.replace("${element.id}", ID);
483486

487+
// Cancellable
488+
desc = handleIf(desc, "${if cancellable}", false);
489+
484490
// Events
485491
Events events = c.getAnnotation(Events.class);
486492
desc = handleIf(desc, "${if events}", events != null);
@@ -603,6 +609,17 @@ private String generateEvent(String descTemp, SkriptEventInfo<?> info, @Nullable
603609
String[] keywords = info.getKeywords();
604610
desc = desc.replace("${element.keywords}", keywords == null ? "" : Joiner.on(", ").join(keywords));
605611

612+
// Cancellable
613+
boolean cancellable = false;
614+
for (Class<? extends Event> event : info.events) {
615+
if (Cancellable.class.isAssignableFrom(event) || BlockCanBuildEvent.class.isAssignableFrom(event)) {
616+
cancellable = true; // let's assume all are cancellable otherwise EffCancelEvent would do the rest in action
617+
break;
618+
}
619+
}
620+
desc = handleIf(desc, "${if cancellable}", cancellable);
621+
desc = desc.replace("${element.cancellable}", cancellable ? "Yes" : ""); // if not cancellable the section is hidden
622+
606623
// Documentation ID
607624
String ID = info.getDocumentationID() != null ? info.getDocumentationID() : info.getId();
608625
// Fix duplicated IDs
@@ -719,6 +736,9 @@ private String generateClass(String descTemp, ClassInfo<?> info, @Nullable Strin
719736
}
720737
desc = desc.replace("${element.id}", ID);
721738

739+
// Cancellable
740+
desc = handleIf(desc, "${if cancellable}", false);
741+
722742
// Events
723743
Events events = c.getAnnotation(Events.class);
724744
desc = handleIf(desc, "${if events}", events != null);
@@ -821,6 +841,9 @@ private String generateFunction(String descTemp, JavaFunction<?> info) {
821841
// Documentation ID
822842
desc = desc.replace("${element.id}", info.getName());
823843

844+
// Cancellable
845+
desc = handleIf(desc, "${if cancellable}", false);
846+
824847
// Events
825848
desc = handleIf(desc, "${if events}", false); // Functions do not require events nor plugins (at time writing this)
826849

0 commit comments

Comments
 (0)