mirror of
https://github.com/PlaceholderAPI/Javascript-Expansion.git
synced 2025-05-24 20:02:44 +00:00
Offline player supporrt
This commit is contained in:
parent
28d35230bc
commit
c7d421a9a4
8
pom.xml
8
pom.xml
@ -2,7 +2,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.extendedclip.papi.expansion.javascript</groupId>
|
<groupId>com.extendedclip.papi.expansion.javascript</groupId>
|
||||||
<artifactId>javascript-expansion</artifactId>
|
<artifactId>javascript-expansion</artifactId>
|
||||||
<version>1.4.2</version>
|
<version>1.5.0</version>
|
||||||
<name>PAPI-Expansion-Javascript</name>
|
<name>PAPI-Expansion-Javascript</name>
|
||||||
<description>PlaceholderAPI expansion for javascript placeholders</description>
|
<description>PlaceholderAPI expansion for javascript placeholders</description>
|
||||||
|
|
||||||
@ -13,7 +13,7 @@
|
|||||||
</repository>
|
</repository>
|
||||||
<repository>
|
<repository>
|
||||||
<id>placeholderapi</id>
|
<id>placeholderapi</id>
|
||||||
<url>http://repo.extendedclip.com/content/repositories/placeholderapi/</url>
|
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
@ -21,13 +21,13 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.12.2-R0.1-SNAPSHOT</version>
|
<version>1.14.1-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>me.clip</groupId>
|
<groupId>me.clip</groupId>
|
||||||
<artifactId>placeholderapi</artifactId>
|
<artifactId>placeholderapi</artifactId>
|
||||||
<version>LATEST</version>
|
<version>2.10.2</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -28,13 +28,15 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.script.ScriptEngine;
|
import javax.script.ScriptEngine;
|
||||||
|
import javax.script.ScriptEngineFactory;
|
||||||
import javax.script.ScriptEngineManager;
|
import javax.script.ScriptEngineManager;
|
||||||
|
|
||||||
import me.clip.placeholderapi.expansion.Cacheable;
|
import me.clip.placeholderapi.expansion.Cacheable;
|
||||||
import me.clip.placeholderapi.expansion.Configurable;
|
import me.clip.placeholderapi.expansion.Configurable;
|
||||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
import me.clip.placeholderapi.util.Msg;
|
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@ -56,6 +58,8 @@ public class JavascriptExpansion extends PlaceholderExpansion implements Cacheab
|
|||||||
instance = this;
|
instance = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean debug = false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* I am just testing the waters here because there is no command system for expansions...
|
* I am just testing the waters here because there is no command system for expansions...
|
||||||
*/
|
*/
|
||||||
@ -78,32 +82,36 @@ public class JavascriptExpansion extends PlaceholderExpansion implements Cacheab
|
|||||||
|
|
||||||
// default command
|
// default command
|
||||||
if (!msg.contains(" ")) {
|
if (!msg.contains(" ")) {
|
||||||
Msg.msg(p, "&7Javascript expansion v: &f" + getVersion());
|
msg(p, "&7Javascript expansion v: &f" + getVersion());
|
||||||
Msg.msg(p, "&7Created by: &f" + getAuthor());
|
msg(p, "&7Created by: &f" + getAuthor());
|
||||||
Msg.msg(p, "&fWiki: &ahttps://github.com/PlaceholderAPI-Expansions/Javascript-Expansion/wiki");
|
msg(p, "&fWiki: &ahttps://github.com/PlaceholderAPI-Expansions/Javascript-Expansion/wiki");
|
||||||
Msg.msg(p, "&r");
|
msg(p, "&r");
|
||||||
Msg.msg(p, "&7/papijsp reload &7- &fReload your javascripts without reloading PlaceholderAPI");
|
msg(p, "&7/papijsp reload &7- &fReload your javascripts without reloading PlaceholderAPI");
|
||||||
Msg.msg(p, "&7/papijsp list &7- &fList loaded script identifiers.");
|
msg(p, "&7/papijsp list &7- &fList loaded script identifiers.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg.equals("/papijsp reload")) {
|
if (msg.equals("/papijsp reload")) {
|
||||||
Msg.msg(p, "&aReloading...");
|
msg(p, "&aReloading...");
|
||||||
int l = this.reloadScripts();
|
int l = this.reloadScripts();
|
||||||
Msg.msg(p, l + " &7script" + (l == 1 ? "" : "s")+ " loaded");
|
msg(p, l + " &7script" + (l == 1 ? "" : "s")+ " loaded");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg.equals("/papijsp list")) {
|
if (msg.equals("/papijsp list")) {
|
||||||
List<String> loaded = this.getLoadedIdentifiers();
|
List<String> loaded = this.getLoadedIdentifiers();
|
||||||
Msg.msg(p, loaded.size() + " &7script" + (loaded.size() == 1 ? "" : "s")+ " loaded");
|
msg(p, loaded.size() + " &7script" + (loaded.size() == 1 ? "" : "s")+ " loaded");
|
||||||
Msg.msg(p, String.join(", ", loaded));
|
msg(p, String.join(", ", loaded));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
event.getPlayer().sendMessage("&cIncorrect usage &7- &f/papijsp");
|
event.getPlayer().sendMessage("&cIncorrect usage &7- &f/papijsp");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void msg(Player p, String text) {
|
||||||
|
p.sendMessage(ChatColor.translateAlternateColorCodes('&', text));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAuthor() {
|
public String getAuthor() {
|
||||||
return "clip";
|
return "clip";
|
||||||
@ -128,15 +136,31 @@ public class JavascriptExpansion extends PlaceholderExpansion implements Cacheab
|
|||||||
public boolean register() {
|
public boolean register() {
|
||||||
if (globalEngine == null) {
|
if (globalEngine == null) {
|
||||||
try {
|
try {
|
||||||
globalEngine = new ScriptEngineManager().getEngineByName(getString("engine", "javascript"));
|
globalEngine = new ScriptEngineManager().getEngineByName(getString("engine", "nashorn"));
|
||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
getPlaceholderAPI().getLogger().warning("Javascript engine type was invalid! Defaulting to 'javascript'");
|
getPlaceholderAPI().getLogger().warning("Javascript engine type was invalid! Defaulting to 'nashorn'");
|
||||||
globalEngine = new ScriptEngineManager().getEngineByName("javascript");
|
globalEngine = new ScriptEngineManager().getEngineByName("nashorn");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
debug = (boolean) get("debug", false);
|
||||||
config = new JavascriptPlaceholdersConfig(this);
|
config = new JavascriptPlaceholdersConfig(this);
|
||||||
config.loadPlaceholders();
|
config.loadPlaceholders();
|
||||||
|
if (debug) {
|
||||||
|
System.out.println("Java version: " + System.getProperty("java.version"));
|
||||||
|
|
||||||
|
ScriptEngineManager manager = new ScriptEngineManager();
|
||||||
|
List<ScriptEngineFactory> factories = manager.getEngineFactories();
|
||||||
|
System.out.println("displaying all script engine factories:");
|
||||||
|
for (ScriptEngineFactory factory : factories) {
|
||||||
|
System.out.println("Engine name: " + factory.getEngineName());
|
||||||
|
System.out.println("version: " + factory.getEngineVersion());
|
||||||
|
System.out.println("lang name: " + factory.getLanguageName());
|
||||||
|
System.out.println("lang version: " + factory.getLanguageVersion());
|
||||||
|
System.out.println("extensions: " + factory.getExtensions());
|
||||||
|
System.out.println("mime types: " + factory.getMimeTypes());
|
||||||
|
System.out.println("names: " + factory.getNames());
|
||||||
|
}
|
||||||
|
}
|
||||||
return super.register();
|
return super.register();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,7 +176,7 @@ public class JavascriptExpansion extends PlaceholderExpansion implements Cacheab
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String onPlaceholderRequest(Player p, String identifier) {
|
public String onRequest( OfflinePlayer p, String identifier) {
|
||||||
if (p == null) {
|
if (p == null) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
@ -218,6 +242,7 @@ public class JavascriptExpansion extends PlaceholderExpansion implements Cacheab
|
|||||||
public Map<String, Object> getDefaults() {
|
public Map<String, Object> getDefaults() {
|
||||||
Map<String, Object> def = new HashMap<String, Object>();
|
Map<String, Object> def = new HashMap<String, Object>();
|
||||||
def.put("engine", "javascript");
|
def.put("engine", "javascript");
|
||||||
|
def.put("debug", false);
|
||||||
return def;
|
return def;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,32 +23,24 @@ package com.extendedclip.papi.expansion.javascript;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.script.ScriptEngine;
|
import javax.script.ScriptEngine;
|
||||||
import javax.script.ScriptException;
|
import javax.script.ScriptException;
|
||||||
|
import me.clip.placeholderapi.PlaceholderAPI;
|
||||||
|
import me.clip.placeholderapi.PlaceholderAPIPlugin;
|
||||||
import org.apache.commons.lang.Validate;
|
import org.apache.commons.lang.Validate;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.configuration.InvalidConfigurationException;
|
import org.bukkit.configuration.InvalidConfigurationException;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import me.clip.placeholderapi.PlaceholderAPI;
|
|
||||||
import me.clip.placeholderapi.PlaceholderAPIPlugin;
|
|
||||||
|
|
||||||
public class JavascriptPlaceholder {
|
public class JavascriptPlaceholder {
|
||||||
|
|
||||||
private ScriptEngine engine = null;
|
private ScriptEngine engine = null;
|
||||||
|
|
||||||
private String identifier;
|
private String identifier;
|
||||||
|
|
||||||
private String script;
|
private String script;
|
||||||
|
|
||||||
private ScriptData data = null;
|
private ScriptData data = null;
|
||||||
|
|
||||||
private File dataFile;
|
private File dataFile;
|
||||||
|
|
||||||
private FileConfiguration cfg;
|
private FileConfiguration cfg;
|
||||||
|
|
||||||
private final String FILEDIR = PlaceholderAPIPlugin.getInstance().getDataFolder() + File.separator + "javascripts"+ File.separator + "javascript_data";
|
private final String FILEDIR = PlaceholderAPIPlugin.getInstance().getDataFolder() + File.separator + "javascripts"+ File.separator + "javascript_data";
|
||||||
@ -85,7 +77,7 @@ public class JavascriptPlaceholder {
|
|||||||
return script;
|
return script;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String evaluate(Player p, String... args) {
|
public String evaluate(OfflinePlayer p, String... args) {
|
||||||
String exp = PlaceholderAPI.setPlaceholders(p, script);
|
String exp = PlaceholderAPI.setPlaceholders(p, script);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -112,10 +104,10 @@ public class JavascriptPlaceholder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
engine.put("args", c);
|
engine.put("args", c);
|
||||||
engine.put("BukkitPlayer", p);
|
engine.put("BukkitPlayer", p != null && p.isOnline() ? p.getPlayer() : null);
|
||||||
|
engine.put("OfflinePlayer", p);
|
||||||
Object result = engine.eval(exp);
|
Object result = engine.eval(exp);
|
||||||
return result != null ? PlaceholderAPI.setBracketPlaceholders(p, result.toString()) : "";
|
return result != null ? PlaceholderAPI.setBracketPlaceholders(p, result.toString()) : "";
|
||||||
|
|
||||||
} catch (ScriptException ex) {
|
} catch (ScriptException ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user