Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -206,4 +206,5 @@ buildNumber.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar

# End of https://www.toptal.com/developers/gitignore/api/java,eclipse,intellij,maven
# End of https://www.toptal.com/developers/gitignore/api/java,eclipse,intellij,maven
/.idea
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,17 @@ public static void openURI(URI uri) {
}
}

public static URI javadocsURI(String relativePath) {
if (relativePath.startsWith("https://")) {
return URI.create(relativePath);
}
String baseUrl = ProjectManager.current().getDEFAULT_JAVADOCS_URL();
if (relativePath.startsWith("java/") || relativePath.startsWith("jdk/")) {
baseUrl = ProjectManager.current().getDEFAULT_JAVA_JAVADOCS_URL();
}
return URI.create(baseUrl).resolve(relativePath);
}

private static boolean openURI(URI uri, String command) {
try {
return Runtime.getRuntime().exec(command + " " + uri).waitFor() == 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.gmail.visualbukkit.blocks;

import com.gmail.visualbukkit.VisualBukkitApp;
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;
Expand Down Expand Up @@ -34,7 +36,9 @@ 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 -> openJavadocs())
);

setOnDragDetected(e -> {
if (e.getButton() == MouseButton.PRIMARY) {
Expand Down Expand Up @@ -118,5 +122,10 @@ public JSONObject serialize() {
public void deserialize(JSONObject json) {
this.json = json;
}

@Override
public void openJavadocs() {
VisualBukkitApp.displayError(VisualBukkitApp.localizedText("notification.unavailable_javadocs"));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand Down Expand Up @@ -96,5 +97,8 @@ public JSONObject serialize() {
public void deserialize(JSONObject json) {
this.json = json;
}

@Override
public void openJavadocs() {}
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.gmail.visualbukkit.blocks;

import com.gmail.visualbukkit.VisualBukkitApp;
import com.gmail.visualbukkit.project.BuildInfo;
import com.gmail.visualbukkit.project.CopyPasteManager;
import com.gmail.visualbukkit.project.UndoManager;
import com.gmail.visualbukkit.project.*;
import com.gmail.visualbukkit.ui.ActionMenuItem;
import javafx.scene.SnapshotParameters;
import javafx.scene.control.SeparatorMenuItem;
Expand Down Expand Up @@ -36,9 +34,11 @@ 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 -> 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);
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) {
Expand Down Expand Up @@ -136,5 +136,8 @@ public JSONObject serialize() {
public void deserialize(JSONObject json) {
this.json = json;
}

@Override
public void openJavadocs() {}
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
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 {

Expand All @@ -14,6 +17,11 @@ public StatBungeeCordConnect() {
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) {
Expand Down
Original file line number Diff line number Diff line change
@@ -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.PluginComponentBlock;
import com.gmail.visualbukkit.blocks.parameters.InputParameter;
Expand Down Expand Up @@ -36,6 +37,11 @@ public CompCommand() {
addParameter("Usage", usage);
}

@Override
public void openJavadocs() {
VisualBukkitApp.openURI(VisualBukkitApp.javadocsURI("org/bukkit/command/Command.html"));
}

@Override
public void prepareBuild(BuildInfo buildInfo) {
MethodSource<JavaClassSource> commandMethod = buildInfo.getMainClass().getMethod("onCommand", "CommandSender", "Command", "String", "String[]");
Expand Down
Original file line number Diff line number Diff line change
@@ -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.PluginComponentBlock;
import com.gmail.visualbukkit.project.BuildInfo;
Expand All @@ -16,4 +17,9 @@ public void prepareBuild(BuildInfo buildInfo) {
protected static String getConsumerField(String str) {
return "$CONSUMER_" + str;
}

@Override
public void openJavadocs() {
VisualBukkitApp.openURI(VisualBukkitApp.javadocsURI("java/util/function/Consumer"));
}
}
Original file line number Diff line number Diff line change
@@ -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.PluginComponentBlock;
import com.gmail.visualbukkit.blocks.parameters.ChoiceParameter;
Expand Down Expand Up @@ -30,4 +31,10 @@ public void prepareBuild(BuildInfo buildInfo) {
public ClassInfo getEvent() {
return eventParameter.getValue() != null ? eventParameter.getValue() : ClassInfo.of("org.bukkit.event.Event");
}

@Override
public void openJavadocs() {
String eventPath = (getEvent().getPackage().replace('.', '/') + "/" + getEvent().toString().split("\\(")[0]).strip();
VisualBukkitApp.openURI(VisualBukkitApp.javadocsURI(eventPath + ".html"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,7 @@ public void prepareBuild(BuildInfo buildInfo) {
"}" +
functionMethod.getBody());
}

@Override
public void openJavadocs() {}
}
Original file line number Diff line number Diff line change
@@ -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.PluginComponentBlock;
import com.gmail.visualbukkit.project.BuildInfo;
Expand All @@ -17,4 +18,9 @@ public void prepareBuild(BuildInfo buildInfo) {
generateChildrenJava(buildInfo) +
"} catch (Exception e) { e.printStackTrace(); }");
}

@Override
public void openJavadocs() {
VisualBukkitApp.openURI(VisualBukkitApp.javadocsURI("org/bukkit/plugin/java/JavaPlugin.html#onDisable()"));
}
}
Original file line number Diff line number Diff line change
@@ -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.PluginComponentBlock;
import com.gmail.visualbukkit.project.BuildInfo;
Expand All @@ -17,4 +18,9 @@ public void prepareBuild(BuildInfo buildInfo) {
generateChildrenJava(buildInfo) +
"} catch (Exception e) { e.printStackTrace(); }");
}

@Override
public void openJavadocs() {
VisualBukkitApp.openURI(VisualBukkitApp.javadocsURI("org/bukkit/plugin/java/JavaPlugin.html#onEnable()"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,7 @@ public void prepareBuild(BuildInfo buildInfo) {
"}" +
procedureMethod.getBody());
}

@Override
public void openJavadocs() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,9 @@ public void prepareBuild(BuildInfo buildInfo) {
"}" +
tabCompleteMethod.getBody());
}

@Override
public void openJavadocs() {
VisualBukkitApp.openURI(VisualBukkitApp.javadocsURI("org/bukkit/command/TabCompleter.html#onTabComplete()"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,7 @@ public class CompWorkspace extends PluginComponentBlock {

@Override
public void prepareBuild(BuildInfo buildInfo) {}

@Override
public void openJavadocs() {}
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
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 {

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);
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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;
Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -13,6 +14,11 @@ public ExprColoredString() {
addParameter("String", new ExpressionParameter(ClassInfo.of(String.class)));
}

@Override
public void openJavadocs() {
VisualBukkitApp.openURI(VisualBukkitApp.javadocsURI("org/bukkit/ChatColor.html"));
}

@Override
public ClassInfo getReturnType() {
return ClassInfo.of(String.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -24,6 +25,11 @@ public void updateState() {
checkForPluginComponent(CompCommand.class, CompTabCompleteHandler.class);
}

@Override
public void openJavadocs() {
VisualBukkitApp.openURI(VisualBukkitApp.javadocsURI("org/bukkit/command/Command.html"));
}

@Override
public String generateJava(BuildInfo buildInfo) {
return "(commandArgs.length > " + arg(0, buildInfo) + " ? commandArgs[" + arg(0, buildInfo) + "] : null" + ")";
Expand Down
Original file line number Diff line number Diff line change
@@ -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.project.BuildInfo;
Expand All @@ -21,6 +22,11 @@ public void updateState() {
checkForPluginComponent(CompCommand.class, CompTabCompleteHandler.class);
}

@Override
public void openJavadocs() {
VisualBukkitApp.openURI(VisualBukkitApp.javadocsURI("org/bukkit/command/Command.html"));
}

@Override
public String generateJava(BuildInfo buildInfo) {
return "List.of(commandArgs)";
Expand Down
Original file line number Diff line number Diff line change
@@ -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.project.BuildInfo;
Expand All @@ -19,6 +20,11 @@ public void updateState() {
checkForPluginComponent(CompCommand.class, CompTabCompleteHandler.class);
}

@Override
public void openJavadocs() {
VisualBukkitApp.openURI(VisualBukkitApp.javadocsURI("org/bukkit/command/CommandSender.html"));
}

@Override
public String generateJava(BuildInfo buildInfo) {
return "commandSender";
Expand Down
Loading