Skip to content

Commit 5a0a3b8

Browse files
authored
Merge pull request #31 from Jannyboy11/paper-lifecycle-events
Paper lifecycle events setup
2 parents cf703ed + a8cb39e commit 5a0a3b8

30 files changed

Lines changed: 652 additions & 125 deletions

File tree

Dependencies/pom.xml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@
1212

1313
<artifactId>Dependencies</artifactId>
1414

15-
<properties>
16-
<minecraft.version>1.21.4</minecraft.version>
17-
<paper.version>${minecraft.version}-R0.1-SNAPSHOT</paper.version>
18-
</properties>
19-
2015
<repositories>
2116
<repository>
2217
<id>papermc</id>
@@ -45,6 +40,7 @@
4540
</executions>
4641
</plugin>
4742

43+
<!-- Paper dependency copied from: https://github.com/stonar96/RayTraceAntiXray/blob/main/Libs/pom.xml -->
4844
<plugin>
4945
<groupId>org.apache.maven.plugins</groupId>
5046
<artifactId>maven-dependency-plugin</artifactId>

JavaExample/src/main/java/xyz/janboerman/scalaloader/example/java/ExamplePlugin.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,17 @@
2626

2727
@CustomScala(@Version(value = "2.13.0",
2828
scalaLibraryUrl = "https://search.maven.org/remotecontent?filepath=org/scala-lang/scala-library/2.13.0/scala-library-2.13.0.jar",
29-
scalaReflectUrl = "https://search.maven.org/remotecontent?filepath=org/scala-lang/scala-reflect/2.13.0/scala-reflect-2.13.0.jar"))
29+
scalaLibrarySha1 = "e988ea597113786768900f1c260c694a2ae32a42",
30+
scalaReflectUrl = "https://search.maven.org/remotecontent?filepath=org/scala-lang/scala-reflect/2.13.0/scala-reflect-2.13.0.jar",
31+
scalaReflectSha1 = "2dbe07b0369dbf00a098b7925b2afca016f124b0"
32+
))
3033
@Api(ApiVersion.v1_19)
3134
public class ExamplePlugin extends ScalaPlugin {
3235

3336
private final Random random = new Random();
3437

3538
public ExamplePlugin() {
36-
super(new ScalaPluginDescription("JavaExample", "0.18.15-SNAPSHOT").addHardDepend("Scala2Example"));
39+
super(new ScalaPluginDescription("JavaExample", "0.18.16-SNAPSHOT").addHardDepend("Scala2Example"));
3740
}
3841

3942
public static ExamplePlugin getInstance() {

JavaExample/src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: JavaExample #Ignored!
22
main: xyz.janboerman.scalaloader.example.java.ExamplePlugin #Ignored!
3-
version: 0.18.15-SNAPSHOT #Ignored!
3+
version: 0.18.16-SNAPSHOT #Ignored!
44
api-version: 1.13
55

66
commands:

Scala2Example/src/main/scala/xyz/janboerman/scalaloader/example/scala/ExamplePlugin.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ object Permissions {
1717
@Scala(version = ScalaVersion.v2_13_15)
1818
@Api(ApiVersion.v1_21)
1919
object ExamplePlugin
20-
extends ScalaPlugin(new ScalaPluginDescription("Scala2Example", "0.18.15-SNAPSHOT")
20+
extends ScalaPlugin(new ScalaPluginDescription("Scala2Example", "0.18.16-SNAPSHOT")
2121
.addCommand(new SPCommand("foo").permission(fooPermission))
2222
.addCommand(new SPCommand("home").permission(homePermission).usage("/home set|tp"))
2323
.permissions(homePermission)) {

Scala3Example/pom.xml

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,13 @@
3737
<plugin>
3838
<groupId>net.alchim31.maven</groupId>
3939
<artifactId>scala-maven-plugin</artifactId>
40-
<version>4.7.2</version>
40+
<version>4.9.2</version>
4141
<configuration>
4242
<args>
4343
<!-- <arg>-rewrite</arg><arg>-indent</arg>-->
4444
<arg>-rewrite</arg><arg>-new-syntax</arg>
4545
</args>
46+
<scalaVersion>${scala.version}</scalaVersion>
4647
</configuration>
4748
<executions>
4849
<execution>
@@ -72,8 +73,8 @@
7273

7374
<repositories>
7475
<repository>
75-
<id>spigotmc-repo</id>
76-
<url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
76+
<id>papermc-repo</id>
77+
<url>https://repo.papermc.io/repository/maven-public/</url>
7778
</repository>
7879
</repositories>
7980

@@ -107,9 +108,19 @@
107108
</dependency>
108109

109110
<dependency>
110-
<groupId>org.spigotmc</groupId>
111-
<artifactId>spigot-api</artifactId>
112-
<version>1.21.4-R0.1-SNAPSHOT</version>
111+
<groupId>io.papermc.paper</groupId>
112+
<artifactId>paper-api</artifactId>
113+
<version>${paper.version}</version>
114+
<scope>provided</scope>
115+
</dependency>
116+
<!-- TODO make it so that we don't need the paper server dependency. -->
117+
<!-- TODO this is caused by the fact ScalaPlugin exposes some getters for types which inherit from some classes in the Paper-Server dependency. -->
118+
<!-- TODO once we fix our APIs, we also need to add some bytecode migration for compatibility. -->
119+
<dependency>
120+
<groupId>io.papermc.paper</groupId>
121+
<artifactId>paper-server</artifactId>
122+
<version>${paper.version}</version>
123+
<classifier>mojang-mapped</classifier>
113124
<scope>provided</scope>
114125
</dependency>
115126
</dependencies>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Scala3Example
2+
version: ${project.version}
3+
api-version: "1.21.4"
4+
folia-supported: true
5+
load: STARTUP
6+
7+
bootstrapper: xyz.janboerman.scalaloader.example.scala3.ExampleBootstrap
8+
9+
dependencies:
10+
bootstrap:
11+
ScalaLoader:
12+
load: BEFORE
13+
required: true
14+
join-classpath: true
15+
server:
16+
ScalaLoader:
17+
load: BEFORE
18+
required: true
19+
join-classpath: true
20+
21+
permissions:
22+
scala3.yolo:
23+
description: Swag
24+
default: true

Scala3Example/src/main/resources/plugin.yml

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package xyz.janboerman.scalaloader.example.scala3
2+
3+
import com.mojang.brigadier.Command
4+
import io.papermc.paper.command.brigadier.Commands
5+
import io.papermc.paper.plugin.bootstrap.BootstrapContext
6+
import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents
7+
import xyz.janboerman.scalaloader.paper.plugin.ScalaPluginBootstrap
8+
9+
import java.util.Collections
10+
11+
class ExampleBootstrap extends ScalaPluginBootstrap {
12+
13+
override def bootstrap(context: BootstrapContext): Unit = {
14+
super.bootstrap(context)
15+
16+
// Code adapted from test-plugin in Paper repository.
17+
18+
val lifecycleEventManager = context.getLifecycleManager
19+
lifecycleEventManager.registerEventHandler(LifecycleEvents.COMMANDS, event => {
20+
val commands = event.registrar
21+
22+
commands.register(
23+
Commands.literal("bootstraptest")
24+
.executes(commandContext => Command.SINGLE_SUCCESS)
25+
.build(),
26+
null,
27+
Collections.emptyList()
28+
)
29+
})
30+
}
31+
32+
}

Scala3Example/src/main/scala/xyz/janboerman/scalaloader/example/scala3/ExamplePlugin.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package xyz.janboerman.scalaloader.example.scala3
22

33
import xyz.janboerman.scalaloader.plugin.description.{Scala, ScalaVersion}
4-
import xyz.janboerman.scalaloader.plugin.ScalaPlugin
4+
import xyz.janboerman.scalaloader.paper.plugin.ScalaPlugin
55

66
@Scala(version = ScalaVersion.v3_6_2)
77
object ExamplePlugin extends ScalaPlugin {

ScalaLoader-Bukkit/src/main/java/xyz/janboerman/scalaloader/plugin/ScalaPlugin.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ void setEnabled(boolean enabled) {
143143
* @deprecated This method *WILL NOT EXIST* at runtime when running your plugin on Paper. Use {@link #classLoader()} instead.
144144
*/
145145
@Deprecated //TODO at the next deprecation clean up spree, make this method protected and final.
146+
// TODO consider also using MainClassCallerMigrator in bytecode transformations in ScalaLoader-Bukkit.
146147
public ScalaPluginClassLoader getClassLoader() {
147148
return classLoader();
148149
}
@@ -232,7 +233,7 @@ public final String getDeclaredApiVersion() {
232233
return yamlDefinedApi.toString();
233234
}
234235

235-
return ApiVersion.latest().getVersionString();
236+
return ApiVersion.latestVersionString();
236237
}
237238

238239
/**

0 commit comments

Comments
 (0)