init
This commit is contained in:
31
lib/build.gradle.kts
Normal file
31
lib/build.gradle.kts
Normal file
@ -0,0 +1,31 @@
|
||||
plugins { kotlin("jvm") version "1.8.0" }
|
||||
|
||||
group = "org.punkcraft"
|
||||
version = "1.0.0-Sponge"
|
||||
// description = "Here lies an example plugin definition"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven("https://repo.spongepowered.org/maven")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation("org.spongepowered:spongeapi:7.4.0")
|
||||
}
|
||||
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
tasks.jar {
|
||||
from("src/main/resources/plugin.json") {
|
||||
include("plugin.json")
|
||||
}
|
||||
manifest {
|
||||
attributes(
|
||||
"Main-Class" to "org.punkcraft.longerday.LongerDay"
|
||||
)
|
||||
}
|
||||
archiveBaseName.set("LongerDay")
|
||||
}
|
55
lib/src/main/java/org/punkcraft/longerday/LongerDay.java
Normal file
55
lib/src/main/java/org/punkcraft/longerday/LongerDay.java
Normal file
@ -0,0 +1,55 @@
|
||||
package org.punkcraft.longerday;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import org.slf4j.Logger;
|
||||
import org.spongepowered.api.Sponge;
|
||||
import org.spongepowered.api.scheduler.Task;
|
||||
import org.spongepowered.api.world.World;
|
||||
import org.spongepowered.api.event.Listener;
|
||||
import org.spongepowered.api.event.game.state.GameStartedServerEvent;
|
||||
import org.spongepowered.api.plugin.Plugin;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Plugin(id = "longerday", name = "LongerDay", version = "1.0", description = "Extends the day cycle")
|
||||
public class LongerDay {
|
||||
|
||||
@Inject
|
||||
private Logger logger;
|
||||
|
||||
private int timeCounter = 0;
|
||||
|
||||
@Listener
|
||||
public void onServerStart(GameStartedServerEvent event) {
|
||||
logger.info("Successfully running LongerDay");
|
||||
|
||||
// Получаем первый мир (обычно это "world")
|
||||
Optional<World> worldOptional = Sponge.getServer().getWorlds().stream().findFirst();
|
||||
if (!worldOptional.isPresent()) {
|
||||
logger.error("No worlds found! Unable to set game rules.");
|
||||
return;
|
||||
}
|
||||
|
||||
World world = worldOptional.get();
|
||||
|
||||
|
||||
// Запускаем задачу для изменения времени каждые 5 тиков
|
||||
Task.builder()
|
||||
.intervalTicks(5) // Выполняется каждые 5 тиков
|
||||
.execute(() -> {
|
||||
try {
|
||||
// Изменяем время в мире
|
||||
timeCounter = (timeCounter + 1) % 24000; // Циклический счетчик времени
|
||||
world.getProperties().setWorldTime((long) timeCounter); // Устанавливаем новое время
|
||||
logger.debug("Time set to: {} in world: {}", timeCounter, world.getName());
|
||||
} catch (Exception e) {
|
||||
logger.error("Error while setting world time: ", e);
|
||||
}
|
||||
})
|
||||
.submit(this); // Подаем задачу в планировщик
|
||||
}
|
||||
|
||||
public Logger getLogger() {
|
||||
return logger;
|
||||
}
|
||||
}
|
29
lib/src/main/resources/META-INF/sponge_plugins.json
Normal file
29
lib/src/main/resources/META-INF/sponge_plugins.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"loader": {
|
||||
"name": "java_plain",
|
||||
"version": "1.0"
|
||||
},
|
||||
"license": "All-Rights-Reserved",
|
||||
"plugins": [
|
||||
{
|
||||
"id": "longerday",
|
||||
"name": "LongerDay",
|
||||
"version": "${version}",
|
||||
"entrypoint": "org.punkcraft.longerday.LongerDay",
|
||||
"description": "My plugin description",
|
||||
"branding": {},
|
||||
"links": {
|
||||
},
|
||||
"contributors": [
|
||||
],
|
||||
"dependencies": [
|
||||
{
|
||||
"id": "spongeapi",
|
||||
"version": "7.4.0",
|
||||
"load-order": "after",
|
||||
"optional": false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user