Fixed server connection issue!

This commit is contained in:
Aidan C. Brady 2013-10-24 17:14:09 -04:00
parent 5c1c8350a3
commit 609d9c5d17
3 changed files with 28 additions and 16 deletions

View file

@ -18,7 +18,7 @@ import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class ClientConnectionHandler implements IConnectionHandler
{
public VoiceClient voiceClient = new VoiceClient();
public VoiceClient voiceClient;
@Override
public void playerLoggedIn(Player player, NetHandler netHandler, INetworkManager manager) {}
@ -32,21 +32,26 @@ public class ClientConnectionHandler implements IConnectionHandler
@Override
public void connectionOpened(NetHandler netClientHandler, String server, int port, INetworkManager manager)
{
voiceClient.start(server, 36123);
try {
voiceClient = new VoiceClient(server, 36123);
voiceClient.run();
} catch(Exception e) {}
}
@Override
public void connectionOpened(NetHandler netClientHandler, MinecraftServer server, INetworkManager manager)
{
try {
voiceClient.start(InetAddress.getLocalHost().getHostAddress(), 36123);
voiceClient = new VoiceClient(InetAddress.getLocalHost().getHostAddress(), 36123);
voiceClient.run();
} catch(Exception e) {}
}
@Override
public void connectionClosed(INetworkManager manager)
{
voiceClient.stop();
voiceClient.disconnect();
voiceClient = null;
Mekanism.proxy.unloadSoundHandler();
}

View file

@ -12,10 +12,13 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class VoiceClient
public class VoiceClient extends Thread
{
public Socket socket;
public String ip;
public int port;
public AudioFormat format = new AudioFormat(11025.0F, 8, 1, true, true);
public VoiceInput inputThread;
@ -26,7 +29,14 @@ public class VoiceClient
public boolean running;
public void start(String ip, int port)
public VoiceClient(String s, int i)
{
ip = s;
port = i;
}
@Override
public void run()
{
System.out.println("[Mekanism] VoiceServer: Starting client connection...");
@ -39,13 +49,15 @@ public class VoiceClient
(outputThread = new VoiceOutput(this)).start();
(inputThread = new VoiceInput(this)).start();
System.out.println("[Mekanism] VoiceServer: Successfully connected to server.");
} catch(Exception e) {
System.err.println("[Mekanism] VoiceServer: Error while starting client connection.");
e.printStackTrace();
}
}
public void stop()
public void disconnect()
{
System.out.println("[Mekanism] VoiceServer: Stopping client connection...");
@ -55,6 +67,10 @@ public class VoiceClient
outputThread.interrupt();
} catch(Exception e) {}
try {
interrupt();
} catch(Exception e) {}
try {
inputThread.close();
outputThread.close();

View file

@ -1,7 +1,5 @@
package mekanism.common;
import ic2.api.energy.event.EnergyTileLoadEvent;
import ic2.api.energy.tile.IEnergyTile;
import ic2.api.recipe.RecipeInputOreDict;
import ic2.api.recipe.Recipes;
@ -19,7 +17,6 @@ import mekanism.api.infuse.InfuseRegistry;
import mekanism.api.infuse.InfuseType;
import mekanism.api.infuse.InfusionInput;
import mekanism.api.transmitters.TransmitterNetworkRegistry;
import mekanism.client.sound.SoundHandler;
import mekanism.common.EnergyNetwork.EnergyTransferEvent;
import mekanism.common.FluidNetwork.FluidTransferEvent;
import mekanism.common.IFactory.RecipeType;
@ -76,11 +73,9 @@ import mekanism.common.network.PacketWalkieTalkieState;
import mekanism.common.network.PacketWeather;
import mekanism.common.tileentity.TileEntityBoundingBlock;
import mekanism.common.tileentity.TileEntityControlPanel;
import mekanism.common.tileentity.TileEntityElectricBlock;
import mekanism.common.tileentity.TileEntityEnergyCube;
import mekanism.common.tileentity.TileEntityGasTank;
import mekanism.common.tileentity.TileEntityTeleporter;
import mekanism.common.tileentity.TileEntityUniversalCable;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import mekanism.common.voice.VoiceServerManager;
@ -89,11 +84,9 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.ForgeSubscribe;
import net.minecraftforge.event.world.ChunkEvent;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import rebelkeithy.mods.metallurgy.api.IOreInfo;
@ -112,8 +105,6 @@ import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
/**
* Mekanism - the mod in which no true definition fits.