From f7481bfa0f0f726f20c1bfdffab1a9ecdb37105e Mon Sep 17 00:00:00 2001 From: yoyosource Date: Thu, 7 Mar 2024 15:40:52 +0100 Subject: [PATCH] Add server.onlinePlayerCount to Script System --- .../features/script/lua/libs/ServerLib.java | 2 ++ SCRIPT.md | 13 +++++++------ sw.def.lua | 3 +++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/lua/libs/ServerLib.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/lua/libs/ServerLib.java index 02ccd975..5aa0b5c0 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/lua/libs/ServerLib.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/lua/libs/ServerLib.java @@ -24,6 +24,7 @@ import de.steamwar.bausystem.Permission; import de.steamwar.bausystem.features.tpslimit.TPSUtils; import de.steamwar.inventory.SWItem; import de.steamwar.linkage.Linked; +import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.luaj.vm2.LuaString; @@ -46,6 +47,7 @@ public class ServerLib implements LuaLib { public LuaTable get(Player player) { LuaTable serverLib = LuaValue.tableOf(); serverLib.set("time", getter(() -> new SimpleDateFormat(BauSystem.MESSAGE.parse("TIME", player)).format(Calendar.getInstance().getTime()))); + serverLib.set("onlinePlayerCount", getter(Bukkit.getOnlinePlayers()::size)); serverLib.set("ticks", getter(TPSUtils.currentTick)); serverLib.set("getBlockAt", new OneArgFunction() { @Override diff --git a/SCRIPT.md b/SCRIPT.md index a4f742d8..8bcd9dd6 100644 --- a/SCRIPT.md +++ b/SCRIPT.md @@ -168,12 +168,13 @@ Es gibt folgende Funktionen: Das `server`-Modul stellt Funktionen zur Verfügung, die den Server betreffen. Es gibt folgende Funktionen: -| Name | Signature | Beschreibung | -|--------------|-------------------------|---------------------------------------------------------------------| -| `time` | time(): String | Gibt die aktuelle Zeit im Format `HH:mm:ss` zurück | -| `ticks` | ticks(): Number | Gibt die Ticks seit start des Serverstarts zurück | -| `getBlockAt` | getBlockAt(Pos): String | Gibt das Material an der Position zurück | -| `setBlockAt` | setBlockAt(Pos, String) | Setzt das Material an der angegebenen Stelle (z.B. Stein = `STONE`) | +| Name | Signature | Beschreibung | +|---------------------|------------------------------|---------------------------------------------------------------------| +| `time` | time(): String | Gibt die aktuelle Zeit im Format `HH:mm:ss` zurück | +| `ticks` | ticks(): Number | Gibt die Ticks seit start des Serverstarts zurück | +| `onlinePlayerCount` | onlinePlayerCount(): Number | Gibt die Anzal der Spieler auf dem Server zurück | +| `getBlockAt` | getBlockAt(Pos): String | Gibt das Material an der Position zurück | +| `setBlockAt` | setBlockAt(Pos, String) | Setzt das Material an der angegebenen Stelle (z.B. Stein = `STONE`) | Es gibt folgende weitere Module: diff --git a/sw.def.lua b/sw.def.lua index d3128595..978d7050 100644 --- a/sw.def.lua +++ b/sw.def.lua @@ -263,6 +263,9 @@ function server.time() return nil end ---@return number function server.ticks() return nil end +---@return number +function server.onlinePlayerCount() return nil end + ---@param position Position ---@return string function getBlockAt(position) return nil end