Giter Club home page Giter Club logo

triggerreactor's Introduction

TriggerReactor Java CI CodeFactor

For easy to use script solution and infinite possibility to expand

Project Hierarchy

TriggerReactor currently consist of five major projects: core, bukkit, bukkit-legacy, bukkit-latest, and sponge.

After each projects' build is complete, the gradle script will automatically include necessary java binaries from the different projects, and then create a complete .jar files which are ready to be used.

Core

The core layer is where the actual script engine and the various interfaces resides. For example, the io.github.wysohn.triggerreactor.core.script package consist of number of classes necessary for interpreting the .trg codes, hence it's not related to the Bukkit or Sponge APIs.

In order to utilize the script engine, the io.github.wysohn.triggerreactor.core package contains bridge, main, and manager sub-packages, and these are mostly interfaces that most of their actual functionaly is not yet implemented.

Bukkit

This is the project where connects the core layer and the Bukkit API. It's this project's responsibility to provide the actual functionality using both the interfaces of Core project and Bukkit API.

Add to that, Because there was a big leap in Bukkit API itself, it's very difficult to expect the TriggerReactor built on Bukkit API version less than or equal to 1.12.2 to work with the latest versions like 1.13 or after, Bukkit project has two sub-projects. These sub-projects compile the necessary codes with different Bukkit API versions.This project works as library for the subprojects, so some missing implementations are in the subprojects.

Bukkit-legacy (1.5.2~1.12.2)

This is the traditional TriggerReactor project before the project is separated into multiple projects. Other than adding a new features, this project will remain untouched.

Bukkit-latest (1.13 ~ latest)

This is the new project which implements the latest Bukkit API. There were several changes that is very difficult to make the plugin both compatible in legacy version and the latest version, so this project will handle the part where those new changes should be adapted. (And it's also a new trend in Spigot community to separating legacy version support and latest version support)

Sponge

This is a dedicated project only for Sponge. Implements functionality to connect Core project and Sponge API (ver7).

triggerreactor's People

Contributors

alex4386 avatar cupelt avatar gerzytet avatar github-actions[bot] avatar kuiprux avatar lunabunn avatar redlime avatar rkdrns4747 avatar sayakie avatar soliddanii avatar son-daehyeon avatar soshimee avatar thebestnightsky avatar wysohn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

triggerreactor's Issues

Trigger Reactor 1.3.3 Issue - Seemingly with a while loop

Hello, I recently updated a server I administrate to Trigger Reactor version 1.3.3, I found out earlier today that some of our commands broke, so I decided to investigate and found an "ENDWHILE" was causing this error: https://gyazo.com/2c906cbd7f598ebeae119491239c539f (this was tested by adding in messages in the code eg; #MESSAGE "Debug"). After reverting to version 1.3.2 the command worked perfectly again. Here's the code:
(All variables are named above, I just pasted in the main bit around where the error seemed to come from)

AllowPurchase = "no"
splitprefix = mergeArguments(args).split(" ")
number = 1
WHILE number < 17
IF splitprefix[0] == validcolours[number]
AllowPurchase = "yes"
number = 17
ELSE
number = number + 1
ENDIF

**ENDWHILE**

IF splitprefix.length > 1

Playing Sound to a Players Killer on PlayerDeathEvent

Thanks for your reply on your bukkit page. I'm actually having an issue playing a sound to the killer of a player on a player death event. Im having killstreaks as you saw in our private messages on bukkit, and im trying to add sounds upon the killstreak being acquired.Β 
I was using
dead = event.getEntity()
killer = dead.getKiller()
#SOUND killer.getLocation() "ENTITY_BLAZE_DEATH" 5.0 1.0
I can understand why it wont work. It requires a player location not an entity location and the cause of a player death could be from an entity. Im just wondering how you would make this work. Thank you!

Sending Respawn Packet On Sync PlayerDeath

Hi im thinking of trying to send a respawn packet on the player death event. I want to do this synchronously,but i already have a playerdeathevent trigger that is async and i want to keep it out of the server thread. Is there a way to have an async event trigger so it doesnt stress the server, and a sync trigger of the same event that executes just a small snippet of code such as sending a respawn packet? Idk the possible ramifications of doing it this way but im just curious.

Executor works with run but not in a Named trigger.

I'm having a really weird problem. If I write /trg run #WORLD:LEVEROFF -14341,82,-1716 everything works fine. If I execute the exact same command but in a named trigger I get an error like if the location wasn't the same, and there was no lever there (but you can see in the error the numbers are the same).

Named Trigger:

#WORLD:LEVEROFF -14341,82,-1716
#WORLD:ITEMFRAMEROTATE "FLIPPED" -14343,82,-1716
#WORLD:ITEMFRAMEROTATE "CLOCKWISE_135" -14339,82,-1716
#WORLD:ITEMFRAMEROTATE "CLOCKWISE_135" -14337,82,-1717
#WORLD:ITEMFRAMEROTATE "CLOCKWISE_135" -14337,82,-1723
#MESSAGE Sala 01 Reiniciada

Error:

... 17 more
io.github.wysohn.triggerreactor.core.script.interpreter.InterpreterException: Error occured while processing Node [type: COMMAND, value: 'WORLD:LEVEROFF'] {([type: INTEGER, value: '-14341']) ([type: INTEGER, value: '82']) ([type: INTEGER, value: '-1716']) }
at io.github.wysohn.triggerreactor.core.script.interpreter.Interpreter.interpret(Interpreter.java:597)
at io.github.wysohn.triggerreactor.core.script.interpreter.Interpreter.start(Interpreter.java:266)
at io.github.wysohn.triggerreactor.core.script.interpreter.Interpreter.startWithContextAndInterrupter(Interpreter.java:140)
at io.github.wysohn.triggerreactor.core.manager.trigger.AbstractTriggerManager$Trigger.start(AbstractTriggerManager.java:185)
at io.github.wysohn.triggerreactor.core.manager.trigger.AbstractTriggerManager$Trigger.startInterpretation(AbstractTriggerManager.java:165)
at io.github.wysohn.triggerreactor.core.manager.trigger.AbstractTriggerManager$Trigger.activate(AbstractTriggerManager.java:115)
at io.github.wysohn.triggerreactor.bukkit.main.JavaPluginBridge$1.onCommand(JavaPluginBridge.java:256)
at io.github.wysohn.triggerreactor.core.script.interpreter.Interpreter.interpret(Interpreter.java:320)
at io.github.wysohn.triggerreactor.core.script.interpreter.Interpreter.start(Interpreter.java:266)
at io.github.wysohn.triggerreactor.core.script.interpreter.Interpreter.startWithContextAndInterrupter(Interpreter.java:140)
at io.github.wysohn.triggerreactor.core.manager.trigger.AbstractTriggerManager$Trigger.start(AbstractTriggerManager.java:185)
at io.github.wysohn.triggerreactor.core.manager.trigger.AbstractTriggerManager$Trigger$1.run(AbstractTriggerManager.java:170)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.Exception: #LEVEROFF encountered error.
at io.github.wysohn.triggerreactor.bukkit.manager.ExecutorManager$JSExecutor.execute(ExecutorManager.java:297)
at io.github.wysohn.triggerreactor.core.script.interpreter.Interpreter.interpret(Interpreter.java:326)
... 12 more
Caused by: javax.script.ScriptException: Error: Invalid lever. That block is not a valid lever! in at line number 38 at column number 3
at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470)
at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:392)
at jdk.nashorn.api.scripting.NashornScriptEngine.invokeFunction(NashornScriptEngine.java:190)
at io.github.wysohn.triggerreactor.bukkit.manager.ExecutorManager$JSExecutor$1.call(ExecutorManager.java:286)
at io.github.wysohn.triggerreactor.bukkit.manager.ExecutorManager$JSExecutor$1.call(ExecutorManager.java:273)
at io.github.wysohn.triggerreactor.bukkit.manager.ExecutorManager$JSExecutor.execute(ExecutorManager.java:294)
... 13 more
Caused by: :38:3 Error: Invalid lever. That block is not a valid lever!
at jdk.nashorn.internal.objects.NativeError.initException(NativeError.java:137)
at jdk.nashorn.internal.objects.NativeError.(NativeError.java:102)
at jdk.nashorn.internal.objects.NativeError.(NativeError.java:106)
at jdk.nashorn.internal.objects.NativeError.(NativeError.java:110)
at jdk.nashorn.internal.objects.NativeError.constructor(NativeError.java:129)
at jdk.nashorn.internal.scripts.Script$Recompilation$183$914A$\^eval\_.LEVEROFF(:38)
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:639)
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494)
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)
at jdk.nashorn.api.scripting.ScriptObjectMirror.callMember(ScriptObjectMirror.java:199)
at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:386)
... 17 more

Using build 156.
Thank you.

Edit:
Tryied build 166 and getting an internal error every time I try to run any named or temporal triggers.

org.bukkit.command.CommandException: Unhandled exception executing command 'trg' in plugin TriggerReactor v1.1.3
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[patched_1.12.jar:git-Paper-1133]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:151) ~[patched_1.12.jar:git-Paper-1133]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:669) ~[patched_1.12.jar:git-Paper-1133]
at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1424) ~[patched_1.12.jar:git-Paper-1133]
at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1229) ~[patched_1.12.jar:git-Paper-1133]
at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) ~[patched_1.12.jar:git-Paper-1133]
at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.12.jar:git-Paper-1133]
at net.minecraft.server.v1_12_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:14) ~[patched_1.12.jar:git-Paper-1133]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_131]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_131]
at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [patched_1.12.jar:git-Paper-1133]
at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:842) [patched_1.12.jar:git-Paper-1133]
at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:423) [patched_1.12.jar:git-Paper-1133]
at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:766) [patched_1.12.jar:git-Paper-1133]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:664) [patched_1.12.jar:git-Paper-1133]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Caused by: java.lang.NullPointerException
at io.github.wysohn.triggerreactor.tools.ReflectionUtil.extractVariablesWithEnumAsString(ReflectionUtil.java:183) ~[TriggerReactor.jar:?]
at io.github.wysohn.triggerreactor.core.manager.trigger.AbstractTriggerManager$Trigger.activate(AbstractTriggerManager.java:138) ~[TriggerReactor.jar:?]
at io.github.wysohn.triggerreactor.core.main.TriggerReactor.onCommand(TriggerReactor.java:310) ~[TriggerReactor.jar:?]
at io.github.wysohn.triggerreactor.bukkit.main.TriggerReactor.onCommand(TriggerReactor.java:71) ~[TriggerReactor.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[patched_1.12.jar:git-Paper-1133]
... 15 more

Replacement of <cmdarg> in VT?

In VT(VariableTriggers), there is a placeholder called .
I wanted to ask if there is a placeholder in Trigger Reactor that can replace this.
cmdarg is a placeholder that can detect the second arg of the command...
such as if I do the command "/event" then I will say [IF the cmdarg:1 is null, then]
which is in the statement [@if cmdarg:1 = null]

so.
If you still dont get it...
It is simply the second part of the command.
It detects after the main command;
/event go < it detects this.

So, here is an example.
I will type the command "/event"
Then it will show &aHi!
I will type the command "/event go"
Then it will warp me to "event"

So, simply in conclusion, I want to ask if there is a way to detect
"/event go" or the line after the main command. such as "/event help"
So it can give diffrent outputs.

New Executors and Placeholders

Executors suggestions:

#LIGHTNING <world> <x> <y> <z> - Strikes lightning at location
#EXPLOSION <world> <x> <y> <z> [power] [fire] - Creates explosion at location
#TIME <world> <milliseconds>- Set the time
#WEATHER <world> <boolean>- Set the weather
#CLEARENTITY - <radius> Clear entities from a specified radius

#FIREWORK - Shoots firework at location
#PARTICLE - Creates particle effect at location

Player Modifier Executers:

#MODIFYPLAYER <type> <value>
HEALTH
FOOD
SATURATION
EXP
WALKSPEED
FLYSPEED
FLY
GAMEMODE
MAXHEALTH

#POTION <PotionEffectType> <tick> [level] - Gives player a potion effect
#KILL - Kills the player
#CLEARCHAT - Clears chat
#PERMISSION <permission>- Gives or takes permission
#MONEY <number> - Gives or takes money
#VELOCITY - Set current player's speed to provided x,y,z vector
#MODIFYHELDITEM "TITLE" <new title>
#MODIFYHELDITEM "LORE" "ADD" <line> [index] - insert <line> at the [index] or at the last if [index] is not set
#MODIFYHELDITEM "LORE" "SET" <line> - set <line> at the . If index is not within the range, the lines will be filled up with empty string until the index.
#MODIFYHELDITEM "LORE" "REMOVE" <index> - delete line at .

#SCOREBOARD - Sets scoreboard

Placeholders

Player:
$haseffect:<effect>
$explevel
$maxhealth
$ip
$isburning
$isflying
$handitemlore:

$hidden
$is_blocking
$empty_slots
$has_item:
$height
$has_achievement:
$armor
$armor_rating
$helmet
$body
$leggings
$boots
$offhand

Server:
$tps
$time
$onlineplayers

$server_uptime
$server_ping
$scoreboard:
$pvp

Vault:
$money
$group

Special:
$random:<max>
$random:<min>:<max>

Feature suggetions:

  • ELSEIF
  • MySQL support (for global variables)

Add command to run Executors

Kind of like a test command, so we don't have to delete and create a command trigger every time we test the same executor with different parameters.

Command idea: /trg execute[exec] #EXECUTOR
Example: /trg exec #MESSAGE "Hi"

new array style

messages = [
0=> "msg1",
1=>"msg2",
2=>"msg3",
3=>"msg4",
4=>"msg5"
]

messages = ["msg1","msg2","msg3","msg4","msg5"]

Return data from Executor

Ho I can return some data from Executor back to my script?

For example:
I have Executor
function TEST(args){
var myvar = "Output";
return myvar;
}

And when a call it by #TEST from my script how I can take myvar value?

bug with AreaTrigger

Hey wysohn its me again...I was keep changing the coding values (to add color to a message and etc)
suddenly the trigger stopped working in fact... the area I set up for my test moved away.
I tried to delete the area and set new area (on the same xyz coordinates I used) but it keeps doing it.

For example, X=100 but triggers on when X=120
After having this problem I've done everything like deleting the plugin and resetup, I even tried to change
the region on Areatrigger.yml but still.... is it because that I use the 1.12 version perhaps?
please tell me how to fix this... Thanks

Add array

Adding array seems quite fundamental to access a lot of things

Escape characters?

Hi. I am trying to use TriggerReactor in personal server right now
is there any escape letter for "?

I need to make the trigger that codes like

#CMDCON "title "+args[0]+" ["",{"text":""+args[1]+"","color":"gold"}]"

Can't use negative numbers as parameters.

When I try to use negative numbers the executor gets the wrong arguments. The plugins tryies to operate with those numbers before handling the arguments to the executor. In this particular case i want to sepecify negative coordinates as a location. See image. The last number is substracted to the second.

Image of error

Improve TriggerReactor

I propose to you a checklist on improving TriggerReactor

Next release:

  • Port all the features from VariableTriggers

Long run:

  • Port skript-like scripting system
  • Improve syntax by introducing new syntax and replacing the old one which is more skript/python3-like, that will make life easier.
  • Introduce the COMPAT version for old syntax
  • Make an optional script obfuscation feature so people won't steal scripts

not work

/trg custom onInteract test #MESSAGE +player.getName()
[19:29:52] [Server thread/WARN]: io.github.wysohn.triggerreactor.core.manager.trigger.AbstractTriggerManager$TriggerInitFailedException: Failed to initialize Trigger [CustomTrigger -- test]! [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.manager.trigger.AbstractTriggerManager$Trigger.init(AbstractTriggerManager.java:107) [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.manager.trigger.AbstractCustomTriggerManager$CustomTrigger.<init>(AbstractCustomTriggerManager.java:42) [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.manager.trigger.AbstractCustomTriggerManager.createCustomTrigger(AbstractCustomTriggerManager.java:130) [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.main.TriggerReactor.onCommand(TriggerReactor.java:745) [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.bukkit.main.TriggerReactor.onCommand(TriggerReactor.java:71) [19:29:52] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [19:29:52] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [19:29:52] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_10_R1.CraftServer.dispatchCommand(CraftServer.java:647) [19:29:52] [Server thread/WARN]: at net.minecraft.server.v1_10_R1.PlayerConnection.handleCommand(PlayerConnection.java:1358) [19:29:52] [Server thread/WARN]: at net.minecraft.server.v1_10_R1.PlayerConnection.a(PlayerConnection.java:1193) [19:29:52] [Server thread/WARN]: at net.minecraft.server.v1_10_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [19:29:52] [Server thread/WARN]: at net.minecraft.server.v1_10_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [19:29:52] [Server thread/WARN]: at net.minecraft.server.v1_10_R1.PlayerConnectionUtils$1.run(SourceFile:13) [19:29:52] [Server thread/WARN]: at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [19:29:52] [Server thread/WARN]: at java.util.concurrent.FutureTask.run(Unknown Source) [19:29:52] [Server thread/WARN]: at net.minecraft.server.v1_10_R1.SystemUtils.a(SourceFile:45) [19:29:52] [Server thread/WARN]: at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:732) [19:29:52] [Server thread/WARN]: at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:400) [19:29:52] [Server thread/WARN]: at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:668) [19:29:52] [Server thread/WARN]: at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:567) [19:29:52] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source) [19:29:52] [Server thread/WARN]: Caused by: io.github.wysohn.triggerreactor.core.script.parser.ParserException: Unexpected token [type: OPERATOR_A, value: '+'] near row: 1, col:12 [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.script.parser.Parser.parseFactor(Parser.java:554) [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.script.parser.Parser.parseTerm(Parser.java:431) [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.script.parser.Parser.parseExpression(Parser.java:389) [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.script.parser.Parser.parseComparison(Parser.java:362) [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.script.parser.Parser.parseLogic(Parser.java:320) [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.script.parser.Parser.parseStatement(Parser.java:204) [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.script.parser.Parser.parse(Parser.java:61) [19:29:52] [Server thread/WARN]: at io.github.wysohn.triggerreactor.core.manager.trigger.AbstractTriggerManager$Trigger.init(AbstractTriggerManager.java:103) [19:29:52] [Server thread/WARN]: ... 20 more

ΒΏCan boolean variables be case insensitive?

I just made an executor for a lightning effect. The first parameter is a boolean (indicates if the lightning does actual damage or is only an effect). If i write true or false all lowercase it works fine, but if I don't the executor does not get the variable and gets a null argument instead. Thank you.

Trying to Make a Bossbar executor

Hi wysohn, so this just comes down to my inexperience of dealing with making executors. I've tried many things to make a bossbar executor and i have not gotten it to work at any avail. This is the code i have so far, the issue im having is retrieving the BarColor and BarStyle Types. This is just my last attempt at it. I'm essentially trying to make a bossbar that acts as a loading bar when your standing in an area. Kinda like a progress bar on capturing the area.
function BOSSBAR(args) { if (args.length == 1) { var BarColor = ('org.bukkit.boss.BarColor'); var BarStyle = ('org.bukkit.boss.BarStyle'); var title = args[0]; var bar = Bukkit.createBossBar(title,BarColor.valueOf(BLUE),BarStyle.valueOf(SOLID)); bar.setVisible(true); } }

Enhancement Request Scripting Inventory Trigger Icons

As the title says. I know your busy but i think this would be so cool. An example of this is, i could use your common function getPlayers() and loop through them to make icons for each player in an inventory.Then i could have it do something if i click on a particular player.

NamedTrigger sync/async

Hello, wyshon.

Congratulations on the progress you have been making with the plugin. πŸ˜„

I don't know if it's just me but I'm experiencing a behaviour oposite to the one described by the changelog in spigotmc.org. Using version 1.2.4.

From the changelog:

Now Named Trigger can be specified sync/async on run-time. #CALL "SomeNamedTrigger" true for sync, and #CALL "SomeNamedTrigger" false for async. Not providing second parameter will set it to be true(sync) by default.

I tryed executing a named trigger with no second parameter and the execution was asyc. I know that because i got a bunch of errors related to trying to edit the world asynchronously (Do you remember #14 ?). If i set the second parameter as true, same thing happens ( /trg run #CALL "namedTrigger" true ).

If I set the parameter as false ( /trg run #CALL "namedTrigger" false ), the named trigger executes sync and everything works fine. Just oposite to the changelog description.

Thank you πŸ‘‹

+ operation doesn't work for returned String

Assuming event.getMessage() and player.getName() both return String,

The following code is expected to work

#MESSAGE event.getName()+event.getMessage()

TriggerReactor currently treat it as numeric addition somehow

Add new function to create Enum value manually

even though most of the enum parameters can be automatically translated by TriggerReactor, some parameters like Generic Enum parameter cannot simply do that (The method signature is simply Object in that case). New function to create Enum value will be handy.

#39

[Question] About getting players based on permission

I've been looking for a method to create a script which sends a message to all players who have a certain permission, much like how the https://github.com/wysohn/TriggerReactor_Examples/blob/master/CommandTrigger/sayall
example works, except only certain players are sent the message.
I've tried something like;
FOR p = getPlayers(player.hasPermission("permission")
So only people with "permission" will receive the message.
If there is a way of doing this please do tell me, it'd be much appreciated, many thanks.

changing letter in later release?

This can be a very harsh chellenge but can you change the letter "#" into another letter since # is for a commenting in the yml language.

(Sorry about my poor english)

[Suggestion] Indentation in in-game editor

It's a silly suggestion. Could you add a 0 or a blank space in front of the first 9 line numbers of the in-game editor, so when the 2 digit starts the indentation isn't shifted to the right?
See image for easy understanding.

In-game editor

Thank you πŸ˜…

New command

I have a few suggestions to allow for better support with third party plugins.

I am trying to use BetonQuest to access Trigger Reactors executers, but I coming up into some problems.
I see you have a run command, but when I try to use it by calling it using BetonQuest it just gives an error.
I can't select who the executer should target since I am calling it from console
I can't run entire blocks of code.
I suggest modifying the run command like this and have the ability to call it from console: /trg run .
Example: /trg run MidnightSugar #MESSAGE "Hello"

Then adding a separate command that can run entire blocks of code: /trg execute
Example: /trg execute MidnightSugar Named TestMessage


https://www.spigotmc.org/threads/triggerreactor-script-for-everything.241146/page-3#post-2786279

Remove the need of quotes for single string arguments

All of the arguments that are strings need to be written between quotes for the plugin to recognize them as such and pass them correctly to the corresponding executor.

This method is very handy for multiple word strings. Ex.:
#MESSAGE "This is an example"

But it would be nice if you could ommit them in single word strings. Ex.:

Now:
#ITEMFRAMEROTATE "CLOCKWISE" 215 71 261
Suggestion:
#ITEMFRAMEROTATE CLOCKWISE 215 71 261

In general, for every one word string that represents an enum item. Thank you.

new for loop

FOR msg IN messages
print msg
ENDFOR

Though, let old style to be working together with it

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.