Skip to content

Commit f12cfa8

Browse files
author
Scribble
authored
Fix dependency
2 parents e0a2ac6 + d1692a6 commit f12cfa8

File tree

14 files changed

+99
-40
lines changed

14 files changed

+99
-40
lines changed

.github/workflows/gradle.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ jobs:
1919
- name: Prepare folders
2020
run: mkdir -p gradle/wrapper
2121
- name: Download gradle properties
22-
run: wget -P gradle/wrapper https://mgnet.work/.web_ram/gradle-wrapper.properties
22+
run: wget -P gradle/wrapper https://data.mgnet.work/tasmod/gradle-wrapper.properties
2323
- name: Obtain gradle
24-
run: wget -P gradle/wrapper https://mgnet.work/.web_ram/gradle-wrapper.jar
24+
run: wget -P gradle/wrapper https://data.mgnet.work/tasmod/gradle-wrapper.jar
2525
- name: Build TASmod with Gradle
2626
run: java -cp gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain shadowJar --no-daemon
2727
- run: find . -type f ! -name "*forge.jar" -delete

build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ apply plugin: 'org.spongepowered.mixin'
1919
//Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
2020

2121

22-
version = "Alpha6"
22+
version = "Alpha7-WIP"
2323
group = "de.scribble.lp.tastools" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
2424
archivesBaseName = "TASmod-1.12.2"
2525

@@ -47,7 +47,7 @@ minecraft {
4747
}
4848
repositories {
4949
mavenCentral()
50-
maven { url = "https://mgnet.work/repo" }
50+
maven { url = "https://maven.mgnet.work" }
5151
maven {
5252
name = 'sponge'
5353
url = 'https://repo.spongepowered.org/maven'
@@ -68,6 +68,7 @@ dependencies {
6868
compile 'org.msgpack:msgpack-core:0.8.16'
6969
compile 'org.msgpack:jackson-dataformat-msgpack:0.8.16'
7070
compile files('libs/KillTheRNG-1.12.2-1.0-deobf.jar')
71+
//compile files('libs/BigArrayList-1.3.jar')
7172
compile 'com.dselent:bigarraylist:1.0'
7273
// real examples
7374
//compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env

src/main/java/de/scribble/lp/tasmod/events/PlayerJoinLeaveEvents.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public static void firePlayerJoinedServerSide(EntityPlayerMP player) {
2424
TASmod.logger.info("Firing login events for {} on the SERVER", player.getName());
2525
TickSyncServer.joinServer(player);
2626
TASmod.containerStateServer.joinServer(player);
27+
TickrateChangerServer.joinServer(player);
2728
}
2829

2930
/**
@@ -32,8 +33,7 @@ public static void firePlayerJoinedServerSide(EntityPlayerMP player) {
3233
* @param player The player that left the server
3334
*/
3435
public static void firePlayerLeaveServerSide(EntityPlayerMP player) {
35-
TASmod.logger.info("Firing logout events for {} on the SERVER", player.getName());
36-
TickrateChangerServer.leaveServer(player);
36+
// TASmod.logger.info("Firing logout events for {} on the SERVER", player.getName());
3737
}
3838

3939
/**

src/main/java/de/scribble/lp/tasmod/mixin/MixinMinecraft.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ public abstract class MixinMinecraft {
3535
@Shadow
3636
private GuiScreen currentScreen;
3737

38+
// private int faketick=0;
39+
3840
@Inject(method = "runGameLoop", at = @At(value = "HEAD"))
3941
public void injectRunGameLoop(CallbackInfo ci) {
4042
// TASmod
@@ -44,6 +46,15 @@ public void injectRunGameLoop(CallbackInfo ci) {
4446
if(((Minecraft) (Object) this).player!=null) {
4547
ClientProxy.hud.tick();
4648
}
49+
50+
//Fake tickrate loop when you are in tickrate 0
51+
// if(TickrateChangerClient.TICKS_PER_SECOND==0) {
52+
// faketick++;
53+
// if(faketick>=Minecraft.getDebugFPS()/3) { //Not yet used but maybe in the future
54+
// faketick=0;
55+
// }
56+
// }
57+
4758
while (Keyboard.next()) {
4859
ClientProxy.virtual.updateNextKeyboard(Keyboard.getEventKey(), Keyboard.getEventKeyState(), Keyboard.getEventCharacter());
4960
}

src/main/java/de/scribble/lp/tasmod/mixin/MixinMinecraftServer.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,14 @@
1313
import de.scribble.lp.tasmod.CommonProxy;
1414
import de.scribble.lp.tasmod.TASmod;
1515
import de.scribble.lp.tasmod.savestates.server.SavestateHandler;
16+
import de.scribble.lp.tasmod.savestates.server.SavestateState;
1617
import de.scribble.lp.tasmod.tickratechanger.TickrateChangerServer;
1718
import de.scribble.lp.tasmod.ticksync.TickSyncPackage;
1819
import de.scribble.lp.tasmod.ticksync.TickSyncServer;
20+
import net.minecraft.network.NetworkSystem;
1921
import net.minecraft.server.MinecraftServer;
22+
import net.minecraftforge.fml.relauncher.Side;
23+
import net.minecraftforge.fml.relauncher.SideOnly;
2024

2125
@Mixin(MinecraftServer.class)
2226
public abstract class MixinMinecraftServer {
@@ -33,8 +37,8 @@ public long modifyMSPT(long fiftyLong) {
3337
@Redirect(method = "run", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;tick()V", ordinal = 1))
3438
public void redirectTick(MinecraftServer server) {
3539
this.tick();
36-
if (SavestateHandler.wasLoading) {
37-
SavestateHandler.wasLoading = false;
40+
if (SavestateHandler.state==SavestateState.WASLOADING) {
41+
SavestateHandler.state = SavestateState.NONE;
3842
SavestateHandler.playerLoadSavestateEventServer();
3943
}
4044

@@ -73,6 +77,11 @@ public long redirectMathMax(long oneLong, long i) {
7377

7478
@Shadow
7579
private Queue<FutureTask<?>> futureTaskQueue;
80+
81+
@Shadow
82+
private NetworkSystem networkSystem;
83+
84+
private int faketick=0;
7685

7786
@Redirect(method = "run", at = @At(value = "INVOKE", target = "Ljava/lang/Thread;sleep(J)V"))
7887
public void redirectThreadSleep(long msToTick) {
@@ -86,6 +95,12 @@ public void redirectThreadSleep(long msToTick) {
8695
for (long o = 0; o < msToTick; o++) {
8796
if(TickrateChangerServer.TICKS_PER_SECOND==0) {
8897
currentTime=System.currentTimeMillis();
98+
faketick++;
99+
if(faketick>=20) {
100+
faketick=0;
101+
networkSystem.networkTick();
102+
runPendingCommands();
103+
}
89104
}
90105
if (TickrateChangerServer.INTERRUPT) {
91106
currentTime = System.currentTimeMillis();
@@ -101,6 +116,7 @@ public void redirectThreadSleep(long msToTick) {
101116
}
102117
}
103118
}
119+
104120
try {
105121
Thread.sleep(1L);
106122
} catch (InterruptedException e) {
@@ -110,6 +126,14 @@ public void redirectThreadSleep(long msToTick) {
110126
}
111127
}
112128

129+
@SideOnly(Side.SERVER)
130+
private void runPendingCommands() {
131+
if((MinecraftServer)(Object)this instanceof net.minecraft.server.dedicated.DedicatedServer) {
132+
net.minecraft.server.dedicated.DedicatedServer server=(net.minecraft.server.dedicated.DedicatedServer)(MinecraftServer)(Object)this;
133+
server.executePendingCommands();
134+
}
135+
}
136+
113137
// =====================================================================================================================================
114138

115139
// @Inject(method = "tick", at = @At("HEAD"))

src/main/java/de/scribble/lp/tasmod/savestates/server/LoadstatePacketHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public IMessage onMessage(LoadstatePacket message, MessageContext ctx) {
3030
player.sendMessage(new TextComponentString(TextFormatting.RED+"Failed to load a savestate: "+e.getCause().toString()));
3131
e.printStackTrace();
3232
} finally {
33-
SavestateHandler.isLoading=false;
33+
SavestateHandler.state=SavestateState.NONE;
3434
}
3535
});
3636
}else {

src/main/java/de/scribble/lp/tasmod/savestates/server/SavestateHandler.java

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package de.scribble.lp.tasmod.savestates.server;
22

33
import java.io.File;
4+
import java.io.FileFilter;
45
import java.io.IOException;
56

67
import org.apache.commons.io.FileUtils;
@@ -39,28 +40,26 @@ public class SavestateHandler {
3940
private static MinecraftServer server=TASmod.getServerInstance();
4041
private static File savestateDirectory;
4142

42-
public static boolean isSaving=false;
43-
44-
public static boolean isLoading=false;
45-
public static boolean wasLoading=false;
43+
public static SavestateState state=SavestateState.NONE;
4644

4745
/**
4846
* Creates a copy of the currently played world and saves it in .minecraft/saves/savestates/worldname <br>
4947
* Called in {@link SavestatePacketHandler}<br>
5048
* <br>
5149
* Side: Server
50+
* @param savestateIndex The index where the mod will save the savestate -1 if it should load the latest
5251
* @throws SavestateException
5352
* @throws IOException
5453
*/
55-
public static void saveState() throws SavestateException, IOException {
56-
if(isSaving) {
54+
public static void saveState(int savestateIndex) throws SavestateException, IOException {
55+
if(state==SavestateState.SAVING) {
5756
throw new SavestateException("A savestating operation is already being carried out");
5857
}
59-
if(isLoading) {
58+
if(state==SavestateState.LOADING) {
6059
throw new SavestateException("A loadstate operation is being carried out");
6160
}
6261
//Lock savestating and loadstating
63-
isSaving=true;
62+
state=SavestateState.SAVING;
6463

6564
//Create a directory just in case
6665
createSavestateDirectory();
@@ -107,7 +106,21 @@ public static void saveState() throws SavestateException, IOException {
107106
CommonProxy.NETWORK.sendToAll(new SavestatePacket());
108107

109108
//Unlock savestating
110-
isSaving=false;
109+
state=SavestateState.NONE;
110+
}
111+
112+
private static String nextSaveName(String worldname, int index) {
113+
File[] listofFiles=savestateDirectory.listFiles(new FileFilter() {
114+
115+
@Override
116+
public boolean accept(File pathname) {
117+
return pathname.getName().startsWith(worldname);
118+
}
119+
120+
});
121+
if(index<0) {
122+
}
123+
return "";
111124
}
112125

113126
/**
@@ -117,14 +130,13 @@ public static void saveState() throws SavestateException, IOException {
117130
* @return targetsavefolder The file where the savestate should be copied to
118131
* @throws SavestateException if the found savestates count is greater or equal than 300
119132
*/
133+
@Deprecated
120134
private static File getNextSaveFolderLocation(String worldname) throws SavestateException {
121135
int i = 1;
122136
int limit=300;
123137
File targetsavefolder=null;
124-
isSaving=true;
125138
while (i <= limit) {
126139
if (i >= limit) {
127-
isSaving = false;
128140
throw new SavestateException("Savestatecount is greater or equal than "+limit);
129141
}
130142
targetsavefolder = new File(savestateDirectory,worldname + "-Savestate" + Integer.toString(i)+File.separator);
@@ -143,6 +155,7 @@ private static File getNextSaveFolderLocation(String worldname) throws Savestate
143155
* @param worldname the name of the world currently on the server
144156
* @return The correct name of the next savestate
145157
*/
158+
@Deprecated
146159
private static String nameWhenSaving(String worldname) {
147160
int i = 1;
148161
int limit=300;
@@ -171,14 +184,14 @@ private static String nameWhenSaving(String worldname) {
171184
* @throws IOException
172185
*/
173186
public static void loadState() throws LoadstateException, IOException {
174-
if(isSaving) {
187+
if(state==SavestateState.SAVING) {
175188
throw new LoadstateException("A savestating operation is already being carried out");
176189
}
177-
if(isLoading) {
190+
if(state==SavestateState.LOADING) {
178191
throw new LoadstateException("A loadstate operation is being carried out");
179192
}
180193
//Lock savestating and loadstating
181-
isLoading=true;
194+
state=SavestateState.LOADING;
182195

183196
//Create a directory just in case
184197
createSavestateDirectory();
@@ -246,8 +259,7 @@ public static void loadState() throws LoadstateException, IOException {
246259
}
247260

248261
//Unlock loadstating
249-
isLoading=false;
250-
wasLoading=true;
262+
state=SavestateState.WASLOADING;
251263
}
252264

253265
/**

src/main/java/de/scribble/lp/tasmod/savestates/server/SavestatePacketHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ public IMessage onMessage(SavestatePacket message, MessageContext ctx) {
3030
return;
3131
}
3232
try {
33-
SavestateHandler.saveState();
33+
SavestateHandler.saveState(-1);
3434
} catch (SavestateException e) {
3535
player.sendMessage(new TextComponentString(TextFormatting.RED+"Failed to create a savestate: "+ e.getMessage()));
3636

3737
} catch (Exception e) {
3838
e.printStackTrace();
3939
player.sendMessage(new TextComponentString(TextFormatting.RED+"Failed to create a savestate: "+ e.getCause().toString()));
4040
} finally {
41-
SavestateHandler.isSaving=false;
41+
SavestateHandler.state=SavestateState.NONE;
4242
}
4343
});
4444
}else {
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package de.scribble.lp.tasmod.savestates.server;
2+
3+
public enum SavestateState {
4+
SAVING,
5+
LOADING,
6+
WASLOADING,
7+
NONE
8+
}

src/main/java/de/scribble/lp/tasmod/tickratechanger/CommandTickrate.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import net.minecraft.command.CommandException;
99
import net.minecraft.command.ICommandSender;
1010
import net.minecraft.server.MinecraftServer;
11+
import net.minecraft.util.text.TextComponentString;
1112

1213
public class CommandTickrate extends CommandBase{
1314
@Override
@@ -27,6 +28,10 @@ public String getUsage(ICommandSender sender) {
2728

2829
@Override
2930
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
31+
if(args.length==0) {
32+
sender.sendMessage(new TextComponentString("Current tickrate: "+ TickrateChangerServer.TICKS_PER_SECOND));
33+
return;
34+
}
3035
float tickrate= Float.parseFloat(args[0]);
3136
TickrateChangerServer.changeServerTickrate(tickrate);
3237
TickrateChangerServer.changeClientTickrate(tickrate);

0 commit comments

Comments
 (0)