mirror of
https://github.com/TeamMidnightDust/TimeChanger.git
synced 2025-12-18 10:55: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();}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user