From 841edc683912a339290b92517032f21e9b4ca639 Mon Sep 17 00:00:00 2001 From: Priyan_17 <101181090+Reaper-1709@users.noreply.github.com> Date: Sat, 15 Mar 2025 18:57:13 +0530 Subject: [PATCH 1/7] Javadocs initial commit 1. Added see javadocs button in StatementBlock, ExpressionBlock, and PluginComponentBlock 2. Added Javadocs tab in Plugin Settings 3. Javadocs functionality for all components, and all methods is added and no other blocks supported as of now --- .../gmail/visualbukkit/VisualBukkitApp.java | 14 +- .../visualbukkit/blocks/ExpressionBlock.java | 15 +- .../blocks/PluginComponentBlock.java | 3 +- .../visualbukkit/blocks/StatementBlock.java | 12 +- .../blocks/definitions/core/ExprField.java | 8 + .../blocks/definitions/core/ExprMethod.java | 8 + .../blocks/definitions/core/StatMethod.java | 8 + .../gmail/visualbukkit/project/Project.java | 277 +++++++++++++++++- .../src/main/resources/css/default.css | 9 + .../src/main/resources/lang/gui.properties | 20 ++ .../main/resources/lang/gui_en_US.properties | 1 + 11 files changed, 368 insertions(+), 7 deletions(-) diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/VisualBukkitApp.java b/VB-Application/src/main/java/com/gmail/visualbukkit/VisualBukkitApp.java index 307dbab4..1546ec3c 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/VisualBukkitApp.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/VisualBukkitApp.java @@ -5,6 +5,7 @@ import com.gmail.visualbukkit.project.ProjectManager; import com.gmail.visualbukkit.project.UndoManager; import com.gmail.visualbukkit.ui.ActionMenuItem; +import com.gmail.visualbukkit.ui.JavadocsWindow; import com.gmail.visualbukkit.ui.LogWindow; import com.google.common.io.MoreFiles; import com.install4j.api.launcher.ApplicationLauncher; @@ -12,11 +13,14 @@ import javafx.application.Application; import javafx.application.Platform; import javafx.beans.property.*; +import javafx.geometry.Side; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.control.*; +import javafx.scene.control.Button; import javafx.scene.control.Menu; import javafx.scene.control.MenuBar; +import javafx.scene.control.MenuItem; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.image.Image; @@ -26,6 +30,7 @@ import javafx.stage.Stage; import javafx.util.Duration; import org.apache.commons.lang3.SystemUtils; +import org.checkerframework.checker.nullness.qual.NonNull; import org.controlsfx.control.Notifications; import org.controlsfx.control.action.Action; import org.json.JSONException; @@ -65,6 +70,7 @@ public class VisualBukkitApp extends Application { private static final BorderPane rootPane = new BorderPane(); private static LogWindow logWindow; + private static JavadocsWindow javadocsWindow; private static Stage primaryStage; private static final String DEFAULT_THEME = "css/dark.css"; @@ -163,12 +169,12 @@ public void start(Stage primaryStage) throws IOException { new Menu(localizedText("menu.settings"), null, createThemesMenu(), createFontSizeMenu(), - createLanguageMenu()), + createLanguageMenu())); new Menu(localizedText("menu.help"), null, new ActionMenuItem("Github", FontAwesomeBrands.GITHUB, e -> openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit"))), new ActionMenuItem("Spigot", FontAwesomeSolid.FAUCET, e -> openURI(URI.create("https://www.spigotmc.org/resources/visual-bukkit-create-plugins.76474/"))), new ActionMenuItem("Discord", FontAwesomeBrands.DISCORD, e -> openURI(URI.create("https://discord.gg/ugkvGpu"))), - new ActionMenuItem(localizedText("menu.check_for_update"), FontAwesomeSolid.CLOUD_DOWNLOAD_ALT, e -> checkForUpdate(true)))); + new ActionMenuItem(localizedText("menu.check_for_update"), FontAwesomeSolid.CLOUD_DOWNLOAD_ALT, e -> checkForUpdate(true))); if (SystemUtils.IS_OS_MAC) { menuBar.setUseSystemMenuBar(true); @@ -491,6 +497,10 @@ public static LogWindow getLogWindow() { return logWindow; } + public static JavadocsWindow getJavadocsWindow() { + return javadocsWindow; + } + public static Stage getPrimaryStage() { return primaryStage; } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java index 78917c40..ff843e87 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java @@ -1,9 +1,13 @@ package com.gmail.visualbukkit.blocks; import com.gmail.visualbukkit.VisualBukkitApp; +import com.gmail.visualbukkit.blocks.definitions.core.ExprField; +import com.gmail.visualbukkit.blocks.definitions.core.ExprMethod; +import com.gmail.visualbukkit.blocks.definitions.core.StatMethod; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.project.CopyPasteManager; +import com.gmail.visualbukkit.project.JavadocsManager; import com.gmail.visualbukkit.project.UndoManager; import com.gmail.visualbukkit.reflection.ClassInfo; import com.gmail.visualbukkit.ui.ActionMenuItem; @@ -34,7 +38,16 @@ public ExpressionBlock() { CopyPasteManager.copyExpression(this); UndoManager.current().execute(this::delete); }), - new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.delete"), e -> UndoManager.current().execute(this::delete))); + new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.delete"), e -> UndoManager.current().execute(this::delete)), + new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.javadocs"), e -> { + if (this instanceof ExprMethod) { + JavadocsManager.getExprJavadocs((ExprMethod) this); + } else if (this instanceof ExprField) { + JavadocsManager.getExprJavadocs((ExprField) this); + } else { + VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.unavailable_javadocs")); + } + })); setOnDragDetected(e -> { if (e.getButton() == MouseButton.PRIMARY) { diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/PluginComponentBlock.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/PluginComponentBlock.java index f1b5ffa4..efb3c578 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/PluginComponentBlock.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/PluginComponentBlock.java @@ -16,8 +16,9 @@ public PluginComponentBlock() { ActionMenuItem pasteItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.paste_after"), e -> UndoManager.current().execute(() -> childStatementHolder.addFirst(CopyPasteManager.pasteStatement()))); ActionMenuItem collapseItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.collapse_all"), e -> childStatementHolder.setCollapsedRecursive(true)); ActionMenuItem expandItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.expand_all"), e -> childStatementHolder.setCollapsedRecursive(false)); + ActionMenuItem javadocItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.javadocs"), e -> JavadocsManager.getCompJavaDocs(getPluginComponent())); pasteItem.disableProperty().bind(CopyPasteManager.statementCopiedProperty().not()); - getContextMenu().getItems().addAll(collapseItem, expandItem, pasteItem); + getContextMenu().getItems().addAll(collapseItem, expandItem, pasteItem, javadocItem); getContextMenu().setOnShowing(e -> { collapseItem.setDisable(childStatementHolder.isEmpty()); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java index 8495b94e..6403e3e5 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java @@ -1,8 +1,10 @@ package com.gmail.visualbukkit.blocks; import com.gmail.visualbukkit.VisualBukkitApp; +import com.gmail.visualbukkit.blocks.definitions.core.StatMethod; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.project.CopyPasteManager; +import com.gmail.visualbukkit.project.JavadocsManager; import com.gmail.visualbukkit.project.UndoManager; import com.gmail.visualbukkit.ui.ActionMenuItem; import javafx.scene.SnapshotParameters; @@ -36,9 +38,17 @@ public StatementBlock() { ActionMenuItem deleteStackItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.delete_stack"), e -> UndoManager.current().execute(() -> getParentStatementHolder().removeStack(this))); ActionMenuItem pasteBeforeItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.paste_before"), e -> UndoManager.current().execute(() -> getParentStatementHolder().addBefore(this, CopyPasteManager.pasteStatement()))); ActionMenuItem pasteAfterItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.paste_after"), e -> UndoManager.current().execute(() -> getParentStatementHolder().addAfter(this, CopyPasteManager.pasteStatement()))); + ActionMenuItem javadocsItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.javadocs"), e -> { + if (this instanceof StatMethod statMethod) { + JavadocsManager.getStatJavadocs(statMethod); + } + else { + VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.unavailable_javadocs")); + } + }); pasteBeforeItem.disableProperty().bind(CopyPasteManager.statementCopiedProperty().not()); pasteAfterItem.disableProperty().bind(pasteBeforeItem.disableProperty()); - getContextMenu().getItems().addAll(copyItem, cutItem, deleteItem, new SeparatorMenuItem(), copyStackItem, cutStackItem, deleteStackItem, new SeparatorMenuItem(), pasteBeforeItem, pasteAfterItem); + getContextMenu().getItems().addAll(copyItem, cutItem, deleteItem, new SeparatorMenuItem(), copyStackItem, cutStackItem, deleteStackItem, new SeparatorMenuItem(), pasteBeforeItem, pasteAfterItem, new SeparatorMenuItem(), javadocsItem); setOnDragDetected(e -> { if (e.getButton() == MouseButton.PRIMARY) { diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprField.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprField.java index 9decb553..0017a497 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprField.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprField.java @@ -33,4 +33,12 @@ public String generateJava(BuildInfo buildInfo) { } return arg(fieldInfo.isStatic() ? 0 : 2, buildInfo) + "." + fieldInfo.getName(); } + + public ClassParameter getClassParameter() { + return classParameter; + } + + public FieldParameter getFieldParameter() { + return fieldParameter; + } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMethod.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMethod.java index 93ed46ad..af66c79e 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMethod.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMethod.java @@ -58,4 +58,12 @@ public String generateJava(BuildInfo buildInfo) { builder.append(")"); return builder.toString(); } + + public ClassParameter getClassParameter() { + return classParameter; + } + + public MethodParameter getMethodParameter() { + return methodParameter; + } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatMethod.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatMethod.java index c2726e6f..9541b222 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatMethod.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatMethod.java @@ -54,4 +54,12 @@ public String generateJava(BuildInfo buildInfo) { builder.append(");"); return builder.toString(); } + + public ClassParameter getClassParameter() { + return classParameter; + } + + public MethodParameter getMethodParameter() { + return methodParameter; + } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java b/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java index 5c89f3dd..8ecc04d6 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java @@ -80,7 +80,13 @@ public class Project { private final StatementSelector statementSelector = new StatementSelector(); private final PluginSettings pluginSettings = new PluginSettings(); private final ListView mavenListView = new ListView<>(); + private final ListView javadocsUrlListView; + private final ListView javadocsValuesListView; + + private final String DEFAULT_JAVADOCS_URL = "https://jd.papermc.io/paper/1.21.4/"; + private final List DEFAULT_JAVADOCS_PACKAGES = new ArrayList<>((List.of("org.bukkit", "org.spigotmc", "co.aikar", "com.destroystokyo.paper", "io.papermc"))); private final ListSelectionView moduleSelector = new ListSelectionView<>(); + private static final HashMap> javadocsMap = new HashMap<>(); private final ObservableList pluginComponents = FXCollections.observableArrayList(); private final Map openPluginComponents = new HashMap<>(); private final TextField jarOutputField = new TextField(); @@ -144,15 +150,248 @@ protected void updateItem(MavenModule item, boolean empty) { addMavenRepository(PAPER_REPOSITORY); addMavenDependency(PAPER_DEPENDENCY); + javadocsUrlListView = new ListView<>(); + javadocsMap.clear(); + javadocsUrlListView.getItems().clear(); + javadocsUrlListView.getItems().add(DEFAULT_JAVADOCS_URL); + javadocsUrlListView.getSelectionModel().select(DEFAULT_JAVADOCS_URL); + javadocsUrlListView.getItems().add("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/"); + javadocsMap.put("https://jd.papermc.io/paper/1.21.4/", new ArrayList<>(List.of("org.bukkit", "org.spigotmc", "co.aikar", "com.destroystokyo.paper", "io.papermc"))); + javadocsMap.put("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/", new ArrayList<>(List.of("java", "jdk"))); + for (Map.Entry> entry : javadocsMap.entrySet()) { + javadocsUrlListView.getItems().add(entry.getKey()); + } + + ActionButton addUrlButton = new ActionButton(VisualBukkitApp.localizedText("button.add_url"), e -> { + TextInputDialog dialog = new TextInputDialog(); + dialog.setTitle(VisualBukkitApp.localizedText("window.add_javadocs_url")); + dialog.setHeaderText(null); + dialog.setGraphic(null); + dialog.setContentText(VisualBukkitApp.localizedText("dialog.add_javadocs_url")); + dialog.showAndWait().ifPresent(url -> { + if (url.endsWith("/")) { + if (!javadocsMap.containsKey(url)) { + javadocsMap.put(url, new ArrayList<>()); + javadocsUrlListView.getItems().add(url); + } + } else { + VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.invalid_javadocs_url")); + } + }); + }); + + ActionButton deleteUrlButton = new ActionButton(VisualBukkitApp.localizedText("button.delete_url"), e -> { + String selectedUrl = javadocsUrlListView.getSelectionModel().getSelectedItem(); + if (selectedUrl != null) { + if (selectedUrl.equals("https://jd.papermc.io/paper/1.21.4/") || selectedUrl.equals("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) { + return; + } + javadocsMap.remove(selectedUrl); + javadocsUrlListView.getItems().remove(selectedUrl); + } + }); + + ActionButton editUrlButton = new ActionButton(VisualBukkitApp.localizedText("button.edit_url"), e -> { + String selectedUrl = javadocsUrlListView.getSelectionModel().getSelectedItem(); + if (selectedUrl != null) { + if (selectedUrl.equals("https://jd.papermc.io/paper/1.21.4/") || selectedUrl.equals("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) { + return; + } + TextInputDialog dialog = new TextInputDialog(selectedUrl); + dialog.setTitle(VisualBukkitApp.localizedText("window.edit_javadocs_url")); + dialog.setHeaderText(null); + dialog.setGraphic(null); + dialog.setContentText(VisualBukkitApp.localizedText("dialog.edit_javadocs_url")); + dialog.showAndWait().ifPresent(url -> { + if (url.endsWith("/")) { + javadocsMap.put(url, javadocsMap.get(selectedUrl)); + javadocsMap.remove(selectedUrl); + javadocsUrlListView.getItems().set(javadocsUrlListView.getItems().indexOf(selectedUrl), url); + } else { + VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.invalid_javadocs_url")); + } + }); + } + }); + + ButtonVBox javadocsButtons = new ButtonVBox(addUrlButton, deleteUrlButton, editUrlButton); + javadocsButtons.bindSizes(); + + deleteUrlButton.disableProperty().bind( + javadocsUrlListView.getSelectionModel().selectedItemProperty().isNull() + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) + ); + editUrlButton.disableProperty().bind( + javadocsUrlListView.getSelectionModel().selectedItemProperty().isNull() + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) + ); + + javadocsValuesListView = new ListView<>(); + javadocsValuesListView.setPlaceholder(new Label(VisualBukkitApp.localizedText("label.no_values"))); + + ActionButton addValueButton = new ActionButton(VisualBukkitApp.localizedText("button.add_value"), e -> { + String key = javadocsUrlListView.getSelectionModel().getSelectedItem(); + if (key != null) { + TextInputDialog dialog = new TextInputDialog(); + dialog.setTitle(VisualBukkitApp.localizedText("window.add_value")); + dialog.setContentText(VisualBukkitApp.localizedText("dialog.add_value")); + dialog.setHeaderText(null); + dialog.setGraphic(null); + dialog.showAndWait().ifPresent(value -> { + if (value.isBlank() || javadocsValuesListView.getItems().contains(value)) { + return; + } + List list = javadocsMap.getOrDefault(key, new ArrayList<>()); + list.add(value); + javadocsMap.put(key, list); + javadocsValuesListView.getItems().setAll(list); + }); + } + }); + ActionButton deleteValueButton = new ActionButton(VisualBukkitApp.localizedText("button.delete_value"), e -> { + String key = javadocsUrlListView.getSelectionModel().getSelectedItem(); + String selectedValue = javadocsValuesListView.getSelectionModel().getSelectedItem(); + if (key != null && selectedValue != null) { + List list = javadocsMap.get(key); + if (list != null) { + list.remove(selectedValue); + javadocsValuesListView.getItems().setAll(list); + } + } + }); + ActionButton editValueButton = new ActionButton(VisualBukkitApp.localizedText("button.edit_value"), e -> { + String key = javadocsUrlListView.getSelectionModel().getSelectedItem(); + String selectedValue = javadocsValuesListView.getSelectionModel().getSelectedItem(); + if (key != null && selectedValue != null) { + TextInputDialog dialog = new TextInputDialog(selectedValue); + dialog.setTitle(VisualBukkitApp.localizedText("window.edit_value")); + dialog.setContentText(VisualBukkitApp.localizedText("dialog.edit_value")); + dialog.setHeaderText(null); + dialog.setGraphic(null); + dialog.showAndWait().ifPresent(newVal -> { + List list = javadocsMap.get(key); + if (list != null) { + int index = list.indexOf(selectedValue); + if (index != -1) { + list.set(index, newVal); + javadocsValuesListView.getItems().setAll(list); + } + } + }); + } + }); + + addValueButton.disableProperty().bind( + javadocsUrlListView.getSelectionModel().selectedItemProperty().isNull() + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) + ); + deleteValueButton.disableProperty().bind( + javadocsValuesListView.getSelectionModel().selectedItemProperty().isNull() + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) + ); + editValueButton.disableProperty().bind( + javadocsValuesListView.getSelectionModel().selectedItemProperty().isNull() + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) + ); + + ButtonVBox javadocsValuesButtons = new ButtonVBox(addValueButton, deleteValueButton, editValueButton); + javadocsValuesButtons.bindSizes(); + + javadocsUrlListView.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal) -> { + if (newVal != null && javadocsMap.containsKey(newVal)) { + javadocsValuesListView.getItems().setAll(javadocsMap.get(newVal)); + } else { + javadocsValuesListView.getItems().clear(); + } + }); + + HBox javadocsPane = new HBox(javadocsButtons, javadocsUrlListView, javadocsValuesListView, javadocsValuesButtons); + + javadocsUrlListView.setCellFactory(new Callback<>() { + @Override + public ListCell call(ListView param) { + return new ListCell<>() { + @Override + protected void updateItem(String item, boolean empty) { + super.updateItem(item, empty); + if (item != null && !empty) { + setText(item); + if (item.equals("https://jd.papermc.io/paper/1.21.4/") || item.equals("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) { + setGraphic(new FontIcon(FontAwesomeSolid.LOCK)); + } else { + setGraphic(null); + } + } else { + setText(null); + setGraphic(null); + } + } + }; + } + }); + + javadocsPane.getStyleClass().add("javadocs-settings-pane"); + javadocsPane.setSpacing(10); + javadocsValuesListView.setPlaceholder(new Label(VisualBukkitApp.localizedText("label.no_javadocs"))); + javadocsValuesListView.setCellFactory(new Callback<>() { + @Override + public ListCell call(ListView param) { + return new ListCell<>() { + @Override + protected void updateItem(String item, boolean empty) { + super.updateItem(item, empty); + if (item != null && !empty) { + setText(item); + if (DEFAULT_JAVADOCS_PACKAGES.contains(item) || item.equals("java") || item.equals("jdk")) { + setGraphic(new FontIcon(FontAwesomeSolid.LOCK)); + } else { + setGraphic(null); + } + } else { + setText(null); + setGraphic(null); + } + } + }; + } + }); + Tab pluginYmlTab = new Tab(VisualBukkitApp.localizedText("label.plugin_attributes"), pluginSettings.getGrid()); Tab mavenTab = new Tab(VisualBukkitApp.localizedText("label.maven"), mavenPane); Tab modulesTab = new Tab(VisualBukkitApp.localizedText("label.modules"), moduleSelector); - TabPane settingsTabPane = new TabPane(pluginYmlTab, modulesTab, mavenTab, new Tab()); + Tab javadocsTab = new Tab(VisualBukkitApp.localizedText("label.javadocs"), javadocsPane); + TabPane settingsTabPane = new TabPane(pluginYmlTab, modulesTab, mavenTab, javadocsTab, new Tab()); settingsTabPane.getStyleClass().add("plugin-settings-tab-pane"); settingsTabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE); PopupWindow pluginSettingsWindow = new PopupWindow(VisualBukkitApp.localizedText("window.plugin_settings"), settingsTabPane); pluginSettingsWindow.setOnShowing(e -> { + pluginSettingsWindow.setY(VisualBukkitApp.getPrimaryStage().getY() + VisualBukkitApp.getPrimaryStage().getHeight() / 2 - 300); + if (settingsTabPane.getSelectionModel().getSelectedItem() != javadocsTab) { + pluginSettingsWindow.setX(VisualBukkitApp.getPrimaryStage().getX() + VisualBukkitApp.getPrimaryStage().getWidth() / 2 - 400); + pluginSettingsWindow.setWidth(800); + } + else { + pluginSettingsWindow.setX(VisualBukkitApp.getPrimaryStage().getX() + VisualBukkitApp.getPrimaryStage().getWidth() / 2 - 700); + pluginSettingsWindow.setWidth(1400); + javadocsPane.setPrefSize(1400, 600); + } + settingsTabPane.getSelectionModel().selectedItemProperty().addListener((obs, oldTab, newTab) -> { + if (newTab == javadocsTab) { + pluginSettingsWindow.setX(VisualBukkitApp.getPrimaryStage().getX() + VisualBukkitApp.getPrimaryStage().getWidth() / 2 - 700); + pluginSettingsWindow.setWidth(1400); + javadocsPane.setPrefSize(1400, 600); + } else { + pluginSettingsWindow.setX(VisualBukkitApp.getPrimaryStage().getX() + VisualBukkitApp.getPrimaryStage().getWidth() / 2 - 400); + pluginSettingsWindow.setWidth(800); + } + }); + CheckBoxTreeItem rootItem = new CheckBoxTreeItem<>(VisualBukkitApp.localizedText("label.plugin_components")); rootItem.setSelected(true); rootItem.setExpanded(true); @@ -184,7 +423,7 @@ protected void updateItem(MavenModule item, boolean empty) { gridPane.addRow(3, new Label(VisualBukkitApp.localizedText("label.debug_mode")), new HBox(debugModeCheckBox, new IconButton(FontAwesomeRegular.QUESTION_CIRCLE, e2 -> VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Development-Assistance-Plugin#debug-mode"))))); gridPane.addRow(4, label, treeView); gridPane.getStyleClass().add("build-settings-pane"); - settingsTabPane.getTabs().set(3, new Tab(VisualBukkitApp.localizedText("label.build"), gridPane)); + settingsTabPane.getTabs().set(4, new Tab(VisualBukkitApp.localizedText("label.build"), gridPane)); }); pluginSettingsWindow.setOnHidden(e -> { if (reloadRequired) { @@ -369,6 +608,30 @@ protected void open() throws IOException { } } + if (data.has("javadocs")) { + JSONObject javadocsJson = data.getJSONObject("javadocs"); + javadocsMap.clear(); + javadocsUrlListView.getItems().clear(); + for (String url : javadocsJson.keySet()) { + JSONArray arr = javadocsJson.getJSONArray(url); + List list = new ArrayList<>(); + for (int i = 0; i < arr.length(); i++) { + list.add(arr.getString(i)); + } + javadocsMap.put(url, list); + javadocsUrlListView.getItems().add(url); + } + } + + if (!javadocsMap.containsKey(DEFAULT_JAVADOCS_URL) || javadocsMap.get(DEFAULT_JAVADOCS_URL).isEmpty()) { + javadocsMap.put(DEFAULT_JAVADOCS_URL, DEFAULT_JAVADOCS_PACKAGES); + javadocsUrlListView.getItems().add(DEFAULT_JAVADOCS_URL); + javadocsValuesListView.getItems().setAll(DEFAULT_JAVADOCS_PACKAGES); + } + if (javadocsUrlListView.getSelectionModel().isEmpty()) { + javadocsUrlListView.getSelectionModel().select(DEFAULT_JAVADOCS_URL); + } + tabPane.getSelectionModel().select(data.optInt("selected-tab")); statementSelector.reloadStatements(); VisualBukkitApp.getRootPane().setCenter(projectPane); @@ -382,6 +645,7 @@ public void save() throws IOException { data.remove("enabled-modules"); data.remove("maven-repositories"); data.remove("maven-dependencies"); + data.remove("javadocs"); data.put("selected-tab", tabPane.getSelectionModel().getSelectedIndex()); data.put("plugin-settings", pluginSettings.serialize()); data.put("debug-mode", debugModeCheckBox.isSelected()); @@ -404,6 +668,11 @@ public void save() throws IOException { for (PluginComponent pluginComponent : pluginComponents) { pluginComponent.save(); } + JSONObject javadocsJson = new JSONObject(); + for (Map.Entry> entry : javadocsMap.entrySet()) { + javadocsJson.put(entry.getKey(), new JSONArray(entry.getValue())); + } + data.put("javadocs", javadocsJson); Files.createDirectories(directory); Files.writeString(dataFile, data.toString(2)); } @@ -840,6 +1109,10 @@ public Path getDirectory() { return directory; } + public static HashMap> getJavadocsMap() { + return javadocsMap; + } + public Path getBuildDirectory() { return buildDirectory; } diff --git a/VB-Application/src/main/resources/css/default.css b/VB-Application/src/main/resources/css/default.css index 7d7c3749..98024acb 100644 --- a/VB-Application/src/main/resources/css/default.css +++ b/VB-Application/src/main/resources/css/default.css @@ -175,6 +175,15 @@ HBox { -fx-opacity: 0.5; } +.javadocs-settings-pane { + -fx-padding: 0.5em; + -fx-spacing: 0.5em; +} + +.javadocs-settings-pane > .list-view { + -fx-pref-width: 35em; +} + .list-selection-view { -fx-pref-height: 30em; -fx-pref-width: 40em; diff --git a/VB-Application/src/main/resources/lang/gui.properties b/VB-Application/src/main/resources/lang/gui.properties index 020f71e2..92c41dfe 100644 --- a/VB-Application/src/main/resources/lang/gui.properties +++ b/VB-Application/src/main/resources/lang/gui.properties @@ -2,9 +2,15 @@ button.add=Add button.add_component=Add Component button.add_dependency=Add Dependency button.add_repository=Add Repository +button.add_url=Add URL +button.add_value=Add Package button.build_plugin=Build Plugin button.delete=Delete +button.delete_url=Delete URL +button.delete_value=Delete Package button.edit=Edit +button.edit_url=Edit URL +button.edit_value=Edit Package button.export=Export button.ignore=Ignore button.import=Import @@ -23,6 +29,7 @@ context_menu.cut_stack=Cut Stack context_menu.delete=Delete context_menu.delete_stack=Delete Stack context_menu.expand_all=Expand All +context_menu.javadocs=See Javadocs context_menu.paste=Paste context_menu.paste_after=Paste After context_menu.paste_before=Paste Before @@ -31,6 +38,8 @@ context_menu.pin=Pin context_menu.unpin=Unpin dialog.add_component_name=Name: dialog.add_component_type=Type: +dialog.add_javadocs_url=URL: +dialog.add_value=Package: dialog.confirm_delete=Are you sure you want to delete '%s'?\n(warning: this cannot be undone) dialog.confirm_deploy_plugin=Received deploy request, do you want to send the plugin jar? dialog.confirm_import_inventory=Received exported inventory, do you want to copy to clipboard? @@ -39,6 +48,8 @@ dialog.confirm_import_location=Received exported location, do you want to copy t dialog.confirm_reload=Project reload is required, do you want to reload now? dialog.confirm_report_exception=Received error report, do you want to view the corresponding block? dialog.create_project=Name: +dialog.edit_javadocs_url=Javadocs URL: +dialog.edit_value=Package: dialog.import_plugin_component=Name: dialog.open_project=Project: dialog.rename_plugin_component=New name: @@ -51,10 +62,13 @@ label.disabled=Disabled label.enabled=Enabled label.included=Included: label.jar_output=Jar output: +label.javadocs=Javadocs label.maven=Maven label.modules=Modules +label.no_javadocs = No packages found label.no_maven_dependencies=No dependencies/repositories label.no_plugin_components=No plugin components +label.no_values=No packages found label.package=Package: label.plugin_attributes=Attributes label.plugin_components=Plugin Components @@ -97,12 +111,14 @@ menu.undo=Undo notification.added_plugin_component=Added plugin component notification.deleted_plugin_component=Deleted plugin component notification.error_title=Error +notification.unavailable_javadocs=Javadocs for this block is currently unavailable notification.exported_plugin_component=Exported plugin component notification.exported_project=Exported project notification.imported_item=Copied item to clipboard notification.imported_plugin_component=Imported plugin component notification.imported_project=Imported project notification.info_title=Info +notification.invalid_javadocs_url=Invalid Javadocs URL notification.invalid_maven_dependency=Invalid dependency notification.invalid_maven_repository=Invalid repository notification.no_plugin_jar=Failed to find a plugin jar to deploy @@ -121,9 +137,13 @@ notification.saved_project=Saved project notification.undo_failure=There are no actions to undo notification.unexpected_error=An unexpected error occurred window.add_component=Add Component +window.add_javadocs_url=Add Javadocs URL window.add_maven_dependency=Add Dependency window.add_maven_repository=Add Repository +window.add_value=Add Package window.create_project=Create Project +window.edit_javadocs_url=Edit Javadocs URL +window.edit_value=Edit Package window.import_plugin_component=Import Plugin Component window.import_project=Import Project window.log=Log diff --git a/VB-Application/src/main/resources/lang/gui_en_US.properties b/VB-Application/src/main/resources/lang/gui_en_US.properties index 020f71e2..48f4c9a4 100644 --- a/VB-Application/src/main/resources/lang/gui_en_US.properties +++ b/VB-Application/src/main/resources/lang/gui_en_US.properties @@ -29,6 +29,7 @@ context_menu.paste_before=Paste Before context_menu.paste_inside=Paste Inside context_menu.pin=Pin context_menu.unpin=Unpin +context_menu.javadocs = See Javadocs dialog.add_component_name=Name: dialog.add_component_type=Type: dialog.confirm_delete=Are you sure you want to delete '%s'?\n(warning: this cannot be undone) From aa55dbfb1d348bbe93996b939f447639c158d73c Mon Sep 17 00:00:00 2001 From: Priyan_17 <101181090+Reaper-1709@users.noreply.github.com> Date: Sun, 16 Mar 2025 20:39:27 +0530 Subject: [PATCH 2/7] Changed java javadocs version to 1.17 --- .../gmail/visualbukkit/project/Project.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java b/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java index 8ecc04d6..36a9d9dc 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java @@ -155,9 +155,9 @@ protected void updateItem(MavenModule item, boolean empty) { javadocsUrlListView.getItems().clear(); javadocsUrlListView.getItems().add(DEFAULT_JAVADOCS_URL); javadocsUrlListView.getSelectionModel().select(DEFAULT_JAVADOCS_URL); - javadocsUrlListView.getItems().add("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/"); + javadocsUrlListView.getItems().add("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/"); javadocsMap.put("https://jd.papermc.io/paper/1.21.4/", new ArrayList<>(List.of("org.bukkit", "org.spigotmc", "co.aikar", "com.destroystokyo.paper", "io.papermc"))); - javadocsMap.put("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/", new ArrayList<>(List.of("java", "jdk"))); + javadocsMap.put("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/", new ArrayList<>(List.of("java", "jdk"))); for (Map.Entry> entry : javadocsMap.entrySet()) { javadocsUrlListView.getItems().add(entry.getKey()); } @@ -183,7 +183,7 @@ protected void updateItem(MavenModule item, boolean empty) { ActionButton deleteUrlButton = new ActionButton(VisualBukkitApp.localizedText("button.delete_url"), e -> { String selectedUrl = javadocsUrlListView.getSelectionModel().getSelectedItem(); if (selectedUrl != null) { - if (selectedUrl.equals("https://jd.papermc.io/paper/1.21.4/") || selectedUrl.equals("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) { + if (selectedUrl.equals("https://jd.papermc.io/paper/1.21.4/") || selectedUrl.equals("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) { return; } javadocsMap.remove(selectedUrl); @@ -194,7 +194,7 @@ protected void updateItem(MavenModule item, boolean empty) { ActionButton editUrlButton = new ActionButton(VisualBukkitApp.localizedText("button.edit_url"), e -> { String selectedUrl = javadocsUrlListView.getSelectionModel().getSelectedItem(); if (selectedUrl != null) { - if (selectedUrl.equals("https://jd.papermc.io/paper/1.21.4/") || selectedUrl.equals("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) { + if (selectedUrl.equals("https://jd.papermc.io/paper/1.21.4/") || selectedUrl.equals("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) { return; } TextInputDialog dialog = new TextInputDialog(selectedUrl); @@ -220,12 +220,12 @@ protected void updateItem(MavenModule item, boolean empty) { deleteUrlButton.disableProperty().bind( javadocsUrlListView.getSelectionModel().selectedItemProperty().isNull() .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) ); editUrlButton.disableProperty().bind( javadocsUrlListView.getSelectionModel().selectedItemProperty().isNull() .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) ); javadocsValuesListView = new ListView<>(); @@ -286,17 +286,17 @@ protected void updateItem(MavenModule item, boolean empty) { addValueButton.disableProperty().bind( javadocsUrlListView.getSelectionModel().selectedItemProperty().isNull() .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) ); deleteValueButton.disableProperty().bind( javadocsValuesListView.getSelectionModel().selectedItemProperty().isNull() .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) ); editValueButton.disableProperty().bind( javadocsValuesListView.getSelectionModel().selectedItemProperty().isNull() .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) ); ButtonVBox javadocsValuesButtons = new ButtonVBox(addValueButton, deleteValueButton, editValueButton); @@ -321,7 +321,7 @@ protected void updateItem(String item, boolean empty) { super.updateItem(item, empty); if (item != null && !empty) { setText(item); - if (item.equals("https://jd.papermc.io/paper/1.21.4/") || item.equals("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/")) { + if (item.equals("https://jd.papermc.io/paper/1.21.4/") || item.equals("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) { setGraphic(new FontIcon(FontAwesomeSolid.LOCK)); } else { setGraphic(null); From 6bb72eddbf07ee9361585dbfb05fcdaeb739aae3 Mon Sep 17 00:00:00 2001 From: Priyan_17 <101181090+Reaper-1709@users.noreply.github.com> Date: Mon, 17 Mar 2025 15:06:36 +0530 Subject: [PATCH 3/7] Javadocs third commit: 1. roll-backed VisualBukkitApp.java due to presence of unnecessary changes 2. Commited JavadocsManager.java --- .../visualbukkit/project/JavadocsManager.java | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java b/VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java new file mode 100644 index 00000000..5fe3c33c --- /dev/null +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java @@ -0,0 +1,96 @@ +package com.gmail.visualbukkit.project; + +import com.gmail.visualbukkit.VisualBukkitApp; +import com.gmail.visualbukkit.blocks.PluginComponentBlock; +import com.gmail.visualbukkit.blocks.definitions.core.CompEventListener; +import com.gmail.visualbukkit.blocks.definitions.core.ExprField; +import com.gmail.visualbukkit.blocks.definitions.core.ExprMethod; +import com.gmail.visualbukkit.blocks.definitions.core.StatMethod; + +import java.awt.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.Supplier; + +public class JavadocsManager { + + public static void getStatJavadocs(StatMethod statMethod) { + getJavadocs(statMethod.getClassParameter().getValue().getName(), statMethod.getMethodParameter().getValue().getSignature()); + } + + public static void getExprJavadocs(ExprMethod exprMethod) { + getJavadocs(exprMethod.getClassParameter().getValue().getName(), exprMethod.getMethodParameter().getValue().getSignature()); + } + + public static void getExprJavadocs(ExprField exprField) { + getJavadocs(exprField.getClassParameter().getValue().getName(), exprField.getFieldParameter().getValue().getName()); + } + + public static void getCompJavaDocs(PluginComponent pluginComponent) { + switch (pluginComponent.getBlockType().orElse("Unknown")) { + case "comp-command": + getJavadocs("org.bukkit.command.Command", ""); + break; + case "comp-event-listener": + CompEventListener compEventListener = (CompEventListener) pluginComponent.getBlock().orElseGet(CompEventListener::new); + getJavadocs((compEventListener.getEvent().getPackage() + "/" + compEventListener.getEvent().toString().split("\\(")[0]).strip(), ""); + break; + case "comp-plugin-enable": + getJavadocs("org.bukkit.plugin.java.JavaPlugin", "onEnable()"); + break; + case "comp-plugin-disable": + getJavadocs("org.bukkit.plugin.java.JavaPlugin", "onDisable()"); + break; + case "comp-tab-complete-handler": + getJavadocs("org.bukkit.command.TabCompleter", "onTabComplete()"); + break; + case "comp-gui": + getJavadocs("org.bukkit.inventory.Inventory", ""); + break; + case "comp-gui-click-handler": + getJavadocs("org.bukkit.event.inventory.InventoryClickEvent", ""); + break; + case "comp-function": + getJavadocs("java.util.function.Function", ""); + break; + case "comp-procedure": + getJavadocs("java.util.function.Supplier", ""); + break; + case "comp-consumer": + getJavadocs("java.util.function.Consumer", ""); + break; + + default: + VisualBukkitApp.getLogger().warning("No Javadocs available for this component: " + pluginComponent.getBlockType().orElse("Unknown")); + } + } + + + private static void getJavadocs(String className, String methodName) { + for (List packages : Project.getJavadocsMap().values()) { + for (String packageName : packages) { + if (className.startsWith(packageName)) { + String baseUrl = getKeyByValue(Project.getJavadocsMap(), packageName); + String url = baseUrl + className.replaceAll("\\.", "/") + ".html#" + methodName; + try { + Desktop.getDesktop().browse(java.net.URI.create(url)); + } catch (java.io.IOException e) { + VisualBukkitApp.getLogger().warning("Please ensure you have a browser installed on your system."); + } + } + } + } + } + + private static String getKeyByValue(HashMap> map, String value) { + for (Map.Entry> entry : map.entrySet()) { + if (entry.getValue().contains(value)) { + return entry.getKey(); + } + } + return null; + } + +} From b0fc46a7f1e80c9f370a55e10a02e1f1cffe5645 Mon Sep 17 00:00:00 2001 From: Priyan_17 <101181090+Reaper-1709@users.noreply.github.com> Date: Mon, 24 Mar 2025 15:20:26 +0530 Subject: [PATCH 4/7] reverted VisualBukkitApp (hopefully) --- .../com/gmail/visualbukkit/VisualBukkitApp.java | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/VisualBukkitApp.java b/VB-Application/src/main/java/com/gmail/visualbukkit/VisualBukkitApp.java index 1546ec3c..307dbab4 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/VisualBukkitApp.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/VisualBukkitApp.java @@ -5,7 +5,6 @@ import com.gmail.visualbukkit.project.ProjectManager; import com.gmail.visualbukkit.project.UndoManager; import com.gmail.visualbukkit.ui.ActionMenuItem; -import com.gmail.visualbukkit.ui.JavadocsWindow; import com.gmail.visualbukkit.ui.LogWindow; import com.google.common.io.MoreFiles; import com.install4j.api.launcher.ApplicationLauncher; @@ -13,14 +12,11 @@ import javafx.application.Application; import javafx.application.Platform; import javafx.beans.property.*; -import javafx.geometry.Side; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.control.*; -import javafx.scene.control.Button; import javafx.scene.control.Menu; import javafx.scene.control.MenuBar; -import javafx.scene.control.MenuItem; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.image.Image; @@ -30,7 +26,6 @@ import javafx.stage.Stage; import javafx.util.Duration; import org.apache.commons.lang3.SystemUtils; -import org.checkerframework.checker.nullness.qual.NonNull; import org.controlsfx.control.Notifications; import org.controlsfx.control.action.Action; import org.json.JSONException; @@ -70,7 +65,6 @@ public class VisualBukkitApp extends Application { private static final BorderPane rootPane = new BorderPane(); private static LogWindow logWindow; - private static JavadocsWindow javadocsWindow; private static Stage primaryStage; private static final String DEFAULT_THEME = "css/dark.css"; @@ -169,12 +163,12 @@ public void start(Stage primaryStage) throws IOException { new Menu(localizedText("menu.settings"), null, createThemesMenu(), createFontSizeMenu(), - createLanguageMenu())); + createLanguageMenu()), new Menu(localizedText("menu.help"), null, new ActionMenuItem("Github", FontAwesomeBrands.GITHUB, e -> openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit"))), new ActionMenuItem("Spigot", FontAwesomeSolid.FAUCET, e -> openURI(URI.create("https://www.spigotmc.org/resources/visual-bukkit-create-plugins.76474/"))), new ActionMenuItem("Discord", FontAwesomeBrands.DISCORD, e -> openURI(URI.create("https://discord.gg/ugkvGpu"))), - new ActionMenuItem(localizedText("menu.check_for_update"), FontAwesomeSolid.CLOUD_DOWNLOAD_ALT, e -> checkForUpdate(true))); + new ActionMenuItem(localizedText("menu.check_for_update"), FontAwesomeSolid.CLOUD_DOWNLOAD_ALT, e -> checkForUpdate(true)))); if (SystemUtils.IS_OS_MAC) { menuBar.setUseSystemMenuBar(true); @@ -497,10 +491,6 @@ public static LogWindow getLogWindow() { return logWindow; } - public static JavadocsWindow getJavadocsWindow() { - return javadocsWindow; - } - public static Stage getPrimaryStage() { return primaryStage; } From 134c41fad037c828c13de3a99c64fe16b925ae56 Mon Sep 17 00:00:00 2001 From: Priyan_17 <101181090+Reaper-1709@users.noreply.github.com> Date: Tue, 25 Mar 2025 12:55:59 +0530 Subject: [PATCH 5/7] Javadocs finalization: - Added javadocs url for all statements and expressions - Added remap system to explicitly redirect to a different javadocs page for a given method - some optimizations in Project.java --- .../visualbukkit/blocks/ExpressionBlock.java | 122 ++++++++++++++++-- .../visualbukkit/blocks/StatementBlock.java | 72 +++++++++-- .../visualbukkit/project/JavadocsManager.java | 50 ++++--- .../gmail/visualbukkit/project/Project.java | 119 +++++++++++------ 4 files changed, 276 insertions(+), 87 deletions(-) diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java index ff843e87..4e83dfdb 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java @@ -1,9 +1,8 @@ package com.gmail.visualbukkit.blocks; import com.gmail.visualbukkit.VisualBukkitApp; -import com.gmail.visualbukkit.blocks.definitions.core.ExprField; -import com.gmail.visualbukkit.blocks.definitions.core.ExprMethod; -import com.gmail.visualbukkit.blocks.definitions.core.StatMethod; +import com.gmail.visualbukkit.blocks.definitions.core.*; +import com.gmail.visualbukkit.blocks.definitions.gui.*; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.project.CopyPasteManager; @@ -24,6 +23,8 @@ import javafx.scene.paint.Color; import org.json.JSONObject; +import java.net.URI; + public non-sealed abstract class ExpressionBlock extends Block { private static final PseudoClass NESTED_STYLE_CLASS = PseudoClass.getPseudoClass("nested"); @@ -40,12 +41,115 @@ public ExpressionBlock() { }), new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.delete"), e -> UndoManager.current().execute(this::delete)), new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.javadocs"), e -> { - if (this instanceof ExprMethod) { - JavadocsManager.getExprJavadocs((ExprMethod) this); - } else if (this instanceof ExprField) { - JavadocsManager.getExprJavadocs((ExprField) this); - } else { - VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.unavailable_javadocs")); + switch (this) { + case ExprBoolean exprBoolean -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html")); + case ExprBooleanLogic exprBooleanLogic -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); + case ExprColoredString exprColoredString -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/ChatColor.html")); + case ExprCommandArgument exprCommandArgument -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/Command.html")); + case ExprCommandArguments exprCommandArguments -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/Command.html")); + case ExprCommandSender exprCommandSender -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/CommandSender.html")); + case ExprConditionalExpression exprConditionalExpression -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); + case ExprConsumer exprConsumer -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html")); + case ExprConsumerInput exprConsumerInput -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html")); + case ExprCurrentEvent exprCurrentEvent -> + JavadocsManager.getCompJavaDocs(exprCurrentEvent.getPluginComponentBlock().getPluginComponent()); + case ExprEscapeSequence exprEscapeSequence -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/data/characters.html")); + case ExprExecutionException exprExecutionException -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html")); + case ExprField exprField -> JavadocsManager.getExprJavadocs(exprField); + case ExprFunctionArgument exprFunctionArgument -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html")); + case ExprFunctionArguments exprFunctionArguments -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html")); + case ExprFunctionValue exprFunctionValue -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html")); + case ExprGlobalVariable exprGlobalVariable -> + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + case ExprHashMap exprHashMap -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html")); + case ExprHashSet exprHashSet -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html")); + case ExprHexColoredString exprHexColoredString -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/ChatColor.html")); + case ExprImmutableList exprImmutableList -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/List.html")); + case ExprIsClass exprIsClass -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html")); + case ExprIsEqual exprIsEqual -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); + case ExprIsNull exprIsNull -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Objects.html#isNull(java.lang.Object)")); + case ExprItemStack exprItemStack -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/ItemStack.html")); + case ExprJavaCode exprJavaCode -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html")); + case ExprList exprList -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/List.html")); + case ExprLocalVariable exprLocalVariable -> + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + case ExprLoopNumber exprLoopNumber -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); + case ExprLoopValue exprLoopValue -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); + case ExprMath exprMath -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html")); + case ExprMethod exprMethod -> JavadocsManager.getExprJavadocs(exprMethod); + case ExprMultilineString exprMultilineString -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/data/strings/multiline.html")); + case ExprNegateBoolean exprNegateBoolean -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); + case ExprNewObject exprNewObject -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html")); + case ExprNull exprNull -> + VisualBukkitApp.openURI(URI.create("https://www.upwork.com/resources/what-is-null-in-java")); + case ExprNumber exprNumber -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html")); + case ExprNumberComparison exprNumberComparison -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); + case ExprPersistentVariable exprPersistentVariable -> + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + case ExprProcedureArgument exprProcedureArgument -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html")); + case ExprProcedureArguments exprProcedureArguments -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html")); + case ExprRawString exprRawString -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/data/strings/index.html")); + case ExprSerializedItemStack exprSerializedItemStack -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/ItemStack.html")); + case ExprString exprString -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html")); + case ExprStringConcatenation exprStringConcatenation -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html#concat(java.lang.String)")); + case ExprThisPlugin exprThisPlugin -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/plugin/java/JavaPlugin.html")); + case ExprGUIClickedInventory exprGUIClickedInventory -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getClickedInventory()")); + case ExprGUIClickedItemStack exprGUIClickedItemStack -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getCurrentItem()")); + case ExprGUIClickedSlot exprGUIClickedSlot -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getSlot()")); + case ExprGUIClicker exprGUIClicker -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getWhoClicked()")); + case ExprGUIClickType exprGUIClickType -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getAction()")); + case ExprGUIInventory exprGUIInventory -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getView()")); + case ExprGUIInventoryClickEvent exprGUIInventoryClickEvent -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html")); + case ExprGUIPlayer exprGUIPlayer -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/entity/Player.html")); + default -> + VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.unavailable_javadocs")); } })); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java index 6403e3e5..ba595f48 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java @@ -1,11 +1,10 @@ package com.gmail.visualbukkit.blocks; import com.gmail.visualbukkit.VisualBukkitApp; -import com.gmail.visualbukkit.blocks.definitions.core.StatMethod; -import com.gmail.visualbukkit.project.BuildInfo; -import com.gmail.visualbukkit.project.CopyPasteManager; -import com.gmail.visualbukkit.project.JavadocsManager; -import com.gmail.visualbukkit.project.UndoManager; +import com.gmail.visualbukkit.blocks.definitions.core.*; +import com.gmail.visualbukkit.blocks.definitions.gui.StatOpenGUI; +import com.gmail.visualbukkit.blocks.definitions.gui.StatSetGUISlot; +import com.gmail.visualbukkit.project.*; import com.gmail.visualbukkit.ui.ActionMenuItem; import javafx.scene.SnapshotParameters; import javafx.scene.control.SeparatorMenuItem; @@ -19,6 +18,8 @@ import org.apache.commons.lang3.RandomStringUtils; import org.json.JSONObject; +import java.net.URI; + public non-sealed abstract class StatementBlock extends Block { public StatementBlock() { @@ -39,11 +40,62 @@ public StatementBlock() { ActionMenuItem pasteBeforeItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.paste_before"), e -> UndoManager.current().execute(() -> getParentStatementHolder().addBefore(this, CopyPasteManager.pasteStatement()))); ActionMenuItem pasteAfterItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.paste_after"), e -> UndoManager.current().execute(() -> getParentStatementHolder().addAfter(this, CopyPasteManager.pasteStatement()))); ActionMenuItem javadocsItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.javadocs"), e -> { - if (this instanceof StatMethod statMethod) { - JavadocsManager.getStatJavadocs(statMethod); - } - else { - VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.unavailable_javadocs")); + switch (this) { + case StatAdvancedNumberLoop statAdvancedNumberLoop -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); + case StatAttemptExecution statAttemptExecution -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/essential/exceptions/try.html")); + case StatBreakLoop statBreakLoop -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html")); + case StatCancelScheduledTask statCancelScheduledTask -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/scheduler/BukkitScheduler.html#cancelTask(int)")); + case StatCommandReturn statCommandReturn -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/CommandSender.html#sendMessage(java.lang.String)")); + case StatComment statComment -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/comments.html")); + case StatContinueLoop statContinueLoop -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html")); + case StatElseIfStatement statElseIfStatement -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); + case StatElseStatement statElseStatement -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); + case StatExecuteProcedure statExecuteProcedure -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html")); + case StatFunctionReturn statFunctionReturn -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html")); + case StatHandleException statHandleException -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html")); + case StatIfStatement statIfStatement -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); + case StatJavaCode statJavaCode -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html")); + case StatListLoop statListLoop -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/technotes/guides/language/foreach.html")); + case StatMethod statMethod -> JavadocsManager.getStatJavadocs(statMethod); + case StatNumberLoop statNumberLoop -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); + case StatScheduleTask statScheduleTask -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/scheduler/BukkitScheduler.html#runTask(org.bukkit.plugin.java.JavaPlugin,java.lang.Runnable)")); + case StatSetGlobalVariable statSetGlobalVariable -> + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + case StatSetLocalVariable statSetLocalVariable -> + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + case StatSetPersistentVariable statSetPersistentVariable -> + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + case StatSetPlayerHeadSkin statSetPlayerHeadSkin -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/meta/SkullMeta.html#setOwner(java.lang.String)")); + case StatSetPlayerSkin statSetPlayerSkin -> + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/blob/master/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPlayerSkin.java")); + case StatTabCompleteReturn statTabCompleteReturn -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/TabCompleter.html#onTabComplete(org.bukkit.command.CommandSender,org.bukkit.command.Command,java.lang.String,java.lang.String[])")); + case StatWhileLoop statWhileLoop -> + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html")); + case StatOpenGUI statOpenGUI -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/entity/HumanEntity.html#openInventory(org.bukkit.inventory.Inventory)")); + case StatSetGUISlot statSetGUISlot -> + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/Inventory.html#setItem(int,org.bukkit.inventory.ItemStack)")); + default -> + VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.unavailable_javadocs")); } }); pasteBeforeItem.disableProperty().bind(CopyPasteManager.statementCopiedProperty().not()); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java b/VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java index 5fe3c33c..f1671060 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java @@ -1,18 +1,12 @@ package com.gmail.visualbukkit.project; import com.gmail.visualbukkit.VisualBukkitApp; -import com.gmail.visualbukkit.blocks.PluginComponentBlock; -import com.gmail.visualbukkit.blocks.definitions.core.CompEventListener; -import com.gmail.visualbukkit.blocks.definitions.core.ExprField; -import com.gmail.visualbukkit.blocks.definitions.core.ExprMethod; -import com.gmail.visualbukkit.blocks.definitions.core.StatMethod; +import com.gmail.visualbukkit.blocks.definitions.core.*; +import org.json.JSONObject; -import java.awt.*; -import java.util.HashMap; +import java.net.URI; import java.util.List; import java.util.Map; -import java.util.Optional; -import java.util.function.Supplier; public class JavadocsManager { @@ -67,30 +61,34 @@ public static void getCompJavaDocs(PluginComponent pluginComponent) { } } - private static void getJavadocs(String className, String methodName) { - for (List packages : Project.getJavadocsMap().values()) { - for (String packageName : packages) { - if (className.startsWith(packageName)) { - String baseUrl = getKeyByValue(Project.getJavadocsMap(), packageName); - String url = baseUrl + className.replaceAll("\\.", "/") + ".html#" + methodName; - try { - Desktop.getDesktop().browse(java.net.URI.create(url)); - } catch (java.io.IOException e) { - VisualBukkitApp.getLogger().warning("Please ensure you have a browser installed on your system."); - } + JSONObject remapData = Project.getRemapData(); + if (remapData != null) { + String key = className + "#" + methodName; + if (remapData.has(key)) { + String remapped = remapData.getString(key); + String[] parts = remapped.split("#"); + if (parts.length == 2) { + className = parts[0]; + methodName = parts[1]; + } else { + methodName = remapped; } } } - } - private static String getKeyByValue(HashMap> map, String value) { - for (Map.Entry> entry : map.entrySet()) { - if (entry.getValue().contains(value)) { - return entry.getKey(); + for (Map.Entry> entry : Project.getJavadocsMap().entrySet()) { + String baseUrl = entry.getKey(); + List packages = entry.getValue(); + + for (String packageName : packages) { + if (className.startsWith(packageName)) { + String url = baseUrl + className.replaceAll("\\.", "/") + ".html#" + methodName; + VisualBukkitApp.openURI(URI.create(url)); + return; + } } } - return null; } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java b/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java index 36a9d9dc..1f59ef7e 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/project/Project.java @@ -67,10 +67,12 @@ public class Project { private final Path directory; private final Path dataFile; + private final Path remapFile; private final Path pluginComponentDirectory; private final Path resourcesDirectory; private final Path buildDirectory; private JSONObject data = new JSONObject(); + private static JSONObject remapData = new JSONObject(); private boolean reloadRequired; private final BorderPane projectPane = new BorderPane(); @@ -85,6 +87,7 @@ public class Project { private final String DEFAULT_JAVADOCS_URL = "https://jd.papermc.io/paper/1.21.4/"; private final List DEFAULT_JAVADOCS_PACKAGES = new ArrayList<>((List.of("org.bukkit", "org.spigotmc", "co.aikar", "com.destroystokyo.paper", "io.papermc"))); + private final String DEFAULT_JAVA_JAVADOCS_URL = "https://docs.oracle.com/en/java/javase/17/docs/api/java.base/"; private final ListSelectionView moduleSelector = new ListSelectionView<>(); private static final HashMap> javadocsMap = new HashMap<>(); private final ObservableList pluginComponents = FXCollections.observableArrayList(); @@ -96,6 +99,7 @@ public class Project { public Project(Path directory) { this.directory = directory; dataFile = directory.resolve("data.json"); + remapFile = directory.resolve("remap.json"); pluginComponentDirectory = directory.resolve("plugin_components"); resourcesDirectory = directory.resolve("resource_files"); buildDirectory = directory.resolve("build"); @@ -155,9 +159,9 @@ protected void updateItem(MavenModule item, boolean empty) { javadocsUrlListView.getItems().clear(); javadocsUrlListView.getItems().add(DEFAULT_JAVADOCS_URL); javadocsUrlListView.getSelectionModel().select(DEFAULT_JAVADOCS_URL); - javadocsUrlListView.getItems().add("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/"); - javadocsMap.put("https://jd.papermc.io/paper/1.21.4/", new ArrayList<>(List.of("org.bukkit", "org.spigotmc", "co.aikar", "com.destroystokyo.paper", "io.papermc"))); - javadocsMap.put("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/", new ArrayList<>(List.of("java", "jdk"))); + javadocsUrlListView.getItems().add(DEFAULT_JAVA_JAVADOCS_URL); + javadocsMap.put(DEFAULT_JAVADOCS_URL, new ArrayList<>(List.of("org.bukkit", "org.spigotmc", "co.aikar", "com.destroystokyo.paper", "io.papermc"))); + javadocsMap.put(DEFAULT_JAVA_JAVADOCS_URL, new ArrayList<>(List.of("java", "jdk"))); for (Map.Entry> entry : javadocsMap.entrySet()) { javadocsUrlListView.getItems().add(entry.getKey()); } @@ -183,7 +187,7 @@ protected void updateItem(MavenModule item, boolean empty) { ActionButton deleteUrlButton = new ActionButton(VisualBukkitApp.localizedText("button.delete_url"), e -> { String selectedUrl = javadocsUrlListView.getSelectionModel().getSelectedItem(); if (selectedUrl != null) { - if (selectedUrl.equals("https://jd.papermc.io/paper/1.21.4/") || selectedUrl.equals("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) { + if (selectedUrl.equals(DEFAULT_JAVADOCS_URL)) { return; } javadocsMap.remove(selectedUrl); @@ -194,7 +198,7 @@ protected void updateItem(MavenModule item, boolean empty) { ActionButton editUrlButton = new ActionButton(VisualBukkitApp.localizedText("button.edit_url"), e -> { String selectedUrl = javadocsUrlListView.getSelectionModel().getSelectedItem(); if (selectedUrl != null) { - if (selectedUrl.equals("https://jd.papermc.io/paper/1.21.4/") || selectedUrl.equals("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) { + if (selectedUrl.equals(DEFAULT_JAVADOCS_URL) || selectedUrl.equals(DEFAULT_JAVA_JAVADOCS_URL)) { return; } TextInputDialog dialog = new TextInputDialog(selectedUrl); @@ -217,16 +221,7 @@ protected void updateItem(MavenModule item, boolean empty) { ButtonVBox javadocsButtons = new ButtonVBox(addUrlButton, deleteUrlButton, editUrlButton); javadocsButtons.bindSizes(); - deleteUrlButton.disableProperty().bind( - javadocsUrlListView.getSelectionModel().selectedItemProperty().isNull() - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) - ); - editUrlButton.disableProperty().bind( - javadocsUrlListView.getSelectionModel().selectedItemProperty().isNull() - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) - ); + disableDefaultButtons(deleteUrlButton, editUrlButton); javadocsValuesListView = new ListView<>(); javadocsValuesListView.setPlaceholder(new Label(VisualBukkitApp.localizedText("label.no_values"))); @@ -283,24 +278,9 @@ protected void updateItem(MavenModule item, boolean empty) { } }); - addValueButton.disableProperty().bind( - javadocsUrlListView.getSelectionModel().selectedItemProperty().isNull() - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) - ); - deleteValueButton.disableProperty().bind( - javadocsValuesListView.getSelectionModel().selectedItemProperty().isNull() - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) - ); - editValueButton.disableProperty().bind( - javadocsValuesListView.getSelectionModel().selectedItemProperty().isNull() - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://jd.papermc.io/paper/1.21.4/")) - .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) - ); - ButtonVBox javadocsValuesButtons = new ButtonVBox(addValueButton, deleteValueButton, editValueButton); javadocsValuesButtons.bindSizes(); + disableDefaultButtons(addValueButton, deleteValueButton, editValueButton); javadocsUrlListView.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal) -> { if (newVal != null && javadocsMap.containsKey(newVal)) { @@ -321,7 +301,7 @@ protected void updateItem(String item, boolean empty) { super.updateItem(item, empty); if (item != null && !empty) { setText(item); - if (item.equals("https://jd.papermc.io/paper/1.21.4/") || item.equals("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/")) { + if (item.equals(DEFAULT_JAVADOCS_URL) || item.equals(DEFAULT_JAVA_JAVADOCS_URL)) { setGraphic(new FontIcon(FontAwesomeSolid.LOCK)); } else { setGraphic(null); @@ -373,22 +353,16 @@ protected void updateItem(String item, boolean empty) { pluginSettingsWindow.setOnShowing(e -> { pluginSettingsWindow.setY(VisualBukkitApp.getPrimaryStage().getY() + VisualBukkitApp.getPrimaryStage().getHeight() / 2 - 300); if (settingsTabPane.getSelectionModel().getSelectedItem() != javadocsTab) { - pluginSettingsWindow.setX(VisualBukkitApp.getPrimaryStage().getX() + VisualBukkitApp.getPrimaryStage().getWidth() / 2 - 400); - pluginSettingsWindow.setWidth(800); + alignNormalTab(pluginSettingsWindow); } else { - pluginSettingsWindow.setX(VisualBukkitApp.getPrimaryStage().getX() + VisualBukkitApp.getPrimaryStage().getWidth() / 2 - 700); - pluginSettingsWindow.setWidth(1400); - javadocsPane.setPrefSize(1400, 600); + alignJavadocsTab(pluginSettingsWindow, javadocsPane); } settingsTabPane.getSelectionModel().selectedItemProperty().addListener((obs, oldTab, newTab) -> { if (newTab == javadocsTab) { - pluginSettingsWindow.setX(VisualBukkitApp.getPrimaryStage().getX() + VisualBukkitApp.getPrimaryStage().getWidth() / 2 - 700); - pluginSettingsWindow.setWidth(1400); - javadocsPane.setPrefSize(1400, 600); + alignJavadocsTab(pluginSettingsWindow, javadocsPane); } else { - pluginSettingsWindow.setX(VisualBukkitApp.getPrimaryStage().getX() + VisualBukkitApp.getPrimaryStage().getWidth() / 2 - 400); - pluginSettingsWindow.setWidth(800); + alignNormalTab(pluginSettingsWindow); } }); @@ -535,6 +509,27 @@ protected void updateItem(PluginComponent item, boolean empty) { }); } + private void alignNormalTab(PopupWindow pluginSettingsWindow) { + pluginSettingsWindow.setX(VisualBukkitApp.getPrimaryStage().getX() + VisualBukkitApp.getPrimaryStage().getWidth() / 2 - 400); + pluginSettingsWindow.setWidth(800); + } + + private void alignJavadocsTab(PopupWindow window, HBox box) { + window.setX(VisualBukkitApp.getPrimaryStage().getX() + VisualBukkitApp.getPrimaryStage().getWidth() / 2 - 700); + window.setWidth(1400); + box.setPrefSize(1400, 600); + } + + private void disableDefaultButtons(ActionButton ... buttons) { + for (ActionButton button : buttons) { + button.disableProperty().bind( + javadocsUrlListView.getSelectionModel().selectedItemProperty().isNull() + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo(DEFAULT_JAVADOCS_URL)) + .or(javadocsUrlListView.getSelectionModel().selectedItemProperty().isEqualTo(DEFAULT_JAVA_JAVADOCS_URL)) + ); + } + } + protected void open() throws IOException { if (Files.exists(dataFile)) { try { @@ -544,6 +539,8 @@ protected void open() throws IOException { } } + loadRemapData(); + for (VisualBukkitExtension extension : VisualBukkitApp.getExtensions()) { extension.open(this); } @@ -675,6 +672,40 @@ public void save() throws IOException { data.put("javadocs", javadocsJson); Files.createDirectories(directory); Files.writeString(dataFile, data.toString(2)); + loadRemapData(); + } + + private void loadRemapData() { + if (Files.exists(remapFile)) { + try { + remapData = new JSONObject(Files.readString(remapFile)); + for (String key : remapData.keySet()) { + String value = remapData.getString(key); + if (value.equals("null")) { + remapData.remove(key); + } else { + remapData.put(key, StringEscapeUtils.unescapeJson(value)); + } + } + } catch (IOException | JSONException e) { + VisualBukkitApp.getLogger().log(Level.SEVERE, "Failed to load remap file", e); + } + } + else { + try { + String INPUT = """ + { + "org.bukkit.entity.Player#sendMessage(java.lang.String)":"org.bukkit.command.CommandSender#sendMessage(java.lang.String)", + "org.bukkit.entity.Player#attack(org.bukkit.entity.Entity)":"org.bukkit.entity.LivingEntity#attack(org.bukkit.entity.Entity)", + } + """; + remapData = new JSONObject(INPUT); + Files.createFile(remapFile); + Files.writeString(remapFile, remapData.toString(2)); + } catch (IOException e) { + VisualBukkitApp.getLogger().log(Level.SEVERE, "Failed to create remap file", e); + } + } } public void openPluginComponent(PluginComponent pluginComponent, boolean selectTab) { @@ -1088,6 +1119,10 @@ public PluginComponent getPluginComponent(PluginComponentBlock block) { return null; } + public static JSONObject getRemapData() { + return remapData; + } + public PluginComponent getPluginComponent(String name) { for (PluginComponent pluginComponent : pluginComponents) { if (pluginComponent.getName().equals(name)) { From 5696978040bce70ad8f2b44f332b8e8f3fec13ab Mon Sep 17 00:00:00 2001 From: Priyan_17 <101181090+Reaper-1709@users.noreply.github.com> Date: Thu, 27 Mar 2025 23:01:40 +0530 Subject: [PATCH 6/7] Javadocs optimization: - Added an overridable method as suggested - removed switches from StatementBlock.java and ExpressionBlock.java - changed java 8 urls to java 17 ones --- .../com/gmail/visualbukkit/blocks/Block.java | 2 + .../visualbukkit/blocks/ExpressionBlock.java | 119 ++---------------- .../visualbukkit/blocks/StatementBlock.java | 66 +--------- .../bungee/StatBungeeCordConnect.java | 10 +- .../blocks/definitions/core/ExprBoolean.java | 8 ++ .../definitions/core/ExprBooleanLogic.java | 7 ++ .../definitions/core/ExprColoredString.java | 8 ++ .../definitions/core/ExprCommandArgument.java | 8 ++ .../core/ExprCommandArguments.java | 7 ++ .../definitions/core/ExprCommandSender.java | 8 ++ .../core/ExprConditionalExpression.java | 8 ++ .../blocks/definitions/core/ExprConsumer.java | 7 ++ .../definitions/core/ExprConsumerInput.java | 8 ++ .../definitions/core/ExprCurrentEvent.java | 6 + .../definitions/core/ExprEscapeSequence.java | 7 ++ .../core/ExprExecutionException.java | 8 ++ .../blocks/definitions/core/ExprField.java | 14 +-- .../core/ExprFunctionArgument.java | 8 ++ .../core/ExprFunctionArguments.java | 7 ++ .../definitions/core/ExprFunctionValue.java | 7 ++ .../definitions/core/ExprGlobalVariable.java | 8 ++ .../blocks/definitions/core/ExprHashMap.java | 7 ++ .../blocks/definitions/core/ExprHashSet.java | 7 ++ .../core/ExprHexColoredString.java | 8 ++ .../definitions/core/ExprImmutableList.java | 7 ++ .../blocks/definitions/core/ExprIsClass.java | 8 ++ .../blocks/definitions/core/ExprIsEqual.java | 8 ++ .../blocks/definitions/core/ExprIsNull.java | 8 ++ .../definitions/core/ExprItemStack.java | 7 ++ .../blocks/definitions/core/ExprJavaCode.java | 8 ++ .../blocks/definitions/core/ExprList.java | 7 ++ .../definitions/core/ExprLocalVariable.java | 7 ++ .../definitions/core/ExprLoopNumber.java | 8 ++ .../definitions/core/ExprLoopValue.java | 8 ++ .../blocks/definitions/core/ExprMath.java | 7 ++ .../blocks/definitions/core/ExprMethod.java | 14 +-- .../definitions/core/ExprMultilineString.java | 7 ++ .../definitions/core/ExprNegateBoolean.java | 8 ++ .../definitions/core/ExprNewObject.java | 7 ++ .../blocks/definitions/core/ExprNull.java | 8 ++ .../blocks/definitions/core/ExprNumber.java | 7 ++ .../core/ExprNumberComparison.java | 8 ++ .../core/ExprPersistentVariable.java | 8 ++ .../core/ExprProcedureArgument.java | 8 ++ .../core/ExprProcedureArguments.java | 7 ++ .../definitions/core/ExprRawString.java | 8 ++ .../core/ExprSerializedItemStack.java | 8 ++ .../blocks/definitions/core/ExprString.java | 7 ++ .../core/ExprStringConcatenation.java | 7 ++ .../definitions/core/ExprThisPlugin.java | 8 ++ .../core/StatAdvancedNumberLoop.java | 8 ++ .../core/StatAttemptExecution.java | 8 ++ .../definitions/core/StatBreakLoop.java | 8 ++ .../core/StatCancelScheduledTask.java | 8 ++ .../definitions/core/StatCommandReturn.java | 8 ++ .../blocks/definitions/core/StatComment.java | 7 ++ .../definitions/core/StatContinueLoop.java | 8 ++ .../definitions/core/StatElseIfStatement.java | 8 ++ .../definitions/core/StatElseStatement.java | 8 ++ .../core/StatExecuteProcedure.java | 7 ++ .../definitions/core/StatFunctionReturn.java | 8 ++ .../definitions/core/StatHandleException.java | 8 ++ .../definitions/core/StatIfStatement.java | 8 ++ .../blocks/definitions/core/StatJavaCode.java | 8 ++ .../blocks/definitions/core/StatListLoop.java | 8 ++ .../blocks/definitions/core/StatMethod.java | 14 +-- .../definitions/core/StatNumberLoop.java | 8 ++ .../definitions/core/StatScheduleTask.java | 7 ++ .../core/StatSetGlobalVariable.java | 8 ++ .../core/StatSetLocalVariable.java | 8 ++ .../core/StatSetPersistentVariable.java | 8 ++ .../core/StatSetPlayerHeadSkin.java | 8 ++ .../definitions/core/StatSetPlayerSkin.java | 8 ++ .../core/StatTabCompleteReturn.java | 7 ++ .../definitions/core/StatWhileLoop.java | 8 ++ .../definitions/gui/ExprGUIClickType.java | 8 ++ .../gui/ExprGUIClickedInventory.java | 8 ++ .../gui/ExprGUIClickedItemStack.java | 8 ++ .../definitions/gui/ExprGUIClickedSlot.java | 8 ++ .../definitions/gui/ExprGUIClicker.java | 8 ++ .../definitions/gui/ExprGUIInventory.java | 8 ++ .../gui/ExprGUIInventoryClickEvent.java | 8 ++ .../blocks/definitions/gui/ExprGUIPlayer.java | 8 ++ .../blocks/definitions/gui/StatOpenGUI.java | 8 ++ .../definitions/gui/StatSetGUISlot.java | 8 ++ 85 files changed, 637 insertions(+), 201 deletions(-) diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/Block.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/Block.java index 84e893b4..5b8e27f9 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/Block.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/Block.java @@ -173,6 +173,8 @@ public void deserialize(JSONObject json) { public abstract void delete(); + public abstract void openJavadocs(); + public String arg(int i, BuildInfo buildInfo) { return parameters.get(i).generateJava(buildInfo); } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java index 4e83dfdb..a56479b2 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/ExpressionBlock.java @@ -40,118 +40,8 @@ public ExpressionBlock() { UndoManager.current().execute(this::delete); }), new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.delete"), e -> UndoManager.current().execute(this::delete)), - new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.javadocs"), e -> { - switch (this) { - case ExprBoolean exprBoolean -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html")); - case ExprBooleanLogic exprBooleanLogic -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); - case ExprColoredString exprColoredString -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/ChatColor.html")); - case ExprCommandArgument exprCommandArgument -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/Command.html")); - case ExprCommandArguments exprCommandArguments -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/Command.html")); - case ExprCommandSender exprCommandSender -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/CommandSender.html")); - case ExprConditionalExpression exprConditionalExpression -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); - case ExprConsumer exprConsumer -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html")); - case ExprConsumerInput exprConsumerInput -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html")); - case ExprCurrentEvent exprCurrentEvent -> - JavadocsManager.getCompJavaDocs(exprCurrentEvent.getPluginComponentBlock().getPluginComponent()); - case ExprEscapeSequence exprEscapeSequence -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/data/characters.html")); - case ExprExecutionException exprExecutionException -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html")); - case ExprField exprField -> JavadocsManager.getExprJavadocs(exprField); - case ExprFunctionArgument exprFunctionArgument -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html")); - case ExprFunctionArguments exprFunctionArguments -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html")); - case ExprFunctionValue exprFunctionValue -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html")); - case ExprGlobalVariable exprGlobalVariable -> - VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); - case ExprHashMap exprHashMap -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html")); - case ExprHashSet exprHashSet -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html")); - case ExprHexColoredString exprHexColoredString -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/ChatColor.html")); - case ExprImmutableList exprImmutableList -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/List.html")); - case ExprIsClass exprIsClass -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html")); - case ExprIsEqual exprIsEqual -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); - case ExprIsNull exprIsNull -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Objects.html#isNull(java.lang.Object)")); - case ExprItemStack exprItemStack -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/ItemStack.html")); - case ExprJavaCode exprJavaCode -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html")); - case ExprList exprList -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/List.html")); - case ExprLocalVariable exprLocalVariable -> - VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); - case ExprLoopNumber exprLoopNumber -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); - case ExprLoopValue exprLoopValue -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); - case ExprMath exprMath -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html")); - case ExprMethod exprMethod -> JavadocsManager.getExprJavadocs(exprMethod); - case ExprMultilineString exprMultilineString -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/data/strings/multiline.html")); - case ExprNegateBoolean exprNegateBoolean -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); - case ExprNewObject exprNewObject -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html")); - case ExprNull exprNull -> - VisualBukkitApp.openURI(URI.create("https://www.upwork.com/resources/what-is-null-in-java")); - case ExprNumber exprNumber -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html")); - case ExprNumberComparison exprNumberComparison -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); - case ExprPersistentVariable exprPersistentVariable -> - VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); - case ExprProcedureArgument exprProcedureArgument -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html")); - case ExprProcedureArguments exprProcedureArguments -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html")); - case ExprRawString exprRawString -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/data/strings/index.html")); - case ExprSerializedItemStack exprSerializedItemStack -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/ItemStack.html")); - case ExprString exprString -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html")); - case ExprStringConcatenation exprStringConcatenation -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html#concat(java.lang.String)")); - case ExprThisPlugin exprThisPlugin -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/plugin/java/JavaPlugin.html")); - case ExprGUIClickedInventory exprGUIClickedInventory -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getClickedInventory()")); - case ExprGUIClickedItemStack exprGUIClickedItemStack -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getCurrentItem()")); - case ExprGUIClickedSlot exprGUIClickedSlot -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getSlot()")); - case ExprGUIClicker exprGUIClicker -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getWhoClicked()")); - case ExprGUIClickType exprGUIClickType -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getAction()")); - case ExprGUIInventory exprGUIInventory -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getView()")); - case ExprGUIInventoryClickEvent exprGUIInventoryClickEvent -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html")); - case ExprGUIPlayer exprGUIPlayer -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/entity/Player.html")); - default -> - VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.unavailable_javadocs")); - } - })); + new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.javadocs"), e -> openJavadocs()) + ); setOnDragDetected(e -> { if (e.getButton() == MouseButton.PRIMARY) { @@ -235,5 +125,10 @@ public JSONObject serialize() { public void deserialize(JSONObject json) { this.json = json; } + + @Override + public void openJavadocs() { + VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.unavailable_javadocs")); + } } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java index ba595f48..a32d73d2 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/StatementBlock.java @@ -1,9 +1,6 @@ package com.gmail.visualbukkit.blocks; import com.gmail.visualbukkit.VisualBukkitApp; -import com.gmail.visualbukkit.blocks.definitions.core.*; -import com.gmail.visualbukkit.blocks.definitions.gui.StatOpenGUI; -import com.gmail.visualbukkit.blocks.definitions.gui.StatSetGUISlot; import com.gmail.visualbukkit.project.*; import com.gmail.visualbukkit.ui.ActionMenuItem; import javafx.scene.SnapshotParameters; @@ -18,8 +15,6 @@ import org.apache.commons.lang3.RandomStringUtils; import org.json.JSONObject; -import java.net.URI; - public non-sealed abstract class StatementBlock extends Block { public StatementBlock() { @@ -39,65 +34,8 @@ public StatementBlock() { ActionMenuItem deleteStackItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.delete_stack"), e -> UndoManager.current().execute(() -> getParentStatementHolder().removeStack(this))); ActionMenuItem pasteBeforeItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.paste_before"), e -> UndoManager.current().execute(() -> getParentStatementHolder().addBefore(this, CopyPasteManager.pasteStatement()))); ActionMenuItem pasteAfterItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.paste_after"), e -> UndoManager.current().execute(() -> getParentStatementHolder().addAfter(this, CopyPasteManager.pasteStatement()))); - ActionMenuItem javadocsItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.javadocs"), e -> { - switch (this) { - case StatAdvancedNumberLoop statAdvancedNumberLoop -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); - case StatAttemptExecution statAttemptExecution -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/essential/exceptions/try.html")); - case StatBreakLoop statBreakLoop -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html")); - case StatCancelScheduledTask statCancelScheduledTask -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/scheduler/BukkitScheduler.html#cancelTask(int)")); - case StatCommandReturn statCommandReturn -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/CommandSender.html#sendMessage(java.lang.String)")); - case StatComment statComment -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/comments.html")); - case StatContinueLoop statContinueLoop -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html")); - case StatElseIfStatement statElseIfStatement -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); - case StatElseStatement statElseStatement -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); - case StatExecuteProcedure statExecuteProcedure -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html")); - case StatFunctionReturn statFunctionReturn -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html")); - case StatHandleException statHandleException -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html")); - case StatIfStatement statIfStatement -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); - case StatJavaCode statJavaCode -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html")); - case StatListLoop statListLoop -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/technotes/guides/language/foreach.html")); - case StatMethod statMethod -> JavadocsManager.getStatJavadocs(statMethod); - case StatNumberLoop statNumberLoop -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); - case StatScheduleTask statScheduleTask -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/scheduler/BukkitScheduler.html#runTask(org.bukkit.plugin.java.JavaPlugin,java.lang.Runnable)")); - case StatSetGlobalVariable statSetGlobalVariable -> - VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); - case StatSetLocalVariable statSetLocalVariable -> - VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); - case StatSetPersistentVariable statSetPersistentVariable -> - VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); - case StatSetPlayerHeadSkin statSetPlayerHeadSkin -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/meta/SkullMeta.html#setOwner(java.lang.String)")); - case StatSetPlayerSkin statSetPlayerSkin -> - VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/blob/master/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPlayerSkin.java")); - case StatTabCompleteReturn statTabCompleteReturn -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/TabCompleter.html#onTabComplete(org.bukkit.command.CommandSender,org.bukkit.command.Command,java.lang.String,java.lang.String[])")); - case StatWhileLoop statWhileLoop -> - VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html")); - case StatOpenGUI statOpenGUI -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/entity/HumanEntity.html#openInventory(org.bukkit.inventory.Inventory)")); - case StatSetGUISlot statSetGUISlot -> - VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/Inventory.html#setItem(int,org.bukkit.inventory.ItemStack)")); - default -> - VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.unavailable_javadocs")); - } - }); + ActionMenuItem javadocsItem = new ActionMenuItem(VisualBukkitApp.localizedText("context_menu.javadocs"), e -> openJavadocs()); + pasteBeforeItem.disableProperty().bind(CopyPasteManager.statementCopiedProperty().not()); pasteAfterItem.disableProperty().bind(pasteBeforeItem.disableProperty()); getContextMenu().getItems().addAll(copyItem, cutItem, deleteItem, new SeparatorMenuItem(), copyStackItem, cutStackItem, deleteStackItem, new SeparatorMenuItem(), pasteBeforeItem, pasteAfterItem, new SeparatorMenuItem(), javadocsItem); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/bungee/StatBungeeCordConnect.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/bungee/StatBungeeCordConnect.java index 1ea0b5cd..4f4b571f 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/bungee/StatBungeeCordConnect.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/bungee/StatBungeeCordConnect.java @@ -1,19 +1,27 @@ package com.gmail.visualbukkit.blocks.definitions.bungee; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-bungeecord-connect", name = "BungeeCord Connect", description = "Connects a player to a BungeeCord server") -public class StatBungeeCordConnect extends StatementBlock { +public class StatBungeeCordConnect extends StatementBlock { public StatBungeeCordConnect() { addParameter("Player", new ExpressionParameter(ClassInfo.of("org.bukkit.entity.Player"))); addParameter("Server", new ExpressionParameter(ClassInfo.of(String.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/")); + } + @Override public String generateJava(BuildInfo buildInfo) { if (buildInfo.getMetadata().putIfAbsent("bungeecordConnect()", true) == null) { diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprBoolean.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprBoolean.java index 35454465..a5b74330 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprBoolean.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprBoolean.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ChoiceParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-boolean", name = "Boolean", description = "A boolean (true or false)") public class ExprBoolean extends ExpressionBlock { @@ -13,6 +16,11 @@ public ExprBoolean() { addParameter("Value", new ChoiceParameter("true", "false")); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(boolean.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprBooleanLogic.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprBooleanLogic.java index cde2b5ff..55513db6 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprBooleanLogic.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprBooleanLogic.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.SizedExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.BlockParameter; @@ -8,6 +9,7 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.Map; import java.util.StringJoiner; import java.util.TreeMap; @@ -29,6 +31,11 @@ public ExprBooleanLogic() { addParameter("Boolean", new ExpressionParameter(ClassInfo.of(boolean.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(boolean.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprColoredString.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprColoredString.java index 2674bc98..20666031 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprColoredString.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprColoredString.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-colored-string", name = "Colored String", description = "A string with '&' color codes") public class ExprColoredString extends ExpressionBlock { @@ -13,6 +16,11 @@ public ExprColoredString() { addParameter("String", new ExpressionParameter(ClassInfo.of(String.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/ChatColor.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(String.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandArgument.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandArgument.java index 2fd94507..d3101394 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandArgument.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandArgument.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-command-argument", name = "Command Argument", description = "An argument passed to a command (must be used in a 'Command' or 'Tab Complete Handler' plugin component)") public class ExprCommandArgument extends ExpressionBlock { @@ -24,6 +27,11 @@ public void updateState() { checkForPluginComponent(CompCommand.class, CompTabCompleteHandler.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/Command.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "(commandArgs.length > " + arg(0, buildInfo) + " ? commandArgs[" + arg(0, buildInfo) + "] : null" + ")"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandArguments.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandArguments.java index 82d41bb2..cb369d3f 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandArguments.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandArguments.java @@ -1,10 +1,12 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.List; @BlockDefinition(id = "expr-command-arguments", name = "Command Arguments", description = "The list of arguments passed to a command (must be used in a 'Command' or 'Tab Complete Handler' plugin component)") @@ -21,6 +23,11 @@ public void updateState() { checkForPluginComponent(CompCommand.class, CompTabCompleteHandler.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/Command.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "List.of(commandArgs)"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandSender.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandSender.java index 29e9a8ea..387d7ade 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandSender.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCommandSender.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-command-sender", name = "Command Sender", description = "The player/console that executed the command (must be used in a 'Command' or 'Tab Complete Handler' plugin component)") public class ExprCommandSender extends ExpressionBlock { @@ -19,6 +22,11 @@ public void updateState() { checkForPluginComponent(CompCommand.class, CompTabCompleteHandler.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/CommandSender.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "commandSender"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConditionalExpression.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConditionalExpression.java index 6d9e7b79..6b168960 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConditionalExpression.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConditionalExpression.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-conditional-expression", name = "Conditional Expression", description = "Returns one of two objects depending on a condition") public class ExprConditionalExpression extends ExpressionBlock { @@ -15,6 +18,11 @@ public ExprConditionalExpression() { addParameter("If False", new ExpressionParameter(ClassInfo.of(Object.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(Object.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConsumer.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConsumer.java index 214a7ba8..6b59ca79 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConsumer.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConsumer.java @@ -1,11 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.PluginComponentParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.function.Consumer; @BlockDefinition(id = "expr-consumer", name = "Consumer", description = "A consumer") @@ -17,6 +19,11 @@ public ExprConsumer() { addParameter("Consumer", parameter); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Consumer.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(Consumer.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConsumerInput.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConsumerInput.java index 61a7cdd1..209f829f 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConsumerInput.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprConsumerInput.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-consumer-input", name = "Consumer Input", description = "The input to a consumer (must be used in a 'Consumer' plugin component)") public class ExprConsumerInput extends ExpressionBlock { @@ -14,6 +17,11 @@ public void updateState() { checkForPluginComponent(CompConsumer.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Consumer.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(Object.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCurrentEvent.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCurrentEvent.java index 4a59ddbc..f7f3b6a3 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCurrentEvent.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprCurrentEvent.java @@ -3,6 +3,7 @@ import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; +import com.gmail.visualbukkit.project.JavadocsManager; import com.gmail.visualbukkit.reflection.ClassInfo; @BlockDefinition(id = "expr-current-event", name = "Current Event", description = "The current event in a 'Event Listener' plugin component") @@ -14,6 +15,11 @@ public void updateState() { checkForPluginComponent(CompEventListener.class); } + @Override + public void openJavadocs() { + JavadocsManager.getCompJavaDocs(getPluginComponentBlock().getPluginComponent()); + } + @Override public ClassInfo getReturnType() { return getPluginComponentBlock() instanceof CompEventListener e ? e.getEvent() : null; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprEscapeSequence.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprEscapeSequence.java index 904f2439..b5f4b94a 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprEscapeSequence.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprEscapeSequence.java @@ -1,11 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ChoiceParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.HashMap; import java.util.Map; @@ -26,6 +28,11 @@ public ExprEscapeSequence() { addParameter("Sequence", new ChoiceParameter(escapeSequences.keySet())); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/data/characters.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(char.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprExecutionException.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprExecutionException.java index 13b67b1f..0d382ec0 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprExecutionException.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprExecutionException.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-execution-exception", name = "Execution Exception", description = "The exception that occurred (must be used in 'Handle Exception')") public class ExprExecutionException extends ExpressionBlock { @@ -17,4 +20,9 @@ public ClassInfo getReturnType() { public String generateJava(BuildInfo buildInfo) { return "$executionException" + getNestedContainers(StatHandleException.class); } + + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html")); + } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprField.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprField.java index 0017a497..56c76741 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprField.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprField.java @@ -5,6 +5,7 @@ import com.gmail.visualbukkit.blocks.parameters.ClassParameter; import com.gmail.visualbukkit.blocks.parameters.FieldParameter; import com.gmail.visualbukkit.project.BuildInfo; +import com.gmail.visualbukkit.project.JavadocsManager; import com.gmail.visualbukkit.reflection.ClassInfo; import com.gmail.visualbukkit.reflection.FieldInfo; @@ -19,6 +20,11 @@ public ExprField() { addParameter("Field", fieldParameter = new FieldParameter(this, classParameter)); } + @Override + public void openJavadocs() { + JavadocsManager.getExprJavadocs(classParameter, fieldParameter); + } + @Override public ClassInfo getReturnType() { return fieldParameter.getValue() != null ? fieldParameter.getValue().getType() : ClassInfo.of(Object.class); @@ -33,12 +39,4 @@ public String generateJava(BuildInfo buildInfo) { } return arg(fieldInfo.isStatic() ? 0 : 2, buildInfo) + "." + fieldInfo.getName(); } - - public ClassParameter getClassParameter() { - return classParameter; - } - - public FieldParameter getFieldParameter() { - return fieldParameter; - } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionArgument.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionArgument.java index 0e2ba9fc..f9bc0b7b 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionArgument.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionArgument.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-function-argument", name = "Function Argument", description = "An argument passed to a function (must be used in a 'Function' plugin component)") public class ExprFunctionArgument extends ExpressionBlock { @@ -19,6 +22,11 @@ public void updateState() { checkForPluginComponent(CompFunction.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(Object.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionArguments.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionArguments.java index 2e558808..a7bfed50 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionArguments.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionArguments.java @@ -1,10 +1,12 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.List; @BlockDefinition(id = "expr-function-arguments", name = "Function Arguments", description = "The list of arguments passed to a function (must be used in a 'Function' plugin component)") @@ -16,6 +18,11 @@ public void updateState() { checkForPluginComponent(CompFunction.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(List.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionValue.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionValue.java index 21295e63..776cecc2 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionValue.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprFunctionValue.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; @@ -7,6 +8,7 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.List; @BlockDefinition(id = "expr-function-value", name = "Function Value", description = "Evaluates the given function") @@ -17,6 +19,11 @@ public ExprFunctionValue() { addParameter("Arguments", new ExpressionParameter(ClassInfo.of(List.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(Object.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprGlobalVariable.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprGlobalVariable.java index a349d71a..428e5919 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprGlobalVariable.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprGlobalVariable.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; @@ -7,6 +8,8 @@ import com.gmail.visualbukkit.reflection.ClassInfo; import org.jboss.forge.roaster.model.source.JavaClassSource; +import java.net.URI; + @BlockDefinition(id = "expr-global-variable", name = "Global Variable", description = "The value of a global variable") public class ExprGlobalVariable extends ExpressionBlock { @@ -14,6 +17,11 @@ public ExprGlobalVariable() { addParameter("Variable", new ExpressionParameter(ClassInfo.of(String.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(Object.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHashMap.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHashMap.java index fa61b4a2..0793a849 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHashMap.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHashMap.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.SizedExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.BlockParameter; @@ -7,6 +8,7 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.HashMap; import java.util.StringJoiner; @@ -52,4 +54,9 @@ public static HashMap newHashMap(Object... objects) { } return "PluginMain.newHashMap(" + joiner + ")"; } + + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashMap.html")); + } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHashSet.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHashSet.java index 95088d1f..edaa1c76 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHashSet.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHashSet.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.SizedExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.BlockParameter; @@ -7,6 +8,7 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.HashSet; import java.util.StringJoiner; @@ -39,4 +41,9 @@ public String generateJava(BuildInfo buildInfo) { } return "new HashSet(Arrays.asList(" + joiner + "))"; } + + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashSet.html")); + } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHexColoredString.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHexColoredString.java index 2a5b8e88..7e248c43 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHexColoredString.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprHexColoredString.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-hex-colored-string", name = "Hex Colored String", description = "A string with '&' and hex color codes") public class ExprHexColoredString extends ExpressionBlock { @@ -13,6 +16,11 @@ public ExprHexColoredString() { addParameter("String", new ExpressionParameter(ClassInfo.of(String.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/ChatColor.html#translateAlternateColorCodes(char,java.lang.String)")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(String.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprImmutableList.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprImmutableList.java index d0abfa33..55cb0026 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprImmutableList.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprImmutableList.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.SizedExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.BlockParameter; @@ -7,6 +8,7 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.List; import java.util.StringJoiner; @@ -39,4 +41,9 @@ public String generateJava(BuildInfo buildInfo) { } return "List.of(" + joiner + ")"; } + + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html")); + } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsClass.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsClass.java index 278d3531..746eedee 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsClass.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsClass.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ClassParameter; @@ -7,6 +8,8 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-is-class", name = "Is Class", description = "Checks if an object is an instance of a class") public class ExprIsClass extends ExpressionBlock { @@ -17,6 +20,11 @@ public ExprIsClass() { addParameter("Object", new ExpressionParameter(ClassInfo.of(Object.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(boolean.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsEqual.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsEqual.java index 8e273dac..f8355889 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsEqual.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsEqual.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-is-equal", name = "Is Equal", description = "Checks if two objects are equal") public class ExprIsEqual extends ExpressionBlock { @@ -17,6 +20,11 @@ public ExprIsEqual() { addParameter("Object", expr2); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(boolean.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsNull.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsNull.java index 1cc20bb2..e8468cdb 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsNull.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprIsNull.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-is-null", name = "Is Null", description = "Checks if an object is null") public class ExprIsNull extends ExpressionBlock { @@ -13,6 +16,11 @@ public ExprIsNull() { addParameter("Object", new ExpressionParameter(ClassInfo.of(Object.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Objects.html#isNull(java.lang.Object)")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(boolean.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprItemStack.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprItemStack.java index 5d2bf1ac..702e4686 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprItemStack.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprItemStack.java @@ -1,11 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.List; @BlockDefinition(id = "expr-itemstack", name = "ItemStack", description = "An ItemStack optionally with a name and lore") @@ -17,6 +19,11 @@ public ExprItemStack() { addParameter("Lore", new ExpressionParameter(ClassInfo.of(List.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/ItemStack.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of("org.bukkit.inventory.ItemStack"); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprJavaCode.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprJavaCode.java index 923f19a0..44f10ded 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprJavaCode.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprJavaCode.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.MultilineInputParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-java-code", name = "Java Code", description = "Arbitrary Java code") public class ExprJavaCode extends ExpressionBlock { @@ -13,6 +16,11 @@ public ExprJavaCode() { addParameter("Java", new MultilineInputParameter()); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.OBJECT_OR_PRIMITIVE; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprList.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprList.java index 8a59dcfb..d1f2abe6 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprList.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprList.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.SizedExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.BlockParameter; @@ -7,6 +8,7 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.ArrayList; import java.util.StringJoiner; @@ -39,4 +41,9 @@ public String generateJava(BuildInfo buildInfo) { } return "new ArrayList(Arrays.asList(" + joiner + "))"; } + + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html")); + } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLocalVariable.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLocalVariable.java index fa92ba00..346236eb 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLocalVariable.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLocalVariable.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.InputParameter; @@ -7,6 +8,7 @@ import com.gmail.visualbukkit.reflection.ClassInfo; import com.google.common.hash.Hashing; +import java.net.URI; import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.regex.Pattern; @@ -24,6 +26,11 @@ public ExprLocalVariable() { parameter.getStyleClass().add("local-variable-field"); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + } + public ExprLocalVariable(String var) { this(); parameter.setText(var); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLoopNumber.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLoopNumber.java index 22c42f4c..43ec3f66 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLoopNumber.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLoopNumber.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-loop-number", name = "Loop Number", description = "The current loop number") public class ExprLoopNumber extends ExpressionBlock { @@ -19,6 +22,11 @@ public void updateState() { checkForContainer(StatNumberLoop.class, StatAdvancedNumberLoop.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "$FINAL_loopNumber" + getNestedContainers(StatNumberLoop.class, StatAdvancedNumberLoop.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLoopValue.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLoopValue.java index 16b1193c..d6155a23 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLoopValue.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprLoopValue.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-loop-value", name = "Loop Value", description = "The current loop value") public class ExprLoopValue extends ExpressionBlock { @@ -19,6 +22,11 @@ public void updateState() { checkForContainer(StatListLoop.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "$FINAL_loopValue" + getNestedContainers(StatListLoop.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMath.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMath.java index 0e1d35ef..7805030d 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMath.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMath.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.SizedExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.BlockParameter; @@ -8,6 +9,7 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.StringJoiner; @BlockDefinition(id = "expr-math", name = "Math", description = "Math operations (+, -, *, /, %)") @@ -21,6 +23,11 @@ public ExprMath() { addParameter("Number", new ExpressionParameter(ClassInfo.of(double.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(double.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMethod.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMethod.java index af66c79e..65603ac8 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMethod.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMethod.java @@ -6,6 +6,7 @@ import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.blocks.parameters.MethodParameter; import com.gmail.visualbukkit.project.BuildInfo; +import com.gmail.visualbukkit.project.JavadocsManager; import com.gmail.visualbukkit.reflection.ClassInfo; import com.gmail.visualbukkit.reflection.MethodInfo; @@ -22,6 +23,11 @@ public ExprMethod() { addParameter("Method", methodParameter = new MethodParameter(this, classParameter, m -> m.getReturnType() != null)); } + @Override + public void openJavadocs() { + JavadocsManager.getExprJavadocs(classParameter, methodParameter); + } + public ExprMethod(ClassInfo clazz, MethodInfo method, ExpressionBlock... parameterExpressions) { this(); classParameter.setValue(clazz); @@ -58,12 +64,4 @@ public String generateJava(BuildInfo buildInfo) { builder.append(")"); return builder.toString(); } - - public ClassParameter getClassParameter() { - return classParameter; - } - - public MethodParameter getMethodParameter() { - return methodParameter; - } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMultilineString.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMultilineString.java index 8e51ca32..24081f39 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMultilineString.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprMultilineString.java @@ -1,11 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.MultilineStringParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.Collections; @BlockDefinition(id = "expr-multiline-string", name = "Multiline String", description = "A multiline string literal") @@ -19,6 +21,11 @@ public ExprMultilineString() { parameters = Collections.singletonList(parameter); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/data/strings/multiline.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(String.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNegateBoolean.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNegateBoolean.java index fc52d156..7acd4d66 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNegateBoolean.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNegateBoolean.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-negate-boolean", name = "Negate Boolean", description = "Negates a boolean") public class ExprNegateBoolean extends ExpressionBlock { @@ -13,6 +16,11 @@ public ExprNegateBoolean() { addParameter("Boolean", new ExpressionParameter(ClassInfo.of(boolean.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(boolean.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNewObject.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNewObject.java index 8f8d8f9b..1d5c4f5c 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNewObject.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNewObject.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ClassParameter; @@ -9,6 +10,7 @@ import com.gmail.visualbukkit.reflection.ClassInfo; import com.gmail.visualbukkit.reflection.ConstructorInfo; +import java.net.URI; import java.util.StringJoiner; @BlockDefinition(id = "expr-new-object", name = "New Object", description = "Creates a new instance of a class") @@ -22,6 +24,11 @@ public ExprNewObject() { addParameter("Constructor", constructorParameter = new ConstructorParameter(this, classParameter)); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html")); + } + public ExprNewObject(ClassInfo clazz, ConstructorInfo constructor, ExpressionBlock... parameterExpressions) { this(); classParameter.setValue(clazz); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNull.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNull.java index e3e917ce..0ef0f334 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNull.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNull.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-null", name = "Null", description = "A null reference") public class ExprNull extends ExpressionBlock { @@ -17,4 +20,9 @@ public ClassInfo getReturnType() { public String generateJava(BuildInfo buildInfo) { return "((Object) null)"; } + + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://www.upwork.com/resources/what-is-null-in-java")); + } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNumber.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNumber.java index c155a754..68824d36 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNumber.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNumber.java @@ -1,11 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.InputParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.Collections; import java.util.regex.Pattern; @@ -27,6 +29,11 @@ public ExprNumber() { }); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html")); + } + public ExprNumber(Number num) { this(); parameter.setText(num instanceof Double || num instanceof Float ? String.format("%.3f", num.doubleValue()) : String.format("%d", num.longValue())); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNumberComparison.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNumberComparison.java index f00d59b7..60a560db 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNumberComparison.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprNumberComparison.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ChoiceParameter; @@ -7,6 +8,8 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-number-comparison", name = "Number Comparison", description = "Compares two numbers") public class ExprNumberComparison extends ExpressionBlock { @@ -16,6 +19,11 @@ public ExprNumberComparison() { addParameter("Number", new ExpressionParameter(ClassInfo.of(double.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(boolean.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprPersistentVariable.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprPersistentVariable.java index a106b235..b9680924 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprPersistentVariable.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprPersistentVariable.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; @@ -8,6 +9,8 @@ import org.jboss.forge.roaster.model.source.JavaClassSource; import org.jboss.forge.roaster.model.source.MethodSource; +import java.net.URI; + @BlockDefinition(id = "expr-persistent-variable", name = "Persistent Variable", description = "The value of a persistent variable") public class ExprPersistentVariable extends ExpressionBlock { @@ -15,6 +18,11 @@ public ExprPersistentVariable() { addParameter("Variable", new ExpressionParameter(ClassInfo.of(String.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(Object.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprProcedureArgument.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprProcedureArgument.java index 4b91c7ab..00f5e6ff 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprProcedureArgument.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprProcedureArgument.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-procedure-argument", name = "Procedure Argument", description = "An argument passed to a procedure (must be used in a 'Procedure' plugin component)") public class ExprProcedureArgument extends ExpressionBlock { @@ -19,6 +22,11 @@ public void updateState() { checkForPluginComponent(CompProcedure.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(Object.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprProcedureArguments.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprProcedureArguments.java index 8044b3d9..2893611f 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprProcedureArguments.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprProcedureArguments.java @@ -1,10 +1,12 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.List; @BlockDefinition(id = "expr-procedure-arguments", name = "Procedure Arguments", description = "The list of arguments passed to a procedure (must be used in a 'Procedure' plugin component)") @@ -16,6 +18,11 @@ public void updateState() { checkForPluginComponent(CompProcedure.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(List.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprRawString.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprRawString.java index beb804a3..ba0f61d0 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprRawString.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprRawString.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.InputParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-raw-string", name = "Raw String", description = "A string in which escape sequences can be used") public class ExprRawString extends ExpressionBlock { @@ -13,6 +16,11 @@ public ExprRawString() { addParameter("String", new InputParameter()); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/data/strings/index.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(String.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprSerializedItemStack.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprSerializedItemStack.java index 7e320f24..a57a1ef5 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprSerializedItemStack.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprSerializedItemStack.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.MultilineStringParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-serialized-itemstack", name = "Serialized ItemStack", description = "Creates an ItemStack from YAML") public class ExprSerializedItemStack extends ExpressionBlock { @@ -15,6 +18,11 @@ public ExprSerializedItemStack() { addParameter("Yaml", parameter); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/ItemStack.html")); + } + public ExprSerializedItemStack(String yaml) { this(); parameter.setText(yaml); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprString.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprString.java index 375de1e3..74dbde9f 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprString.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprString.java @@ -1,11 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.StringParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.Collections; @BlockDefinition(id = "expr-string", name = "String", description = "A string literal") @@ -19,6 +21,11 @@ public ExprString() { parameters = Collections.singletonList(parameter); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html")); + } + public ExprString(String string) { this(); parameter.setText(string); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprStringConcatenation.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprStringConcatenation.java index f7ca001f..deb56e70 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprStringConcatenation.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprStringConcatenation.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.SizedExpressionBlock; import com.gmail.visualbukkit.blocks.parameters.BlockParameter; @@ -7,6 +8,7 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.StringJoiner; @BlockDefinition(id = "expr-string-concatenation", name = "String Concatenation", description = "Concatenates two or more strings") @@ -17,6 +19,11 @@ public ExprStringConcatenation() { addParameter("String", new ExpressionParameter(ClassInfo.of(String.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html#concat(java.lang.String)")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(String.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprThisPlugin.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprThisPlugin.java index 4deba7c9..21f8f856 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprThisPlugin.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/ExprThisPlugin.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-this-plugin", name = "This Plugin", description = "A reference to this plugin") public class ExprThisPlugin extends ExpressionBlock { @@ -17,4 +20,9 @@ public ClassInfo getReturnType() { public String generateJava(BuildInfo buildInfo) { return "PluginMain.getInstance()"; } + + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/plugin/java/JavaPlugin.html")); + } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatAdvancedNumberLoop.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatAdvancedNumberLoop.java index 49c7eecc..48f07a35 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatAdvancedNumberLoop.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatAdvancedNumberLoop.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ContainerBlock; import com.gmail.visualbukkit.blocks.parameters.ChoiceParameter; @@ -7,6 +8,8 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-advanced-number-loop", name = "Advanced Number Loop", description = "Loops through a range of numbers") public class StatAdvancedNumberLoop extends ContainerBlock { @@ -18,6 +21,11 @@ public StatAdvancedNumberLoop() { addParameter("Comparison", new ChoiceParameter("<", "<=", ">", ">=", "==", "!=")); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { String loopVar = "loopNumber" + getNestedContainers(StatNumberLoop.class, StatAdvancedNumberLoop.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatAttemptExecution.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatAttemptExecution.java index 1b8f2674..c8b17e0f 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatAttemptExecution.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatAttemptExecution.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ContainerBlock; import com.gmail.visualbukkit.project.BuildInfo; import org.apache.commons.lang3.RandomStringUtils; +import java.net.URI; + @BlockDefinition(id = "stat-attempt-execution", name = "Attempt Execution", description = "Attempts to execute code and suppresses any exceptions") public class StatAttemptExecution extends ContainerBlock { @@ -12,4 +15,9 @@ public class StatAttemptExecution extends ContainerBlock { public String generateJava(BuildInfo buildInfo) { return "try {" + generateChildrenJava(buildInfo) + (getParentStatementHolder().getNext(this) instanceof StatHandleException ? "}" : ("} catch (Exception $" + RandomStringUtils.randomAlphanumeric(16) + ") {}")); } + + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/essential/exceptions/try.html")); + } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatBreakLoop.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatBreakLoop.java index c60303bf..f396df2a 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatBreakLoop.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatBreakLoop.java @@ -1,9 +1,12 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.project.BuildInfo; +import java.net.URI; + @BlockDefinition(id = "stat-break-loop", name = "Break Loop", description = "Immediately stops a loop") public class StatBreakLoop extends StatementBlock { @@ -13,6 +16,11 @@ public void updateState() { checkForContainer(StatWhileLoop.class, StatListLoop.class, StatNumberLoop.class, StatAdvancedNumberLoop.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "if (true) break;"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatCancelScheduledTask.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatCancelScheduledTask.java index 586f278d..80f95584 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatCancelScheduledTask.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatCancelScheduledTask.java @@ -1,9 +1,12 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.project.BuildInfo; +import java.net.URI; + @BlockDefinition(id = "stat-cancel-scheduled-task", name = "Cancel Scheduled Task", description = "Cancels a scheduled task") public class StatCancelScheduledTask extends StatementBlock { @@ -13,6 +16,11 @@ public void updateState() { checkForContainer(StatScheduleTask.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/scheduler/BukkitScheduler.html#cancelTask(int)")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "cancel();"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatCommandReturn.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatCommandReturn.java index b0ad2b75..8b30ec8f 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatCommandReturn.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatCommandReturn.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-command-return", name = "Command Return", description = "Terminates a command and indicates whether it was successful (must be used in a 'Command' plugin component") public class StatCommandReturn extends StatementBlock { @@ -19,6 +22,11 @@ public void updateState() { checkForPluginComponent(CompCommand.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/CommandSender.html#sendMessage(java.lang.String)")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "if (true) return " + arg(0, buildInfo) + ";"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatComment.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatComment.java index d9dceec5..dc05b6aa 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatComment.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatComment.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.InputParameter; @@ -7,6 +8,7 @@ import javafx.scene.control.Label; import javafx.scene.layout.HBox; +import java.net.URI; import java.util.Collections; @BlockDefinition(id = "stat-comment", name = "Comment", description = "A comment with no effect") @@ -19,6 +21,11 @@ public StatComment() { parameters = Collections.singletonList(inputParameter); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/comments.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return ""; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatContinueLoop.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatContinueLoop.java index 9444f985..d574f8ab 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatContinueLoop.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatContinueLoop.java @@ -1,9 +1,12 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.project.BuildInfo; +import java.net.URI; + @BlockDefinition(id = "stat-continue-loop", name = "Continue Loop", description = "Advances a loop to the next iteration") public class StatContinueLoop extends StatementBlock { @@ -13,6 +16,11 @@ public void updateState() { checkForContainer(StatWhileLoop.class, StatListLoop.class, StatNumberLoop.class, StatAdvancedNumberLoop.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "if (true) continue;"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatElseIfStatement.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatElseIfStatement.java index 3e5f56c2..e79c56f9 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatElseIfStatement.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatElseIfStatement.java @@ -1,8 +1,11 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.project.BuildInfo; +import java.net.URI; + @BlockDefinition(id = "stat-else-if-statement", name = "Else If Statement", description = "Checks if a condition is true and the condition was false for the previous 'If Statement' or 'Else If Statement'") public class StatElseIfStatement extends StatIfStatement { @@ -12,6 +15,11 @@ public void updateState() { checkForPrevious(StatIfStatement.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "else " + super.generateJava(buildInfo); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatElseStatement.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatElseStatement.java index 77e6a02a..4dc863d7 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatElseStatement.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatElseStatement.java @@ -1,9 +1,12 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ContainerBlock; import com.gmail.visualbukkit.project.BuildInfo; +import java.net.URI; + @BlockDefinition(id = "stat-else-statement", name = "Else Statement", description = "Checks if the condition was false for the previous 'If Statement' or 'Else If Statement'") public class StatElseStatement extends ContainerBlock { @@ -13,6 +16,11 @@ public void updateState() { checkForPrevious(StatIfStatement.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "else {" + generateChildrenJava(buildInfo) + "}"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatExecuteProcedure.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatExecuteProcedure.java index f54a08fd..f3f50f28 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatExecuteProcedure.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatExecuteProcedure.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; @@ -7,6 +8,7 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.List; @BlockDefinition(id = "stat-execute-procedure", name = "Execute Procedure", description = "Executes the given procedure") @@ -17,6 +19,11 @@ public StatExecuteProcedure() { addParameter("Arguments", new ExpressionParameter(ClassInfo.of(List.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "PluginMain.procedure(" + arg(0, buildInfo) + "," + arg(1, buildInfo) + ");"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatFunctionReturn.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatFunctionReturn.java index 0e9ff27b..9aff9902 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatFunctionReturn.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatFunctionReturn.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-function-return", name = "Function Return", description = "Returns a value (must be used in a 'Function' plugin component)") public class StatFunctionReturn extends StatementBlock { @@ -19,6 +22,11 @@ public void updateState() { checkForPluginComponent(CompFunction.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "if (true) return " + arg(0, buildInfo) + ";"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatHandleException.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatHandleException.java index 9fc8bf6e..bba49c13 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatHandleException.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatHandleException.java @@ -1,9 +1,12 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ContainerBlock; import com.gmail.visualbukkit.project.BuildInfo; +import java.net.URI; + @BlockDefinition(id = "stat-handle-exception", name = "Handle Exception", description = "Checks if an exception occurred during the previous 'Attempt Execution'") public class StatHandleException extends ContainerBlock { @@ -13,6 +16,11 @@ public void updateState() { checkForPrevious(StatAttemptExecution.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "catch (Exception $executionException" + getNestedContainers(StatHandleException.class) + ") {" + generateChildrenJava(buildInfo) + "}"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatIfStatement.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatIfStatement.java index 994dc422..1308c3a3 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatIfStatement.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatIfStatement.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ContainerBlock; import com.gmail.visualbukkit.blocks.parameters.CheckBoxParameter; @@ -7,6 +8,8 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-if-statement", name = "If Statement", description = "Checks if a condition is true") public class StatIfStatement extends ContainerBlock { @@ -17,6 +20,11 @@ public StatIfStatement() { addParameter("Condition", new ExpressionParameter(ClassInfo.of(boolean.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "if (" + (modeParameter.isSelected() ? "!" : "") + arg(1, buildInfo) + ") {" + getChildStatementHolder().generateJava(buildInfo) + "}"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatJavaCode.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatJavaCode.java index 923b9d0f..0561859d 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatJavaCode.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatJavaCode.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.MultilineInputParameter; import com.gmail.visualbukkit.project.BuildInfo; +import java.net.URI; + @BlockDefinition(id = "stat-java-code", name = "Java Code", description = "Arbitrary Java code") public class StatJavaCode extends StatementBlock { @@ -12,6 +15,11 @@ public StatJavaCode() { addParameter("Java", new MultilineInputParameter()); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return arg(0, buildInfo); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatListLoop.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatListLoop.java index a9663daa..38dee4b3 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatListLoop.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatListLoop.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ContainerBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-list-loop", name = "List Loop", description = "Loops through each value in a list") public class StatListLoop extends ContainerBlock { @@ -13,6 +16,11 @@ public StatListLoop() { addParameter("List", new ExpressionParameter(ClassInfo.of(Iterable.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/8/docs/technotes/guides/language/foreach.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "for (Object $FINAL_loopValue" + getNestedContainers(StatListLoop.class) + " : " + arg(0, buildInfo) + ") {" + generateChildrenJava(buildInfo) + "}"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatMethod.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatMethod.java index 9541b222..6d0a1f3c 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatMethod.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatMethod.java @@ -7,6 +7,7 @@ import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.blocks.parameters.MethodParameter; import com.gmail.visualbukkit.project.BuildInfo; +import com.gmail.visualbukkit.project.JavadocsManager; import com.gmail.visualbukkit.reflection.ClassInfo; import com.gmail.visualbukkit.reflection.MethodInfo; @@ -23,6 +24,11 @@ public StatMethod() { addParameter("Method", methodParameter = new MethodParameter(this, classParameter)); } + @Override + public void openJavadocs() { + JavadocsManager.getStatJavadocs(classParameter, methodParameter); + } + public StatMethod(ClassInfo clazz, MethodInfo method, ExpressionBlock... parameterExpressions) { this(); classParameter.setValue(clazz); @@ -54,12 +60,4 @@ public String generateJava(BuildInfo buildInfo) { builder.append(");"); return builder.toString(); } - - public ClassParameter getClassParameter() { - return classParameter; - } - - public MethodParameter getMethodParameter() { - return methodParameter; - } } diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatNumberLoop.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatNumberLoop.java index d8476081..a57ce31d 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatNumberLoop.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatNumberLoop.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ContainerBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-number-loop", name = "Number Loop", description = "Loops a certain number of times") public class StatNumberLoop extends ContainerBlock { @@ -13,6 +16,11 @@ public StatNumberLoop() { addParameter("Number", new ExpressionParameter(ClassInfo.of(int.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html")); + } + @Override public String generateJava(BuildInfo buildInfo) { String loopVar = "loopNumber" + getNestedContainers(StatNumberLoop.class, StatAdvancedNumberLoop.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatScheduleTask.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatScheduleTask.java index 163360fc..60dfcd54 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatScheduleTask.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatScheduleTask.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ContainerBlock; import com.gmail.visualbukkit.blocks.parameters.CheckBoxParameter; @@ -8,6 +9,7 @@ import com.gmail.visualbukkit.reflection.ClassInfo; import org.apache.commons.lang3.RandomStringUtils; +import java.net.URI; import java.util.HashSet; import java.util.Set; import java.util.regex.Matcher; @@ -24,6 +26,11 @@ public StatScheduleTask() { addParameter("Delay", new ExpressionParameter(ClassInfo.of(long.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/scheduler/BukkitScheduler.html#runTask(org.bukkit.plugin.java.JavaPlugin,java.lang.Runnable)")); + } + @Override public String generateJava(BuildInfo buildInfo) { String childrenJava = generateChildrenJava(buildInfo); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetGlobalVariable.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetGlobalVariable.java index 92f49d60..9d9dab27 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetGlobalVariable.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetGlobalVariable.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-set-global-variable", name = "Set Global Variable", description = "Sets the value of a global variable") public class StatSetGlobalVariable extends StatementBlock { @@ -14,6 +17,11 @@ public StatSetGlobalVariable() { addParameter("Value", new ExpressionParameter(ClassInfo.of(Object.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + } + @Override public String generateJava(BuildInfo buildInfo) { ExprGlobalVariable.prepareClass(buildInfo.getMainClass()); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetLocalVariable.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetLocalVariable.java index 4e14fa98..189b99e8 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetLocalVariable.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetLocalVariable.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.blocks.StatementBlock; @@ -10,6 +11,8 @@ import com.gmail.visualbukkit.reflection.ClassInfo; import javafx.scene.layout.Region; +import java.net.URI; + @BlockDefinition(id = "stat-set-local-variable", name = "Set Local Variable", description = "Sets the value of a local variable") public class StatSetLocalVariable extends StatementBlock { @@ -21,6 +24,11 @@ public StatSetLocalVariable() { addParameter("Value", valueParameter); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + } + public StatSetLocalVariable(String var, ExpressionBlock value) { this(); varParameter.inputParameter.setText(var); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPersistentVariable.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPersistentVariable.java index 8d308b8e..0ce0700a 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPersistentVariable.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPersistentVariable.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-set-persistent-variable", name = "Set Persistent Variable", description = "Sets the value of a persistent variable") public class StatSetPersistentVariable extends StatementBlock { @@ -14,6 +17,11 @@ public StatSetPersistentVariable() { addParameter("Value", new ExpressionParameter(ClassInfo.of(Object.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/wiki/Variables")); + } + @Override public String generateJava(BuildInfo buildInfo) { ExprPersistentVariable.prepareClass(buildInfo.getMainClass()); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPlayerHeadSkin.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPlayerHeadSkin.java index ea0541c7..dbb26833 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPlayerHeadSkin.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPlayerHeadSkin.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-set-player-head-skin", name = "Set Player Head Skin", description = "Sets the skin of a player head") public class StatSetPlayerHeadSkin extends StatementBlock { @@ -14,6 +17,11 @@ public StatSetPlayerHeadSkin() { addParameter("URL", new ExpressionParameter(ClassInfo.of(String.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/meta/SkullMeta.html#setOwner(java.lang.String)")); + } + @Override public String generateJava(BuildInfo buildInfo) { if (buildInfo.getMetadata().putIfAbsent("setPlayerHeadSkin()", true) == null) { diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPlayerSkin.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPlayerSkin.java index 6b13d489..bdeb940b 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPlayerSkin.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPlayerSkin.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-set-player-skin", name = "Set Player Skin", description = "Sets the skin of a player") public class StatSetPlayerSkin extends StatementBlock { @@ -15,6 +18,11 @@ public StatSetPlayerSkin() { addParameter("Skin Signature", new ExpressionParameter(ClassInfo.of(String.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://github.com/OfficialDonut/VisualBukkit/blob/master/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatSetPlayerSkin.java")); + } + @Override public String generateJava(BuildInfo buildInfo) { if (buildInfo.getMetadata().putIfAbsent("setPlayerSkin()", true) == null) { diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatTabCompleteReturn.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatTabCompleteReturn.java index e57ae818..1d6afbd1 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatTabCompleteReturn.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatTabCompleteReturn.java @@ -1,11 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; import java.util.List; @BlockDefinition(id = "stat-tab-complete-return", name = "Tab Complete Return", description = "Returns a list of completions for a command argument (must be used in a 'Tab Complete Handler' plugin component)") @@ -21,6 +23,11 @@ public void updateState() { checkForPluginComponent(CompTabCompleteHandler.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/command/TabCompleter.html#onTabComplete(org.bukkit.command.CommandSender,org.bukkit.command.Command,java.lang.String,java.lang.String[])")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "if (true) return " + arg(0, buildInfo) + ";"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatWhileLoop.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatWhileLoop.java index c685223b..903f6402 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatWhileLoop.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/core/StatWhileLoop.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.core; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ContainerBlock; import com.gmail.visualbukkit.blocks.parameters.CheckBoxParameter; @@ -7,6 +8,8 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-while-loop", name = "While Loop", description = "Loops while a condition is true") public class StatWhileLoop extends ContainerBlock { @@ -17,6 +20,11 @@ public StatWhileLoop() { addParameter("Condition", new ExpressionParameter(ClassInfo.of(boolean.class))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/entity/HumanEntity.html#openInventory(org.bukkit.inventory.Inventory)")); + } + @Override public String generateJava(BuildInfo buildInfo) { return (modeParameter.isSelected() ? "while (!" : "while (") + arg(1, buildInfo) + ") {" + generateChildrenJava(buildInfo) + "}"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickType.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickType.java index 262bfd80..157cbf97 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickType.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickType.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.gui; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-gui-click-type", name = "GUI Click Type", description = "Must be used in a 'GUI Click Handler' plugin component") public class ExprGUIClickType extends ExpressionBlock { @@ -14,6 +17,11 @@ public void updateState() { checkForPluginComponent(CompGUIClickHandler.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getAction()")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of("org.bukkit.event.inventory.ClickType"); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedInventory.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedInventory.java index 148fa07e..4002ee7e 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedInventory.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedInventory.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.gui; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-gui-clicked-inventory", name = "GUI Clicked Inventory", description = "Must be used in a 'GUI Click Handler' plugin component") public class ExprGUIClickedInventory extends ExpressionBlock { @@ -14,6 +17,11 @@ public void updateState() { checkForPluginComponent(CompGUIClickHandler.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getClickedInventory()")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of("org.bukkit.inventory.Inventory"); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedItemStack.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedItemStack.java index 75886032..fe345f0c 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedItemStack.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedItemStack.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.gui; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-gui-clicked-itemstack", name = "GUI Clicked ItemStack", description = "Must be used in a 'GUI Click Handler' plugin component") public class ExprGUIClickedItemStack extends ExpressionBlock { @@ -14,6 +17,11 @@ public void updateState() { checkForPluginComponent(CompGUIClickHandler.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getCurrentItem()")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of("org.bukkit.inventory.ItemStack"); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedSlot.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedSlot.java index 8c1d5cfc..0b950090 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedSlot.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClickedSlot.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.gui; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-gui-clicked-slot", name = "GUI Clicked Slot", description = "Must be used in a 'GUI Click Handler' plugin component") public class ExprGUIClickedSlot extends ExpressionBlock { @@ -14,6 +17,11 @@ public void updateState() { checkForPluginComponent(CompGUIClickHandler.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getSlot()")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of(int.class); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClicker.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClicker.java index 726a1e2f..b4d08b4b 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClicker.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIClicker.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.gui; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-gui-clicker", name = "GUI Clicker", description = "Must be used in a 'GUI Click Handler' plugin component") public class ExprGUIClicker extends ExpressionBlock { @@ -14,6 +17,11 @@ public void updateState() { checkForPluginComponent(CompGUIClickHandler.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getWhoClicked()")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of("org.bukkit.entity.Player"); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIInventory.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIInventory.java index f6b550a4..fe87903d 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIInventory.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIInventory.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.gui; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-gui-inventory", name = "GUI Inventory", description = "Must be used in a 'GUI' plugin component") public class ExprGUIInventory extends ExpressionBlock { @@ -14,6 +17,11 @@ public void updateState() { checkForPluginComponent(CompGUI.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html#getView()")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of("org.bukkit.inventory.Inventory"); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIInventoryClickEvent.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIInventoryClickEvent.java index 146ea37c..42e10156 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIInventoryClickEvent.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIInventoryClickEvent.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.gui; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-gui-inventory-click-event", name = "GUI Inventory Click Event", description = "Must be used in a 'GUI Click Handler' plugin component") public class ExprGUIInventoryClickEvent extends ExpressionBlock { @@ -14,6 +17,11 @@ public void updateState() { checkForPluginComponent(CompGUIClickHandler.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/event/inventory/InventoryClickEvent.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of("org.bukkit.event.inventory.InventoryClickEvent"); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIPlayer.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIPlayer.java index d263713a..e175123f 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIPlayer.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/ExprGUIPlayer.java @@ -1,10 +1,13 @@ package com.gmail.visualbukkit.blocks.definitions.gui; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.ExpressionBlock; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "expr-gui-player", name = "GUI Player", description = "Must be used in a 'GUI' plugin component") public class ExprGUIPlayer extends ExpressionBlock { @@ -14,6 +17,11 @@ public void updateState() { checkForPluginComponent(CompGUI.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/entity/Player.html")); + } + @Override public ClassInfo getReturnType() { return ClassInfo.of("org.bukkit.entity.Player"); diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/StatOpenGUI.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/StatOpenGUI.java index 79f6810b..b3581c77 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/StatOpenGUI.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/StatOpenGUI.java @@ -1,5 +1,6 @@ package com.gmail.visualbukkit.blocks.definitions.gui; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; @@ -7,6 +8,8 @@ import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-open-gui", name = "Open GUI", description = "Opens a GUI to a player") public class StatOpenGUI extends StatementBlock { @@ -15,6 +18,11 @@ public StatOpenGUI() { addParameter("Player", new ExpressionParameter(ClassInfo.of("org.bukkit.entity.Player"))); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/entity/HumanEntity.html#openInventory(org.bukkit.inventory.Inventory)")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "GUIManager.getInstance().open(" + arg(0, buildInfo) + "," + arg(1, buildInfo) + ");"; diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/StatSetGUISlot.java b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/StatSetGUISlot.java index 22a25805..fc226638 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/StatSetGUISlot.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/blocks/definitions/gui/StatSetGUISlot.java @@ -1,11 +1,14 @@ package com.gmail.visualbukkit.blocks.definitions.gui; +import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.BlockDefinition; import com.gmail.visualbukkit.blocks.StatementBlock; import com.gmail.visualbukkit.blocks.parameters.ExpressionParameter; import com.gmail.visualbukkit.project.BuildInfo; import com.gmail.visualbukkit.reflection.ClassInfo; +import java.net.URI; + @BlockDefinition(id = "stat-set-gui-slot", name = "Set GUI Slot", description = "Must be used in a 'GUI' plugin component") public class StatSetGUISlot extends StatementBlock { @@ -20,6 +23,11 @@ public void updateState() { checkForPluginComponent(CompGUI.class); } + @Override + public void openJavadocs() { + VisualBukkitApp.openURI(URI.create("https://jd.papermc.io/paper/1.21.4/org/bukkit/inventory/Inventory.html#setItem(int,org.bukkit.inventory.ItemStack)")); + } + @Override public String generateJava(BuildInfo buildInfo) { return "guiInventory.setItem(" + arg(0, buildInfo) + "," + arg(1, buildInfo) + ");"; From ba99d472bac43df92d26f0890b47f2f10c847b01 Mon Sep 17 00:00:00 2001 From: Priyan_17 <101181090+Reaper-1709@users.noreply.github.com> Date: Fri, 28 Mar 2025 12:41:00 +0530 Subject: [PATCH 7/7] Javadocs optimization: - commit revised JavadocsManager.java --- .../visualbukkit/project/JavadocsManager.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java b/VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java index f1671060..91805de8 100644 --- a/VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java +++ b/VB-Application/src/main/java/com/gmail/visualbukkit/project/JavadocsManager.java @@ -2,6 +2,9 @@ import com.gmail.visualbukkit.VisualBukkitApp; import com.gmail.visualbukkit.blocks.definitions.core.*; +import com.gmail.visualbukkit.blocks.parameters.ClassParameter; +import com.gmail.visualbukkit.blocks.parameters.FieldParameter; +import com.gmail.visualbukkit.blocks.parameters.MethodParameter; import org.json.JSONObject; import java.net.URI; @@ -10,16 +13,16 @@ public class JavadocsManager { - public static void getStatJavadocs(StatMethod statMethod) { - getJavadocs(statMethod.getClassParameter().getValue().getName(), statMethod.getMethodParameter().getValue().getSignature()); + public static void getStatJavadocs(ClassParameter classParameter, MethodParameter methodParameter) { + getJavadocs(classParameter.getValue().getName(), methodParameter.getValue().getSignature()); } - public static void getExprJavadocs(ExprMethod exprMethod) { - getJavadocs(exprMethod.getClassParameter().getValue().getName(), exprMethod.getMethodParameter().getValue().getSignature()); + public static void getExprJavadocs(ClassParameter classParameter, MethodParameter methodParameter) { + getJavadocs(classParameter.getValue().getName(), methodParameter.getValue().getSignature()); } - public static void getExprJavadocs(ExprField exprField) { - getJavadocs(exprField.getClassParameter().getValue().getName(), exprField.getFieldParameter().getValue().getName()); + public static void getExprJavadocs(ClassParameter classParameter, FieldParameter fieldParameter) { + getJavadocs(classParameter.getValue().getName(), fieldParameter.getValue().getName()); } public static void getCompJavaDocs(PluginComponent pluginComponent) {