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
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,9 +1,12 @@
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;
import com.gmail.visualbukkit.project.JavadocsManager;
import com.gmail.visualbukkit.project.UndoManager;
import com.gmail.visualbukkit.reflection.ClassInfo;
import com.gmail.visualbukkit.ui.ActionMenuItem;
Expand All @@ -20,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");
Expand All @@ -34,7 +39,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 +125,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
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
Original file line number Diff line number Diff line change
@@ -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 {
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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) {
Expand Down
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,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.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 {

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"));
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add a constant for the base url "https://jd.papermc.io/paper/1.21.4" or a utility method or something to avoid hardcoding it in a million places

}

@Override
public ClassInfo getReturnType() {
return ClassInfo.of(String.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {

Expand All @@ -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" + ")";
Expand Down
Original file line number Diff line number Diff line change
@@ -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)")
Expand All @@ -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)";
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {

Expand All @@ -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";
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {

Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
@@ -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")
Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {

Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -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;
Expand Down
Loading