This commit is contained in:
OpexHunter
2025-02-08 12:17:31 +03:00
commit ececd9416a
10 changed files with 506 additions and 0 deletions

31
lib/build.gradle.kts Normal file
View 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")
}

View 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;
}
}

View 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
}
]
}
]
}