aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/GT_Proxy.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/GT_Proxy.java')
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index 7e83ae97a7..8e0c636c98 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -67,6 +67,7 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@@ -146,6 +147,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.items.GT_MetaGenerated_Item;
import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.net.GT_Packet_MusicSystemData;
import gregtech.api.objects.GT_ChunkManager;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.objects.GT_UO_DimensionList;
@@ -161,6 +163,7 @@ import gregtech.api.util.GT_CoverBehaviorBase;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_MusicSystem;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_RecipeRegistrator;
@@ -1383,6 +1386,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
GT_Log.out.println("GT_Mod: ServerStarting-Phase started!");
GT_Log.ore.println("GT_Mod: ServerStarting-Phase started!");
+ GT_MusicSystem.ServerSystem.reset();
+
this.mUniverse = null;
this.isFirstServerWorldTick = true;
for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry
@@ -1433,6 +1438,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
}
public void onServerStopping() {
+ GT_MusicSystem.ServerSystem.reset();
File tSaveDirectory = getSaveDirectory();
GregTech_API.sWirelessRedstone.clear();
if (tSaveDirectory != null) {
@@ -1564,6 +1570,15 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
}
@SubscribeEvent
+ public void onPlayerJoinEvent(cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent event) {
+ if (event.player == null || event.player.isClientWorld()
+ || !(event.player instanceof EntityPlayerMP mpPlayer)) {
+ return;
+ }
+ GT_Values.NW.sendToPlayer(new GT_Packet_MusicSystemData(GT_MusicSystem.ServerSystem.serialize()), mpPlayer);
+ }
+
+ @SubscribeEvent
public void onOreGenEvent(OreGenEvent.GenerateMinable aGenerator) {
if ((this.mDisableVanillaOres) && ((aGenerator.generator instanceof WorldGenMinable))
&& (PREVENTED_ORES.contains(aGenerator.type))) {
@@ -2223,9 +2238,9 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
if (aEvent.side.isServer()) {
if (aEvent.phase == TickEvent.Phase.START) {
TICK_LOCK.lock();
-
} else {
TICK_LOCK.unlock();
+ GT_MusicSystem.ServerSystem.tick();
}
// Making sure it is being freed up in order to prevent exploits or Garbage Collection mishaps.