Files
LuaScript/src/main/java/org/openautonomousconnection/luascript/tables/ClipboardTable.java
2026-02-28 17:39:42 +01:00

43 lines
1.2 KiB
Java

package org.openautonomousconnection.luascript.tables;
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.lib.*;
import org.openautonomousconnection.luascript.hosts.ClipboardHost;
import org.openautonomousconnection.luascript.hosts.HostServices;
import org.openautonomousconnection.luascript.utils.ScriptTable;
/**
* Lua table: clipboard
*
* <p>Functions:</p>
* <ul>
* <li>clipboard.set(text)</li>
* <li>clipboard.get() -> text</li>
* </ul>
*/
public final class ClipboardTable extends ScriptTable {
public ClipboardTable() {
super("clipboard");
}
@Override
protected void define(HostServices services) {
ClipboardHost host = services.clipboard().orElseThrow(() -> new IllegalStateException("ClipboardHost not provided"));
table().set("set", new OneArgFunction() {
@Override
public LuaValue call(LuaValue text) {
host.setText(text.isnil() ? "" : text.tojstring());
return LuaValue.NIL;
}
});
table().set("get", new ZeroArgFunction() {
@Override
public LuaValue call() {
return LuaValue.valueOf(host.getText());
}
});
}
}