Added features

This commit is contained in:
Jonas_Jones 2023-10-16 22:42:33 +02:00
parent e72acb6b34
commit 79fdaa7258
5 changed files with 115 additions and 0 deletions

View file

@ -0,0 +1,44 @@
package dev.jonasjones.ticktocktracker;
import dev.jonasjones.ticktocktracker.util.TimeConverter;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
import net.minecraft.text.Text;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.SimpleDateFormat;
import java.util.Date;
import static net.minecraft.server.command.CommandManager.literal;
public class TickTockTracker implements ModInitializer {
// This logger is used to write text to the console and the log file.
// It is considered best practice to use your mod id as the logger's name.
// That way, it's clear which mod wrote info, warnings, and errors.
public static final String MOD_ID = "ticktocktracker";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
@Override
public void onInitialize() {
// This code runs as soon as Minecraft is in a mod-load-ready state.
// However, some things (like resources) may still be uninitialized.
// Proceed with mild caution.
final long startTime = System.currentTimeMillis();
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> dispatcher.register(literal("uptime")
.executes(context -> {
try {
// "Uptime: " + TimeConverter.convertMillisToDuration(System.currentTimeMillis() - startTime)
context.getSource().sendMessage(Text.literal("Uptime: " + TimeConverter.convertMillisToDuration(System.currentTimeMillis() - startTime)));
} catch (Exception e) {
LOGGER.error("Error getting uptime", e);
}
return 1;
})));
}
}

View file

@ -0,0 +1,29 @@
package dev.jonasjones.ticktocktracker.util;
import java.util.concurrent.TimeUnit;
public class TimeConverter {
public static String convertMillisToDuration(long millis) {
long days = TimeUnit.MILLISECONDS.toDays(millis);
millis -= TimeUnit.DAYS.toMillis(days);
long hours = TimeUnit.MILLISECONDS.toHours(millis);
millis -= TimeUnit.HOURS.toMillis(hours);
long minutes = TimeUnit.MILLISECONDS.toMinutes(millis);
millis -= TimeUnit.MINUTES.toMillis(minutes);
long seconds = TimeUnit.MILLISECONDS.toSeconds(millis);
StringBuilder duration = new StringBuilder();
if (days > 0) {
duration.append(days).append(" Days, ");
}
if (hours > 0 || days > 0) {
duration.append(String.format("%02d", hours)).append(" Hours,");
}
if (minutes > 0 || hours > 0 || days > 0) {
duration.append(String.format("%02d", minutes)).append(" Minutes,");
}
duration.append(String.format("%02d", seconds)).append(" Seconds");
return duration.toString();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

View file

@ -0,0 +1,31 @@
{
"schemaVersion": 1,
"id": "ticktocktracker",
"version": "${version}",
"name": "TickTockTracker",
"description": "This is an example description! Tell everyone what your mod is about!",
"authors": [
"Me!"
],
"contact": {
"homepage": "https://jonasjones.dev/",
"sources": "https://github.com/J-onasJones/TickTockTracker"
},
"license": "CC0-1.0",
"icon": "assets/ticktocktracker/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"dev.jonasjones.ticktocktracker.TickTockTracker"
]
},
"depends": {
"fabricloader": ">=0.14.22",
"minecraft": "~1.20.2",
"java": ">=17",
"fabric-api": "*"
},
"suggests": {
"another-mod": "*"
}
}

View file

@ -0,0 +1,11 @@
{
"required": true,
"package": "com.example.mixin",
"compatibilityLevel": "JAVA_17",
"mixins": [
"dev.jonasjones.ticktocktracker.mixin.ExampleMixin"
],
"injectors": {
"defaultRequire": 1
}
}