TableCommands.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package me.km.snuviscript.commands;
  2. import me.hammerle.snuviscript.code.ScriptManager;
  3. import me.km.utils.Table;
  4. public class TableCommands {
  5. public static void registerFunctions(ScriptManager sm) {
  6. sm.registerFunction("table.new", (sc, in) -> {
  7. int[] widths = new int[in.length - 1];
  8. for(int i = 0; i < widths.length; i++) {
  9. widths[i] = in[i + 1].getInt(sc);
  10. }
  11. return new Table(in[0].getString(sc), widths);
  12. });
  13. sm.registerFunction("table.getstart", (sc, in) -> {
  14. return ((Table) in[0].get(sc)).getStart();
  15. });
  16. sm.registerFunction("table.getmiddle", (sc, in) -> {
  17. return ((Table) in[0].get(sc)).getMiddle();
  18. });
  19. sm.registerFunction("table.getend", (sc, in) -> {
  20. return ((Table) in[0].get(sc)).getEnd();
  21. });
  22. sm.registerFunction("table.get", (sc, in) -> {
  23. String[] columns = new String[in.length - 1];
  24. for(int i = 0; i < columns.length; i++) {
  25. columns[i] = in[i + 1].getString(sc);
  26. }
  27. return ((Table) in[0].get(sc)).get(columns);
  28. });
  29. sm.registerConsumer("table.setsize", (sc, in) -> {
  30. Table.addSizeMapping(in[0].getString(sc).charAt(0), in[1].getInt(sc));
  31. });
  32. }
  33. }