+ Added lua user and stats

This commit is contained in:
Matthew Cech
2019-04-21 01:29:23 -07:00
parent 6d1b4aa9f3
commit b01b4be00f
6 changed files with 52 additions and 22 deletions
+3 -2
View File
@@ -8,6 +8,7 @@ import java.util.stream.Stream;
import org.luaj.vm2.Globals;
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.lib.jse.CoerceJavaToLua;
import org.luaj.vm2.lib.jse.JsePlatform;
// To promote flexibility, plugins are lua file with predefined callbacks.
@@ -47,11 +48,11 @@ public class Plugin
}
}
public String Run(String args)
public String Run(String args, PluginUser user)
{
try
{
LuaValue res = func_plugin.call(LuaValue.valueOf(args));
LuaValue res = func_plugin.call(LuaValue.valueOf(args), user.AsLua());
if(!res.isnil())
return res.toString();
+4 -2
View File
@@ -6,6 +6,8 @@ import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.stream.Stream;
import dataStructures.KittyUser;
// Reads in, handles, and manipulates plugins. Plugins are loaded in the order they appear in the folder.
public class PluginManager
{
@@ -37,12 +39,12 @@ public class PluginManager
// Runs all plugins, returning when it gets a non-nill result.
// Otherwise, returns null.
public String RunAll(String input)
public String RunAll(String input, KittyUser user)
{
for(int i = 0; i < plugins.size(); ++i)
{
Plugin plugin = plugins.get(i);
String out = plugin.Run(input);
String out = plugin.Run(input, new PluginUser(user));
if(out != null)
{
+12
View File
@@ -0,0 +1,12 @@
package core.lua;
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.lib.jse.CoerceJavaToLua;
public class PluginStructure
{
public LuaValue AsLua()
{
return CoerceJavaToLua.coerce(this);
}
}
+13
View File
@@ -0,0 +1,13 @@
package core.lua;
import dataStructures.KittyUser;
public class PluginUser extends PluginStructure
{
public String name;
public PluginUser(KittyUser user)
{
this.name = user.name;
}
}