Skip to content

Commit

Permalink
Scripts library (#43)
Browse files Browse the repository at this point in the history
* Catching errors in /scriptit command

* Added script builder to scripts library
  • Loading branch information
Gorlem committed Apr 16, 2020
1 parent 1c95a45 commit 430db8f
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 10 deletions.
30 changes: 20 additions & 10 deletions src/main/java/com/ddoerr/scriptit/commands/ScriptItCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.mojang.brigadier.CommandDispatcher;
import io.github.cottonmc.clientcommands.ClientCommandPlugin;
import io.github.cottonmc.clientcommands.CottonClientCommandSource;
import net.minecraft.client.MinecraftClient;
import net.minecraft.server.command.CommandSource;
import net.minecraft.text.LiteralText;

Expand Down Expand Up @@ -65,21 +66,30 @@ private int execute(CottonClientCommandSource ctx, String language, String lifeC
if (script.startsWith("\"") && script.endsWith("\"")) {
script = script.substring(1, script.length() - 1);
}
new ScriptBuilder()
.language(language)
.fromString(script)
.lifeCycle(LifeCycle.valueOf(lifeCycle))
.run();
try {
new ScriptBuilder()
.language(language)
.fromString(script)
.lifeCycle(LifeCycle.valueOf(lifeCycle))
.run();
} catch (Exception e) {
MinecraftClient.getInstance().inGameHud.getChatHud().addMessage(new LiteralText(e.getMessage()));
e.printStackTrace();
}

return 1;
}

private int execute(CottonClientCommandSource ctx, String file) {
new ScriptBuilder()
.fromFile(file)
.lifeCycle(LifeCycle.Threaded)
.run();

try {
new ScriptBuilder()
.fromFile(file)
.lifeCycle(LifeCycle.Threaded)
.run();
} catch (Exception e) {
MinecraftClient.getInstance().inGameHud.getChatHud().addMessage(new LiteralText(e.getMessage()));
e.printStackTrace();
}
return 1;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.ddoerr.scriptit.api.annotations.Callable;
import com.ddoerr.scriptit.api.libraries.AnnotationBasedModel;
import com.ddoerr.scriptit.api.scripts.ThreadLifetimeManager;
import com.ddoerr.scriptit.libraries.types.ScriptBuilderModel;

public class ScriptsLibrary extends AnnotationBasedModel {
ThreadLifetimeManager lifetimeManager;
Expand All @@ -15,4 +16,9 @@ public ScriptsLibrary(ThreadLifetimeManager lifetimeManager) {
public int stopAll() {
return lifetimeManager.stopAll();
}

@Callable
public ScriptBuilderModel create() {
return new ScriptBuilderModel();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package com.ddoerr.scriptit.libraries.types;

import com.ddoerr.scriptit.api.annotations.Callable;
import com.ddoerr.scriptit.api.libraries.AnnotationBasedModel;
import com.ddoerr.scriptit.api.scripts.LifeCycle;
import com.ddoerr.scriptit.api.scripts.ScriptBuilder;

public class ScriptBuilderModel extends AnnotationBasedModel {
private ScriptBuilder scriptBuilder = new ScriptBuilder();

public ScriptBuilderModel() {
scriptBuilder.lifeCycle(LifeCycle.Threaded);
}

@Callable
public ScriptBuilderModel language(String language) {
scriptBuilder.language(language);
return this;
}

@Callable
public ScriptBuilderModel script(String content) {
scriptBuilder.fromString(content);
return this;
}

@Callable
public ScriptBuilderModel file(String path) {
scriptBuilder.fromFile(path);
return this;
}

@Callable
public ScriptBuilderModel instant() {
scriptBuilder.lifeCycle(LifeCycle.Instant);
return this;
}

@Callable
public String run() {
return scriptBuilder.run();
}
}

0 comments on commit 430db8f

Please sign in to comment.