Skip to content

Commit 692194a

Browse files
committed
Support Sponge and Velocity servers.
Fixed some bugs.
1 parent 6182409 commit 692194a

24 files changed

+408
-297
lines changed

build.gradle

Lines changed: 59 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,69 +7,112 @@ buildscript {
77
classpath("com.github.jengelman.gradle.plugins:shadow:5.2.0")
88
}
99
}
10+
1011
plugins {
1112
id 'org.jetbrains.kotlin.jvm' version '1.4.10'
1213
id 'com.github.johnrengelman.shadow' version '5.2.0'
1314
}
1415

16+
apply plugin: 'maven'
17+
1518
group 'me.scoretwo'
16-
version '0.11'
19+
version '1.0.1-SNAPSHOT'
20+
description 'FastScript is a Spigot plugin, which can run JavaScript-based scripts more efficiently.'
1721

1822
defaultTasks 'clean', 'build', 'test', 'shadowJar'
1923

2024
repositories {
2125
jcenter()
2226
mavenCentral()
27+
maven {url 'https://jitpack.io'}
28+
maven {url 'http://repo.drnaylor.co.uk/artifactory/list/minecraft'}
29+
maven {url 'https://repo.velocitypowered.com/snapshots/'}
30+
maven {url 'https://raw.github.com/FabioZumbi12/UltimateChat/mvn-repo/'}
2331
maven {url 'https://repo.codemc.org/repository/maven-public'}
2432
maven {url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'}
2533
maven {url 'https://oss.sonatype.org/content/repositories/snapshots'}
2634
maven {url 'https://repo.md-5.net/repository/public'}
2735
maven {url 'https://repo.extendedclip.com/content/repositories/placeholderapi/'}
2836
maven {url 'http://maven.aliyun.com/nexus/content/groups/public'}
37+
maven {url 'https://repo.spongepowered.org/maven'}
2938
}
3039

3140
dependencies {
32-
compile "org.bstats:bstats-bukkit:1.7"
33-
compile "commons-io:commons-io:2.7"
34-
compile "com.alibaba:fastjson:1.2.9"
35-
compile "org.jetbrains.kotlin:kotlin-stdlib"
36-
compile "com.andreapivetta.kolor:kolor:1.0.0"
37-
implementation "org.yaml:snakeyaml:1.27"
38-
implementation "org.apache.commons:commons-lang3:3.10"
39-
implementation "org.spigotmc:spigot-api:1.16.3-R0.1-SNAPSHOT"
40-
implementation "net.md-5:bungeecord-api:1.16-R0.3"
41-
implementation "me.clip:placeholderapi:2.10.9"
41+
// Other
42+
compile 'commons-io:commons-io:2.7'
43+
compile 'org.jetbrains.kotlin:kotlin-stdlib'
44+
implementation 'org.yaml:snakeyaml:1.27'
45+
implementation 'org.apache.commons:commons-lang3:3.10'
4246
implementation fileTree(dir: 'libs', includes: ['*.jar'])
47+
48+
// Sponge
49+
implementation 'org.spongepowered:spongeapi:7.2.0'
50+
implementation 'com.github.rojo8399:PlaceholderAPI:master-SNAPSHOT'
51+
52+
// Bukkit
53+
implementation 'org.spigotmc:spigot-api:1.16.3-R0.1-SNAPSHOT'
54+
implementation 'me.clip:placeholderapi:2.10.9'
55+
compile 'org.bstats:bstats-bukkit:1.7'
56+
57+
// Bungee
58+
implementation 'net.md-5:bungeecord-api:1.16-R0.3'
59+
60+
// Velocity
61+
implementation 'com.velocitypowered:velocity-api:1.0.11-SNAPSHOT'
4362
}
4463

4564
shadowJar {
4665
dependencies {
4766
include(dependency('org.bstats:bstats-bukkit:1.7'))
4867
include(dependency('commons-io:commons-io:2.7'))
49-
include(dependency('com.alibaba:fastjson:1.2.9'))
5068
include(dependency('org.jetbrains.kotlin:kotlin-stdlib'))
5169
include(dependency(fileTree(dir: 'libs', includes: ['*.jar'])))
5270
}
53-
relocate("org.bstats", "me.scoretwo.fastscript.libs.bstats")
54-
relocate("org.apache", "me.scoretwo.fastscript.libs.apache")
71+
relocate("org.bstats", "me.scoretwo.utils.bstats")
72+
relocate("org.apache.commons.io", "me.scoretwo.utils.apache.commons.io")
5573
archiveFileName = "${project.name}-${project.version}.jar"
5674
}
5775

76+
artifacts {
77+
archives shadowJar
78+
}
79+
5880
processResources {
5981
from(sourceSets.main.resources.srcDirs) {
6082
include 'plugin.yml'
6183
expand(
6284
'name': project.name,
63-
'main': project.group + "." + project.name.toLowerCase() + ".bukkit.BukkitSection",
85+
'main': project.group + "." + project.name.toLowerCase() + ".bukkit.BukkitPlugin",
6486
'version': project.version,
87+
'description': project.description,
6588
)
6689
}
6790
from(sourceSets.main.resources.srcDirs) {
6891
include 'bungee.yml'
6992
expand(
7093
'name': project.name,
71-
'main': project.group + "." + project.name.toLowerCase() + ".bungee.BungeeSection",
94+
'main': project.group + "." + project.name.toLowerCase() + ".bungee.BungeePlugin",
95+
'version': project.version,
96+
'description': project.description,
97+
)
98+
}
99+
from(sourceSets.main.resources.srcDirs) {
100+
include 'mcmod.info'
101+
expand(
102+
'modid': "fastscript",
103+
'name': project.name,
104+
'version': project.version,
105+
'description': project.description,
106+
)
107+
}
108+
from(sourceSets.main.resources.srcDirs) {
109+
include 'velocity-plugin.json'
110+
expand(
111+
'modid': "fastscript",
112+
'name': project.name,
113+
'main': project.group + "." + project.name.toLowerCase() + ".veloity.VeloityPlugin",
72114
'version': project.version,
115+
'description': project.description,
73116
)
74117
}
75118
}
67.5 KB
Binary file not shown.
32.4 KB
Binary file not shown.

src/main/kotlin/me/scoretwo/fastscript/FastScript.kt

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,39 @@ import me.scoretwo.fastscript.api.script.ScriptManager
55
import me.scoretwo.fastscript.commands.CommandManager
66
import me.scoretwo.fastscript.config.MessageConfig
77
import me.scoretwo.fastscript.config.SettingConfig
8+
import me.scoretwo.utils.configuration.patchs.getLowerCaseNode
89
import java.io.File
910

1011
class FastScript(main: FastScriptMain) {
1112

1213
private val main: FastScriptMain = main
1314

14-
val scriptManager = ScriptManager()
15-
val commandManager = CommandManager()
15+
val dataFolder: File
16+
val classLoader: ClassLoader
1617

17-
val dataFolder = main.getDataFolder()
18-
val classLoader = main.getPluginClassLoader()
18+
val scriptManager: ScriptManager
19+
val commandManager: CommandManager
1920

2021
fun hasPermission(sender: Any, string: String) = main.hasPermission(sender, string)
2122
fun setPlaceholder(player: Any, string: String) = main.setPlaceholder(player, string)
2223
fun sendMessage(sender: Any, string: String, colorIndex: Boolean) = main.sendMessage(sender, string, colorIndex)
2324
fun translateStringColors(string: String): String = main.translateStringColors(string)
2425

2526
init {
27+
instance = this
2628
CONSOLE = main.CONSOLE
2729
printLogo()
30+
31+
dataFolder = main.getDataFolder()
32+
classLoader = main.getPluginClassLoader()
33+
scriptManager = ScriptManager()
34+
commandManager = CommandManager()
35+
36+
if (!dataFolder.exists()) {
37+
dataFolder.mkdirs()
38+
}
39+
40+
SettingConfig.init()
2841
}
2942

3043
/**
@@ -36,6 +49,9 @@ class FastScript(main: FastScriptMain) {
3649
}
3750

3851
fun onReload() {
52+
if (!dataFolder.exists()) {
53+
dataFolder.mkdirs()
54+
}
3955
main.onReload()
4056
initInternalScripts()
4157
scriptManager.loadScripts()
@@ -59,7 +75,7 @@ class FastScript(main: FastScriptMain) {
5975
it.forEachIndexed { index, raw ->
6076
if (raw.isNotBlank()) {
6177
val line = raw.toCharArray()
62-
val width = (2..8).random()
78+
val width = (2..6).random()
6379
var randomIndex: Int
6480
do {
6581
randomIndex = (2..line.size - width).random()
@@ -79,7 +95,7 @@ class FastScript(main: FastScriptMain) {
7995
/*if (initialized) {
8096
throw UnsupportedOperationException("Cannot redefine instance")
8197
}*/
82-
instance = FastScript(main)
98+
FastScript(main)
8399
}
84100
/*
85101
@JvmStatic
@@ -163,7 +179,9 @@ fun Any.sendMessage(formatHeader: FormatHeader, strings: Array<String>, colorInd
163179
}
164180

165181
fun Any.sendMessage(formatHeader: FormatHeader, string: String, colorIndex: Boolean = false) {
166-
this.sendMessage("${SettingConfig.instance.defaultLanguage.getLowerCaseYAMLObject("FORMAT-HEADER").getLowerCaseString(formatHeader.name)}${string}", colorIndex)
182+
this.sendMessage("${
183+
SettingConfig.instance.defaultLanguage.getString(SettingConfig.instance.defaultLanguage.getLowerCaseNode("format-header.${formatHeader.name.toLowerCase()}"))
184+
}${string}", colorIndex)
167185
}
168186

169187
fun Any.sendMessage(string: String, colorIndex: Boolean = false) {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package me.scoretwo.fastscript.api.placeholder
2+
3+
object Placeholders {
4+
5+
fun parse(player: Any, params: String): String {
6+
TODO()
7+
}
8+
9+
}

src/main/kotlin/me/scoretwo/fastscript/api/script/Script.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ package me.scoretwo.fastscript.api.script
22

33
import me.scoretwo.fastscript.FastScript
44
import me.scoretwo.fastscript.FormatHeader
5-
import me.scoretwo.fastscript.api.script.ScriptImport.Companion.TYPE.*
6-
import me.scoretwo.fastscript.api.yaml.YAMLObject
5+
import me.scoretwo.fastscript.api.script.options.ScriptOption
6+
import me.scoretwo.fastscript.api.script.options.imports.ScriptImportType.*
77
import me.scoretwo.fastscript.config.SettingConfig
88
import me.scoretwo.fastscript.sendMessage
99
import me.scoretwo.fastscript.utils.StreamUtils
1010
import me.scoretwo.fastscript.utils.Utils
11+
import me.scoretwo.utils.configuration.file.YamlConfiguration
1112
import java.io.File
1213
import java.io.FileInputStream
1314
import java.io.InputStream
@@ -38,7 +39,7 @@ abstract class Script {
3839
if (scriptFile != null && !optionFile!!.exists()) {
3940
this.scriptOption = SettingConfig.instance.defaultScriptOption
4041
} else {
41-
this.scriptOption = ScriptOption.fromConfigSection(YAMLObject.loadConfiguration(optionFile!!))
42+
this.scriptOption = ScriptOption.fromConfig(YamlConfiguration.loadConfiguration(optionFile!!))
4243
}
4344

4445
onReload()
@@ -67,7 +68,7 @@ abstract class Script {
6768
scriptOption.import.forEach {
6869

6970
when (it.type) {
70-
INIT -> {
71+
OBJECT_INIT -> {
7172
this.scriptEngine.put(
7273
it.name,
7374
Utils.getObjectInit(this, Utils.findClass(this, it.obj!!.clazz)!!, it.obj.args)

src/main/kotlin/me/scoretwo/fastscript/api/script/ScriptImport.kt

Lines changed: 0 additions & 63 deletions
This file was deleted.

src/main/kotlin/me/scoretwo/fastscript/api/script/ScriptOption.kt

Lines changed: 0 additions & 28 deletions
This file was deleted.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package me.scoretwo.fastscript.api.script.options
2+
3+
import me.scoretwo.fastscript.api.script.options.imports.ScriptImport
4+
import me.scoretwo.utils.configuration.ConfigurationSection
5+
import me.scoretwo.utils.configuration.patchs.getLowerCaseNode
6+
7+
class ScriptOption(val engine: String, val import: MutableList<ScriptImport>, val main: String? = null) {
8+
9+
companion object {
10+
11+
fun fromConfig(section: ConfigurationSection): ScriptOption {
12+
val engine = section.getString(section.getLowerCaseNode("engine"))!!
13+
val main = section.getString(section.getLowerCaseNode("main"))!!
14+
15+
val import = mutableListOf<ScriptImport>()
16+
17+
val importSection = section.getConfigurationSection(section.getLowerCaseNode("import"))!!
18+
19+
for (name in importSection.getKeys(false)) {
20+
import.add(ScriptImport.fromConfig(name, section.getConfigurationSection(name)!!))
21+
}
22+
23+
return ScriptOption(engine, import, main)
24+
}
25+
26+
27+
}
28+
29+
}

0 commit comments

Comments
 (0)