mirror of
https://github.com/TeamMidnightDust/TimeChanger.git
synced 2025-12-16 10:05:09 +01:00
TimeChanger 1.0.0 ⏰
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
package eu.midnightdust.timechanger;
|
||||
|
||||
import eu.midnightdust.timechanger.config.TimeChangerConfig;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.serializer.JanksonConfigSerializer;
|
||||
import net.fabricmc.api.ClientModInitializer;
|
||||
|
||||
public class TimeChangerClient implements ClientModInitializer {
|
||||
|
||||
public static TimeChangerConfig TC_CONFIG;
|
||||
|
||||
@Override
|
||||
public void onInitializeClient() {
|
||||
AutoConfig.register(TimeChangerConfig.class, JanksonConfigSerializer::new);
|
||||
TC_CONFIG = AutoConfig.getConfigHolder(TimeChangerConfig.class).getConfig();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package eu.midnightdust.timechanger.config;
|
||||
|
||||
import io.github.prospector.modmenu.api.ConfigScreenFactory;
|
||||
import io.github.prospector.modmenu.api.ModMenuApi;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class ModMenuIntegration implements ModMenuApi {
|
||||
|
||||
@Override
|
||||
public ConfigScreenFactory<?> getModConfigScreenFactory() {
|
||||
return parent -> AutoConfig.getConfigScreen(TimeChangerConfig.class, parent).get();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package eu.midnightdust.timechanger.config;
|
||||
|
||||
import me.sargunvohra.mcmods.autoconfig1u.ConfigData;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.annotation.Config;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.shadowed.blue.endless.jankson.Comment;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Config(name = "timechanger")
|
||||
public class TimeChangerConfig implements ConfigData {
|
||||
|
||||
@Comment(value = "Set the Custom Time (-1 to disable)")
|
||||
public int custom_time = -1;
|
||||
@Comment(value = "Whitelist/Blacklist servers")
|
||||
public List<String> whitelist = new ArrayList<>();
|
||||
public boolean blacklist = false;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package eu.midnightdust.timechanger.mixin;
|
||||
|
||||
import eu.midnightdust.timechanger.TimeChangerClient;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.world.ClientWorld;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(ClientWorld.class)
|
||||
|
||||
public abstract class MixinClientWorld {
|
||||
|
||||
@Shadow @Final private ClientWorld.Properties clientWorldProperties;
|
||||
@Shadow @Final private MinecraftClient client;
|
||||
|
||||
@Inject(at = @At("TAIL"), method = "setTimeOfDay", cancellable = true)
|
||||
@Environment(EnvType.CLIENT)
|
||||
public void setTimeOfDay(long time, CallbackInfo ci) {
|
||||
if (client.getCurrentServerEntry() != null) {
|
||||
if (TimeChangerClient.TC_CONFIG.custom_time >= 0 && TimeChangerClient.TC_CONFIG.whitelist.isEmpty()) {
|
||||
this.clientWorldProperties.setTimeOfDay(TimeChangerClient.TC_CONFIG.custom_time);
|
||||
} else if (TimeChangerClient.TC_CONFIG.custom_time >= 0 && client.getCurrentServerEntry().address != null) {
|
||||
if (!TimeChangerClient.TC_CONFIG.blacklist && TimeChangerClient.TC_CONFIG.whitelist.contains(client.getCurrentServerEntry().address)) {
|
||||
this.clientWorldProperties.setTimeOfDay(TimeChangerClient.TC_CONFIG.custom_time);
|
||||
} else if (TimeChangerClient.TC_CONFIG.blacklist && !TimeChangerClient.TC_CONFIG.whitelist.contains(client.getCurrentServerEntry().address)) {
|
||||
this.clientWorldProperties.setTimeOfDay(TimeChangerClient.TC_CONFIG.custom_time);
|
||||
}
|
||||
else {ci.cancel();}
|
||||
}
|
||||
else {ci.cancel();}
|
||||
}
|
||||
else {ci.cancel();}
|
||||
}
|
||||
}
|
||||
BIN
src/main/resources/assets/timechanger/icon.png
Normal file
BIN
src/main/resources/assets/timechanger/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.7 KiB |
6
src/main/resources/assets/timechanger/lang/en_us.json
Normal file
6
src/main/resources/assets/timechanger/lang/en_us.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"text.autoconfig.timechanger.title":"Time Changer Config",
|
||||
"text.autoconfig.timechanger.option.custom_time":"Custom Time",
|
||||
"text.autoconfig.timechanger.option.whitelist":"Server Whitelist",
|
||||
"text.autoconfig.timechanger.option.blacklist":"Use Whitelist as Blacklist?"
|
||||
}
|
||||
38
src/main/resources/fabric.mod.json
Normal file
38
src/main/resources/fabric.mod.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "timechanger",
|
||||
"version": "${version}",
|
||||
|
||||
"name": "Time Changer",
|
||||
"description": "Allows you to change the time completely clientside!",
|
||||
"authors": [
|
||||
"Motschen",
|
||||
"TeamMidnightDust"
|
||||
],
|
||||
"contact": {
|
||||
"homepage": "https://www.midnightdust.eu/",
|
||||
"sources": "https://github.com/TeamMidnightDust/TimeChanger",
|
||||
"issues": "https://github.com/TeamMidnightDust/TimeChanger/issues"
|
||||
},
|
||||
|
||||
"license": "MIT",
|
||||
"icon": "assets/timechanger/icon.png",
|
||||
|
||||
"environment": "client",
|
||||
"entrypoints": {
|
||||
"client": [
|
||||
"eu.midnightdust.timechanger.TimeChangerClient"
|
||||
],
|
||||
"modmenu": [
|
||||
"eu.midnightdust.timechanger.config.ModMenuIntegration"
|
||||
]
|
||||
},
|
||||
|
||||
"mixins": [
|
||||
"timechanger.mixins.json"
|
||||
],
|
||||
|
||||
"depends": {
|
||||
"autoconfig1u": "*"
|
||||
}
|
||||
}
|
||||
11
src/main/resources/timechanger.mixins.json
Normal file
11
src/main/resources/timechanger.mixins.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"required": true,
|
||||
"package": "eu.midnightdust.timechanger.mixin",
|
||||
"compatibilityLevel": "JAVA_8",
|
||||
"client": [
|
||||
"MixinClientWorld"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user