Jump to content

pitman-87

Forge Modder
  • Posts

    44
  • Joined

  • Last visited

Posts posted by pitman-87

  1. I'd figured out with the help of this tweet:

     

    You have to set the Sliderclass when generating the properites:

     

    teleportVolume = (float) configuration.get(CATEGORY_SOUND, "teleportVolume", 0.2,"", 0.0, 1.0).setConfigEntryClass(TF2TeleporterMod.proxy.getSliderClass()).getDouble();
    	spinVolume = (float) configuration.get(CATEGORY_SOUND, "spinVolume", 0.05, "", 0.0, 1.0).setConfigEntryClass(TF2TeleporterMod.proxy.getSliderClass()).getDouble();
    

     

    @Override
    public Class<? extends IConfigEntry> getSliderClass()
    {
    	return NumberSliderEntry.class;
    }

     

    Thats all!

     

    Remember to delete old configfiles, that have bugged me for hours.

  2. Hey guys,

     

    I love the new GuiConfig-System, but I'm struggling with the sliders.

    I don't really know how to register them the proper way.

     

    That's my code so far:

     

    ConfigHandler:

     

    package de.pitman87.TF2Teleporter.common;
    
    import java.io.File;
    
    import net.minecraftforge.common.config.Configuration;
    import cpw.mods.fml.client.event.ConfigChangedEvent;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    
    public class ConfigHandler
    {
    public static Configuration configuration;
    
    public static final String CATEGORY_SOUND = "sound";
    
    public static boolean hdTextures = false;
    public static boolean checkForUpdates = true;
    
    public static float teleportVolume = 0.2F;
    public static float spinVolume = 0.05F;
    public static int maxFrequencies;
    
    public static void init(File configFile)
    {
    	if (configuration == null)
    	{
    		configuration = new Configuration(configFile);
    		loadConfiguration();
    	}
    }
    
    private static void loadConfiguration()
    {
    	hdTextures = configuration.getBoolean("HDTextures", Configuration.CATEGORY_GENERAL, false, "set to true, if you want HD textures, needs restart");
    	checkForUpdates = configuration.getBoolean("checkForUpdates", Configuration.CATEGORY_GENERAL, true, "set to false, to turn off updatechecker");
    
    	maxFrequencies = configuration.getInt("numFrequencies", Configuration.CATEGORY_GENERAL, 100, 10, 10000, "amount of frequencies, could cause data loss of the teleporter locations");
    
    	teleportVolume = configuration.getFloat("teleportVolume", CATEGORY_SOUND, 0.2f, 0.0f, 1.0f, "");
    	spinVolume = configuration.getFloat("spinVolume", CATEGORY_SOUND, 0.05f, 0.0f, 1.0f, "");
    
    //		if (configuration.hasChanged())
    //		{
    		configuration.save();
    //		}
    }
    
    @SubscribeEvent
    public void onConfigurationChangedEvent(ConfigChangedEvent.OnConfigChangedEvent event)
    {
    	if (event.modID.equalsIgnoreCase(TF2TeleporterMod.MODID))
    	{
    		loadConfiguration();
    	}
    }
    }

     

     

     

    GuiFactory:

     

    package de.pitman87.TF2Teleporter.client.gui;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Set;
    
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraftforge.common.config.ConfigElement;
    import net.minecraftforge.common.config.Configuration;
    import cpw.mods.fml.client.IModGuiFactory;
    import cpw.mods.fml.client.config.ConfigGuiType;
    import cpw.mods.fml.client.config.DummyConfigElement;
    import cpw.mods.fml.client.config.DummyConfigElement.DummyCategoryElement;
    import cpw.mods.fml.client.config.GuiConfig;
    import cpw.mods.fml.client.config.GuiConfigEntries;
    import cpw.mods.fml.client.config.GuiConfigEntries.CategoryEntry;
    import cpw.mods.fml.client.config.GuiConfigEntries.NumberSliderEntry;
    import cpw.mods.fml.client.config.IConfigElement;
    import de.pitman87.TF2Teleporter.common.ConfigHandler;
    import de.pitman87.TF2Teleporter.common.TF2TeleporterMod;
    
    public class GuiFactory implements IModGuiFactory
    {
    @Override
    public void initialize(Minecraft minecraftInstance)
    {
    
    }
    
    @Override
    public Class<? extends GuiScreen> mainConfigGuiClass()
    {
    	return GuiModConfig.class;
    }
    
    @Override
    public Set<RuntimeOptionCategoryElement> runtimeGuiCategories()
    {
    	return null;
    }
    
    @Override
    public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element)
    {
    	return null;
    }
    
    @SuppressWarnings(
    { "rawtypes", "unchecked" })
    public static class GuiModConfig extends GuiConfig
    {
    	public GuiModConfig(GuiScreen guiScreen)
    	{
    		super(guiScreen, getConfigElements(), TF2TeleporterMod.MODID, false, false, GuiConfig.getAbridgedConfigPath(ConfigHandler.configuration.toString()));
    	}
    
    	private static List<IConfigElement> getConfigElements()
    	{
    		List<IConfigElement> list = new ArrayList<IConfigElement>();
    
    		list.addAll(new ConfigElement(ConfigHandler.configuration.getCategory(Configuration.CATEGORY_GENERAL)).getChildElements());
    		list.add(new DummyCategoryElement("Sound", "Sound", SoundEntry.class));
                
    		return list;
    	}
    
    	public static class SoundEntry extends CategoryEntry
    	{
    		public SoundEntry(GuiConfig owningScreen, GuiConfigEntries owningEntryList, IConfigElement prop)
    		{
    			super(owningScreen, owningEntryList, prop);
    		}
    
    		@Override
    		protected GuiScreen buildChildScreen()
    		{
    
    
    			List<IConfigElement> list = new ConfigElement(ConfigHandler.configuration.getCategory(ConfigHandler.CATEGORY_SOUND)).getChildElements();
    			List<IConfigElement> sound = new ArrayList<IConfigElement>();
    
    			for (IConfigElement ce : list)
    			{
    
    				sound.add(new DummyConfigElement<Double>(ce.getName(), Double.parseDouble((String) ce.getDefault()), ConfigGuiType.DOUBLE, ce.getName(), 0.0, 1.0).setCustomListEntryClass(NumberSliderEntry.class));
    			}
    
    			return new GuiConfig(this.owningScreen, list, this.owningScreen.modID,this.owningScreen.configID, false, false, "Sound");
    		}
    	}
    }
    }

     

     

    The most important part is this one:

     

    @Override
    protected GuiScreen buildChildScreen()
    {		
    List<IConfigElement> list = new ConfigElement(ConfigHandler.configuration.getCategory(ConfigHandler.CATEGORY_SOUND)).getChildElements();
    List<IConfigElement> sound = new ArrayList<IConfigElement>();
    
    for (IConfigElement ce : list)
    {
    	sound.add(new DummyConfigElement<Double>(ce.getName(), Double.parseDouble((String) ce.getDefault()), ConfigGuiType.DOUBLE, ce.getName(), 0.0, 1.0).setCustomListEntryClass(NumberSliderEntry.class));
    }
    
    return new GuiConfig(this.owningScreen, list, this.owningScreen.modID,this.owningScreen.configID, false, false, "Sound");
    }

     

    The Gui looks right so far, but the new values don't get saved and I couldn't figured out why.

     

    How the first Screen looks (general category):

     

    bd3f2d82c0.png

     

     

    How the secound screen looks (that's what I want it to be, but new values don't get saved):

     

    76ea03a647.png

     

     

    The secound screen when I use the "list" instead of "sounds" (gets saved regularly):

     

    0f5ac32a8d.png

     

     

     

    I appreciate any help, thanks.

  3. Hi guys I made a small API that people may use it, so I'm writing a tutorial, but people will need the source of the API.

    I don't want to offer my real source for various reasons, but they shall be able to decompile the API.

     

    The old (modloader-like) way don't work anymore (just putting the universal forge + the mod into minecraft.jar before decompiling with mcp).

     

    I also tried using fernflower, but the code is still obfuscathed: http://www.minecraftforge.net/forum/index.php/topic,2974.msg20255.html#msg20255

     

    So is there a proper way to decompile a forge mod?

     

     

  4. I get this error all the time with forge and optifine ( and it was already there in 1.4.4).

     

    I'm not sure if this is optifines "fault", if it is so, I am sorry to bother you :)

     

    2012-11-20 19:25:35 [iNFO] [sTDERR] java.lang.NullPointerException
    2012-11-20 19:25:35 [iNFO] [sTDERR] 	at cf.b(MemoryConnection.java:159)
    2012-11-20 19:25:35 [iNFO] [sTDERR] 	at cf.a(MemoryConnection.java:47)
    2012-11-20 19:25:35 [iNFO] [sTDERR] 	at iv.b(NetServerHandler.java:636)
    2012-11-20 19:25:35 [iNFO] [sTDERR] 	at gm.a(ServerConfigurationManager.java:89)
    2012-11-20 19:25:35 [iNFO] [sTDERR] 	at bdr.b(IntegratedServerListenThread.java:99)
    2012-11-20 19:25:35 [iNFO] [sTDERR] 	at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:691)
    2012-11-20 19:25:35 [iNFO] [sTDERR] 	at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:587)
    2012-11-20 19:25:35 [iNFO] [sTDERR] 	at bdo.q(IntegratedServer.java:110)
    2012-11-20 19:25:35 [iNFO] [sTDERR] 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:494)
    2012-11-20 19:25:35 [iNFO] [sTDERR] 	at fy.run(SourceFile:856)
    2012-11-20 19:25:35 [iNFO] [ForgeModLoader] Unloading dimension 0
    2012-11-20 19:25:35 [iNFO] [ForgeModLoader] Unloading dimension 1
    2012-11-20 19:25:36 [iNFO] [sTDERR] t: Ticking screen
    2012-11-20 19:25:36 [iNFO] [sTDERR] 	at net.minecraft.client.Minecraft.l(Minecraft.java:1548)
    2012-11-20 19:25:36 [iNFO] [sTDERR] 	at net.minecraft.client.Minecraft.J(Minecraft.java:858)
    2012-11-20 19:25:36 [iNFO] [sTDERR] 	at net.minecraft.client.Minecraft.run(Minecraft.java:783)
    2012-11-20 19:25:36 [iNFO] [sTDERR] 	at java.lang.Thread.run(Unknown Source)
    2012-11-20 19:25:36 [iNFO] [sTDERR] Caused by: java.lang.NullPointerException
    2012-11-20 19:25:36 [iNFO] [sTDERR] 	at aym.c(SourceFile:28)
    2012-11-20 19:25:36 [iNFO] [sTDERR] 	at net.minecraft.client.Minecraft.l(Minecraft.java:1541)
    2012-11-20 19:25:36 [iNFO] [sTDERR] 	... 3 more
    2012-11-20 19:25:46 [iNFO] [sTDOUT] Stopping!
    2012-11-20 19:25:46 [iNFO] [sTDOUT] SoundSystem shutting down...
    2012-11-20 19:25:46 [iNFO] [sTDOUT]     Author: Paul Lamb, www.paulscode.com
    
    

     

    aym = GuiDownloadTerrain

     

    It's the line  this.netHandler.addToSendQueue(new Packet0KeepAlive());  in:

     

    public void updateScreen()
    {
         ++this.updateCounter;
         if (this.updateCounter % 20 == 0)
         {
             this.netHandler.addToSendQueue(new Packet0KeepAlive());
         }
         if (this.netHandler != null)
         {
             this.netHandler.processReadPackets();
         }
    }
    

     

    or

    public void c()
    {
    this.b += 1;
    if (this.b % 20 == 0) {
         this.a.c(new dr());
    }
    if (this.a != null)
         this.a.d();
    }
    

     

    All mods get loaded proberly before.

     

    This happens when I'm loading a new world.

     

    But here is the clue, when I'm creating a new world, its loading. Then I go back to the main menu and load my old world, it's loading too, and the bug don't appear.

  5. Hi guys,

     

    I'm looking for an event or call like EntityJoinedWorld but for players, because I want to send specific worldinformation to the player when he joins the game or go through portals.

     

    All I found are the EntityJoinedWorld-Event (but it don't work with player) and the INetworkhandler (but it only gets called once the player joined the server).

     

    For now I save the last world in Client and check every tick if the world has changed, but it seems a bit buggy.

     

    Maybe there is a better solution for this :)

  6. You need to force update the area before sending the player there. Though it kills my mod download to help you take a look at my code

    https://github.com/DarkGuardsman/GSM-TP/blob/master/src/common/aTele/Main/BlockTP.java

    you need this to cause the chunks to load

    world.markBlockAsNeedsUpdate(i, j + b, k);

     

    I tried it, but it don't help :(

    Even force chunkloading don't help and sometimes it happens with the /tp x y z command too.

     

    I quess I figured it out and the force chunkloading itself on startup was a problem.

    If I remove it, both issues are gone.

     

  7. Hey guys,

     

    I have some issues with my TF2 teleporter mod, and I have no idea why that happens since 1.4.2 ( otherwise I wouldn ask here :) )

     

    1. Sometimes (SMP and SSP) when a player gets teleported to a location, the chunks won't load anymore.

    The player glitches around in the air (in creative mode it's possible to fly around).

    After that happens, nothing gets loaded anymore (entities stay on their place, squids are floating in midair, no new chunk updates).

    I know you wanna see some code, but I'm not sure if its relevant and if this is a bug of Forge or Minecraft or I missed something (maybe the server needs a call to pre-load some chunks since MC 1.4.2 or something)

    Everything I'm doing is sending the server a teleport request (sending a packet with coordinates) and the server sets the new player location with:

    player.setPositionAndUpdate(tp1.xCoord + 0.5F, tp1.yCoord + 0.3F, tp1.zCoord + 0.5F);

     

    My position after teleport:

     

    width=800 height=449http://www.abload.de/img/2012-11-14_20.39.17xnp0p.png[/img]

     

    I still can fly around but no new chunk-updates:

     

    width=800 height=449http://www.abload.de/img/2012-11-14_20.40.37yro1y.png[/img]

     

     

    2.

     

    I'm not sure if that issue exists since 1.4.2 or before.

    When I'm using a portal to the nether I spawn sometimes inside some blocks under or beside the nether portal (both ways).

    I have absolutely no idea why this is related to my teleporter mod, but many users reported that to me (and it happened to me sometimes too).

     

    I appreciate your help :)

     

    -pit

     

  8. Forge: 6.0.1.339

     

    When I'm using config files, all my itemIDs are over 31000, but I didn't give them such high values. This causes that many Items of my mods have the same ID from the config files, while I actually was using different IDs.

     

    Code:

    public static int itemIDSentryRed = 2820;
    public static int itemIDSentryBlue = 2824;
    public static int itemIDSentryBase = 2825;
    public static int itemIDSentryHead = 2826;
    public static int itemIDMonitor = 2821;
    public static int itemIDWrench = 2822;
    public static int itemIDGoldenWrench = 2823;
    
    .....
    
    @PreInit
    public void preInit(FMLPreInitializationEvent event)
    {
    	proxy.preInit();
    
    	Configuration configuration = new Configuration(event.getSuggestedConfigurationFile());
    	try
    	{
    		configuration.load();
    		Property prop;
    		prop = configuration.getItem("itemIDSentryRed", 2820);
    		itemIDSentryRed = prop.getInt(2820);
    		prop = configuration.getItem("itemIDSentryBlue", 2824);
    		itemIDSentryBlue = prop.getInt(2824);
    		prop = configuration.getItem("itemIDSentryBase", 2825);
    		itemIDSentryBase = prop.getInt(2825);
    		prop = configuration.getItem("itemIDSentryHead",  2826);
    		itemIDSentryHead = prop.getInt(2826);
    		prop = configuration.getItem("itemIDMonitor",  2821);
    		itemIDMonitor = prop.getInt(2821);
    		prop = configuration.getItem("itemIDWrench", 2822);
    		itemIDWrench = prop.getInt(2822);
    		prop = configuration.getItem("itemIDGoldenWrench",  2823);
    		itemIDGoldenWrench = prop.getInt(2823);
    		prop = configuration.get( configuration.CATEGORY_GENERAL,"shootVolume", "0.2");
    		prop.comment = "min: 0.0	max 1.0";
    		shootVolume = Float.valueOf(prop.value).floatValue();
    		prop = configuration.get(configuration.CATEGORY_GENERAL, "spotVolume", "0.2");
    		prop.comment = "min: 0.0	max 1.0";
    		spotVolume = Float.valueOf(prop.value).floatValue();
    		prop = configuration.get(configuration.CATEGORY_GENERAL, "explosionVolume", "0.5");
    		prop.comment = "min: 0.0	max 1.0";
    		explosionVolume = Float.valueOf(prop.value).floatValue();
    		prop = configuration.get(configuration.CATEGORY_GENERAL,"upgradeVolume",  "0.3");
    		prop.comment = "min: 0.0	max 1.0";
    		upgradeVolume = Float.valueOf(prop.value).floatValue();
    		prop = configuration.get(configuration.CATEGORY_GENERAL,"opsOnly",  false);
    		prop.comment = "Set to true, if only OPs are allowed to change the targets!";
    		opsOnly = prop.getBoolean(false);
    	} catch (Exception e)
    	{
    		FMLLog.log(Level.SEVERE, e, "TF2 Sentry has a problem loading it's configuration");
    		FMLLog.severe(e.getMessage());
    
    	} finally
    	{
    		configuration.save();
    	}
    }
    
    

     

    generated config:

    # Configuration file
    # Generated on 28.10.12 18:02
    
    ####################
    # general 
    ####################
    
    general {
       # min: 0.0	max 1.0
       explosionVolume=0.5
       # Set to true, if only OPs are allowed to change the targets!
       opsOnly=false
       # min: 0.0	max 1.0
       shootVolume=0.2
       # min: 0.0	max 1.0
       spotVolume=0.2
       # min: 0.0	max 1.0
       upgradeVolume=0.3
    }
    
    ####################
    # item 
    ####################
    
    item {
       itemIDGoldenWrench=31706
       itemIDMonitor=31708
       itemIDSentryBase=31710
       itemIDSentryBlue=31711
       itemIDSentryHead=31709
       itemIDSentryRed=31712
       itemIDWrench=31707
    }
    
    
    

     

    Only happens on Items,but  Blocks and other values are working fine.

    I'm not sure if this is a bug or I missed something  :)

  9.  

    3uq672et.png

     

    [embed=425,349]

    [/embed]

     

     

    nkhlubfh.png

     

    [embed=425,349]

    [/embed]

     

    All Mods are working at SSP, SMP and LAN!

     

    Downloads:

     

    SpecialArmor 1.3.2

    mirror  previous versions

     

    PrinterBlock 1.3.2b

    mirror  previous versions

     

     

    Sources of the other mods (last version 1.2.5)

     

    HD textures for Printerblock

     

     

    How to install:

     

    Put the zip-files into the mods-folder (gets generated by modloader/forge).

     

    SpecialArmor Description

     

     

    this mod gives you armor with that you can do special things

     

    fubg5noo.png <- Cape: You can glide with it

     

    pit9a3ab.png <- Speed Legs: You can run faster

     

    k3scggqb.png <- Diving Helmet: You do not drown under water

     

    bf8rxmth.png <- Fireplate: You can't die in Lava/Fire with it - inflames all mobs in a area of 2 blocks - if you press G, a 5x5 field of fire will appear | if you hold the G button a while before you released it, the field will increase by 1-10 blocks (max = 15x15 blocks)

     

    rpq9of2y.png <- Heavy Boots: You're slower and you fall faster (dont ask me why there are such boots, it wasnt my idea)

     

    afbuh5cy.png <- Spring: Is needed to craft something

     

    dobt4do8.png <- Jump Boots: You can jump higher (5 Blocks) - no falldamage

     

    gw3toqsd.png <- Magic substance: Is needed to craft things - You dont need to craft it in this order

     

    9jthz2bj.png <- Magic Boots: If you go over special blocks, they will be other blocks

    |previous block -> next block (if you go over it)|

    water->ice

    lava->obsidian

    dirt->grass

    cobblestone->cleanstone

    gold/iron/coal/diamondores->cleanstone (1gold/iron/coal/diamond jumps out, actually its only to break down faster)

     

    vt78iafx.png <- Hover Boots: You can go over water/lava and if you are on air and hold the space button, you glide a short time

     

    5jpdxmgv.png <- Obsidian Plate: You get no falldamage

     

    xy6cw4cb.png <- Chain: Is needed to craft chain armor

     

    g55fhu3l.pngcpbnxtem.pngy38n6gzw.pnge6voauv6.png <- Chain armor: Its the chain armor that is already ingame...

     

    a66oz944.png <- Slime Helmet: (from SlimeCraft) You can stick and move on the ceiling

     

    7ybzppgr.png <- TNT Plate: If you press G, it produces a explosion at your place and you dont get hurt from this explosion

     

    usxejbxx.pngu3ukdwe6.png <- Flower Plate: Sometimes it spreads flowers 1 block next to you if its a grass block

     

    bxppgc85.png <- Rocket: Is needed to craft something

     

    d5h8pu3h.png <- Jetpack middle: Is needed to craft something

     

    uyx4u8f2.png <- Jetpack: If you press the jump-key, you'll fly - No falldamage - If you put on the speed legs you are faster by flying

     

    5q33yg6g.png <- Skates: On the land your slower but on ice you dont slip and your faster

     

    gwmuculu.pngs3riqkrk.pngcjjn9mn9.png5dyij5mk.png <- Pork Armor: If you put on all the armor stuff, you'll get half a heart every 10 seconds

     

    ltnpf26f.pngxihlgc26.pngju7mxhmd.pngqgnlhnyx.png <- Cooked Pork Armor: If you put on all the armor stuff, you'll get a heart every 10 seconds

     

    csdemjuq.png <- Time-Helmet: If you put this helmet on, the time will speed up

     

    pxdc95rm.png <- Doublejump Boots: You can jump 2 times

     

    dlksnlef.png <- Dispenser Plate: If you have arrows in your inventory, the plate will shoot the arrows automatically on all mobs in a area of 10 blocks

     

     

     

    PrinterBlock Description

     

     

     

    With the printer block, you can paint with the different wool color and then you can place the wool in the world

    Maybe you need this if you paint much in your world

     

     

    ro3y8ba8.png

     

    jzq4afgq.png

     

    ewxc3tm4.png

     

    2a43yuxt.png

     

    5sexadof.png

     

    nkhlubfh.png

     

    j7lwhmuv.png

     

     

  10. SVKfJ.jpg

     

    1039ypm.jpg

     

    [embed=425,349]

    [/embed]

     

    [embed=425,349]

    [/embed]

     

    more videos:

     

     

    [embed=425,349]http://www.youtube.com/watch?v=DcW4z6W0miA&feature=player_embedded#![/embed]

     

    [embed=425,349]

    [/embed]

     

    [embed=425,349]

    [/embed]

     

     

     

    The API alone has no content, you need at least one FamPack!

     

    Downloads:

     

    Familiars API 1.3.2

    mirror  previous versions

     

    Extended FamPack 1.3.2

    mirror  previous versions

     

    DefaultMobs FamPack 1.3.2

    mirror  previous versions

     

     

    older FamPacks (1.2.5):

    Herobrine, Notch & Chuck Norris

     

    Elemental Dragons

     

    MLP:FiM Pack

     

     

    How to install:

    Do not install the mods into the minecraft.jar!

    Just put the downloaded zip-files into the mods-folder (gets generated by modloader/forge).

     

     

    If you want to create your own Familiar, take a look: http://www.minecraft.../#entry14723174

    Need to be updated.

     

     

    The Familiar mod includes a little familiar for the player, so it's not always so lonely in SSP.

     

    A Familiar is a kind of protector / companion that always follows the player.

    They are not tameable like dogs and do not occur in the wild. These can be equipped like items / armor, Dungeon Defenders has inspired me.

     

    The creatures do not only fly someone behind they also have a passive/active skill (attack by mobs, heal the player etc).

     

     

    Some are not available from the beginning, you need to unlock them first (buy with XP or unlock achievements).

     

     

    This mod is an API too, so anyone might make a complete MLP Familiar Pack or Pokemon or something ^^

     

     

    To equip them you have to use the FamGuide, you'll find there further info and how to unlock them.

     

    zwischenablage07iuknr.jpg

     

    To craft it, you'll need a book, gunpowder, spidereye, bones and rotten flesh.

     

    Content of Extended FamPack:

     

     

     

     

    image.php?img=63ravl.jpg

     

    436zuw.jpg

     

    178xh7.png

     

    2ftan1.png

     

    3kiacc.png

     

    41tx6v.png

     

     

     

     

    Content of DefaultMobs FamPack:

     

     

     

     

     

    6f8lkz.jpg

     

    73sx6n.jpg

     

    2tozfy.jpg

     

    3spzct.jpg

     

    760a7l.jpg

     

    8fflfj.jpg

     

    9qyazn.jpg

     

    4xskap.jpg

     

     

     

     

     

  11. siggujo.jpg

     

     

    All Mods are working at SSP, SMP and LAN!

     

     

     

    Downloads:

     

    TF2 Teleporter 1.4.2

    mirror  previous versions

     

    TF2 Sentry 1.4.2

    mirror  previous versions

     

    TF2 Dispenser 1.4.2

    mirror  previous versions

     

    TF2 TeamAddon 1.4.2

    mirror  previous versions

     

     

    HD textures:

     

     

     

    itemsentry9w4yh.pngitemsentryblue9j1tf.pngmonitor64yeusn.pngsentrybasegduep.pngsentryheadybuq6.pngwrench64xmu31.pngwrenchgold648wujl.png

    teleporterbasemurw.pngteleporterpropeller1uki.pngteleporteritemwum7.pngteleporteritemblueb3ck.png

    dispenseritembluewak3o.pngdispenseritemredygkf4.png

     

    Download HD Textures

     

    Just put the content into the mod-zips for Sentry, Teleporter and Dispenser.

     

     

     

     

     

    How to install:

     

     

    Put the zip-file into the mods-folder (gets generated by modloader/forge).

     

     

     

     

    Infos and Instructions:

     

     

     

     

    Teleporter:

    •     IDs: 233, 234, 2813, 2814, 2815, 2816 (configurable)
    •     100 possible frequencies (0-99)
    •     -1 is not a usable frequency
    •     only 2 teleporters can use the same frequency
    •     be sure to place both teleporters of the same frequency before you close minecraft, single teleporters outside loaded chunks lose their frequencies(fixed)
    •     before you can teleport again, leave the teleporter for a secound (it needs a cooldown)
    •     mobs can teleport too width=20 height=20http://static.minecraftforum.net/public/style_emoticons/default/biggrin.gif[/img]

    Sentry:

    •     IDs: 2820 to 2826 (configurable)
    •     2 upgrades
    •     higher range, faster shoot, more health and ammo per upgrade
    •     shoots rockets on 3rd upgrade
    •     use the wrench to upgrade the sentries
    •     golden wrench have a higher durability and upgrades/heals faster
    •     if the sentry get killed by the player it drops only a sentry level 1 (no matter which upgrade)
    •     if the sentry gets destroyed by something else, it only drops an iron ingot (one for each upgradelevel)
    •     mobs killed by sentry won't drop XP
    •     rightclick with the wrench on sentry shows up the status monitor (health, ammo, upgradestate, killcounter)

    Dispenser:

    • IDs: 240, 241, 2913 (configurable)
    • the dispenser heals, extinguishs, feeds, repairs your currently equipped item and neutralizes effects (positiv and negative!)
    • to refill energy use iron(100ep), gold(200ep) or diamonds(800ep)
    • healing: costs 2ep, gives a half heart
    • feeding: costs 2ep, reduce hunger by a half
    • repairing: costs 15ep, repairs 50 Uses
    • neutralizing effects: costs 10ep, cure all!

    Team Addon:

    • works with Teleporter, Sentry and Dispenser
    • only teammembers can place buildings (or spectators)
    • sentry: shoots players of opposite team
    • dispensers: only heals players of own team (and spectators)
    • teleporter: only teammember are able to use them (and spectators)
    • op only commands:

    red <player> sets a player to red team
    blu <player> sets a player to blu team
    spec <player> removes a player from teamlist
    redteam lists players of red team
    bluteam lists players of blu team
    enableteams enables TF2 Teams Addon
    disableteams disables TF2 Teams Addon
    

     

     

     

     

    Videos:

     

     

     

    [embed=425,349]

    [/embed]

     

    [embed=425,349]

    [/embed]

     

    [embed=425,349]

    [/embed]

     

    [embed=425,349]

    [/embed]

     

    [embed=425,349]

    [/embed]

     

    [embed=425,349]

    [/embed]

     

    [embed=425,349]http://www.youtube.com/watch?v=9iOx8nVOY8U&amp;feature=player_detailpage[/embed]

     

    [embed=425,349]

    [/embed]

     

     

     

     

    Screenshots:

     

     

     

    8v5ujo.jpg

     

    3teaw.png

     

    width=600 height=318http://www.abload.de/img/2011-12-01_00.26.36lnkvr.png[/img]

     

     

    4gur0x.jpg

     

     

    zwischenablage01hwzyc.jpg

     

    zwischenablage02ucj54svjfu.jpg

     

     

     

     

    Configs:

     

    You can customize BlockIDs, ItemIDs, SoundVolume and some other things within the .cfg-file (inside config-folder generated by forge).

     

    Teleporter Reciepes:

     

     

     

    zwischenablage01v8po.png

     

    zwischenablage02tkrf.png

     

    dffak0dj.png

     

      asfsfs20f5.png

     

      fgasdfgs24f7.png

     

      fysfgd6vyr.png

     

     

     

    Sentry Reciepes:

     

     

     

     

    1u4uzd.jpg

     

    2rhuet.jpg

     

    3aiu1y.jpg

     

    4fjuqt.jpg

     

    5gqum9.jpg

     

    69auhs.jpg

     

    72ru8b.jpg

     

     

     

     

    Dispenser Reciepes:

     

     

     

     

    23dkg8.jpg

     

    1pdk80.jpg

     

     

     

     

  12. Register the tileentity in your mod-file, and renderstuff in your clientproxy.

     

    And this belongs in your clientproxy too:

      private void CreateItem(Item anItem, int index, String name, String ru, String en)
        {
         anItem.setIconIndex(index);
         anItem.setItemName(name);
         anItem.setTextureFile("/ru/ulmc/png/ulmcitems.png");
         LanguageRegistry.instance().addStringLocalization(anItem.getItemName() + ".name", "ru_RU", ru);
         LanguageRegistry.instance().addStringLocalization(anItem.getItemName() + ".name", "en_US", en);
        
        }
        private void PrepareBlock(Block aBlock, String ru, String en)
        {
         // Register Blocks
         GameRegistry.registerBlock(aBlock);
         //Localization
         LanguageRegistry.instance().addStringLocalization(aBlock.getBlockName() + ".name", "ru_RU", ru);
         LanguageRegistry.instance().addStringLocalization(aBlock.getBlockName() + ".name", "en_US", en);
        
        }

     

    Example:

     

    Mod-file:

    package TF2.Teleporter.common;
    
    import java.util.EnumSet;
    import java.util.logging.Level;
    
    import net.minecraft.src.Block;
    import net.minecraft.src.Item;
    import net.minecraft.src.ItemStack;
    import net.minecraftforge.common.Configuration;
    import net.minecraftforge.common.Property;
    import cpw.mods.fml.common.FMLLog;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.Mod.PostInit;
    import cpw.mods.fml.common.Mod.PreInit;
    import cpw.mods.fml.common.Side;
    import cpw.mods.fml.common.SidedProxy;
    import cpw.mods.fml.common.TickType;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.event.FMLPostInitializationEvent;
    import cpw.mods.fml.common.event.FMLPreInitializationEvent;
    import cpw.mods.fml.common.network.NetworkMod;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.common.registry.TickRegistry;
    
    
    /**
    * @author pitman-87
    * 
    */
    
    @Mod(modid = "pitman-87_TF2_Teleporter", name = "TF2 Teleporter", version = "1.3.2")
    @NetworkMod(channels = {"TF2_Teleporter_C","TF2_Teleporter_S"},clientSideRequired = true, serverSideRequired = true,
    packetHandler = PacketHandler.class)
    
    
    public class TF2TeleporterMod
    {
    
    @SidedProxy(clientSide = "TF2.Teleporter.client.ClientProxy", serverSide = "TF2.Teleporter.common.CommonProxy")
    public static CommonProxy proxy;
    
    public static int blockIDblue = 233;
    public static int blockIDred = 234;
    public static int itemIDBlue = 2813;
    public static int itemIDRed = 2816;
    public static int itemIDBase = 2814;
    public static int itemIDPropeller = 2815;
    
    public static float teleportVolume = 0.2F;
    public static float spinVolume = 0.05F;
    
    public static Block teleporterBlockBlue;
    public static Block teleporterBlockRed;
    
    public static Item teleporterItemBlue;
    public static Item teleporterItemRed;
    public static Item teleporterBase;
    public static Item teleporterPropeller;
    
    public static boolean teamsEnabled = false;
    public static String itemsPath = "/TF2/Teleporter/sprites/TF2Items.png";
    
    @PreInit
    public void preInit(FMLPreInitializationEvent event)
    {
    	proxy.preInit();
    
    	Configuration configuration = new Configuration(event.getSuggestedConfigurationFile());
    	try
    	{
    		configuration.load();
    		Property prop;
    		prop = configuration.getOrCreateBlockIdProperty("blockIDblue", 233);
    		blockIDblue = prop.getInt(233);
    		prop = configuration.getOrCreateBlockIdProperty("blockIDred", 234);
    		blockIDred = prop.getInt(234);
    
    		prop = configuration.getOrCreateIntProperty("itemIDBlue", configuration.CATEGORY_ITEM, 2813);
    		itemIDBlue = prop.getInt(2813);
    		prop = configuration.getOrCreateIntProperty("itemIDRed", configuration.CATEGORY_ITEM, 2816);
    		itemIDRed = prop.getInt(2816);
    		prop = configuration.getOrCreateIntProperty("itemIDBase", configuration.CATEGORY_ITEM, 2814);
    		itemIDBase = prop.getInt(2814);
    		prop = configuration.getOrCreateIntProperty("itemIDPropeller", configuration.CATEGORY_ITEM, 2815);
    		itemIDPropeller = prop.getInt(2815);
    
    		prop = configuration.getOrCreateProperty("teleportVolume", configuration.CATEGORY_GENERAL, "0.2");
    		prop.comment = "min: 0.0	max 1.0";
    		teleportVolume = Float.valueOf(prop.value).floatValue();
    		prop = configuration.getOrCreateProperty("spinVolume", configuration.CATEGORY_GENERAL, "0.05");
    		prop.comment = "min: 0.0	max 1.0";
    		spinVolume = Float.valueOf(prop.value).floatValue();
    	} catch (Exception e)
    	{
    		FMLLog.log(Level.SEVERE, e, "TF2 Sentry has a problem loading it's configuration");
    		FMLLog.severe(e.getMessage());
    
    	} finally
    	{
    		configuration.save();
    	}
    }
    
    @Init
    public void load(FMLInitializationEvent evt)
    {
    
    
    
    	teleporterBlockBlue = new BlockTF2TeleporterBlue(blockIDblue).setHardness(0.5F).setResistance(2000F).setStepSound(Block.soundWoodFootstep).setBlockName("TF2 Teleporter");
    	teleporterBlockRed = new BlockTF2TeleporterRed(blockIDred).setHardness(0.5F).setResistance(2000F).setStepSound(Block.soundWoodFootstep).setBlockName("TF2 Teleporter");
    
    	teleporterItemBlue = new ItemTF2Teleporter(itemIDBlue).setItemName("TF2 Teleporter");
    	teleporterItemRed = new ItemTF2Teleporter(itemIDRed).setItemName("TF2 Teleporter");
    	teleporterBase = new ItemTF2TeleporterPiece(itemIDBase).setItemName("Teleporter Base");
    	teleporterPropeller = new ItemTF2TeleporterPiece(itemIDPropeller).setItemName("Teleporter Propeller");
    
    	proxy.load();
    	GameRegistry.registerBlock(teleporterBlockBlue);
    	GameRegistry.registerBlock(teleporterBlockRed);
    	GameRegistry.registerTileEntity(TileEntityTF2Teleporter.class, "TF2 Teleporter");
    
    	TickRegistry.registerTickHandler(new ServerTickHandler(EnumSet.of(TickType.SERVER)), Side.SERVER);
    
    	GameRegistry.addRecipe(new ItemStack(teleporterBase, 1), new Object[]
    	{ "X X", "XXX", "X X", Character.valueOf('X'), Item.ingotIron });
    	GameRegistry.addRecipe(new ItemStack(teleporterPropeller, 1), new Object[]
    	{ "#Y#", "YYY", "XXX", Character.valueOf('X'), Item.ingotIron, Character.valueOf('Y'), Item.redstone, Character.valueOf('#'), Block.torchRedstoneActive });
    	GameRegistry.addRecipe(new ItemStack(teleporterItemBlue, 1), new Object[]
    	{ "#", "X", "Y", Character.valueOf('X'), teleporterPropeller, Character.valueOf('Y'), teleporterBase, Character.valueOf('#'), new ItemStack(Item.dyePowder, 1, 4) });
    	GameRegistry.addRecipe(new ItemStack(teleporterItemRed, 1), new Object[]
    	{ "#", "X", "Y", Character.valueOf('X'), teleporterPropeller, Character.valueOf('Y'), teleporterBase, Character.valueOf('#'), new ItemStack(Item.dyePowder, 1, 1) });
    	GameRegistry.addRecipe(new ItemStack(teleporterItemRed, 1), new Object[]
    	{ "X", "Y", Character.valueOf('Y'), teleporterItemBlue, Character.valueOf('X'), new ItemStack(Item.dyePowder, 1, 1) });
    	GameRegistry.addRecipe(new ItemStack(teleporterItemBlue, 1), new Object[]
    	{ "X", "Y", Character.valueOf('Y'), teleporterItemRed, Character.valueOf('X'), new ItemStack(Item.dyePowder, 1, 4) });
    
    }
    
    @PostInit
    public void modsLoaded(FMLPostInitializationEvent evt)
    {
    
    }
    
    
    }
    

     

    clientproxy:

    package TF2.Teleporter.client;
    
    import java.util.EnumSet;
    
    import net.minecraft.src.EntityPlayer;
    import net.minecraft.src.SoundManager;
    import net.minecraft.src.World;
    import net.minecraftforge.client.MinecraftForgeClient;
    import net.minecraftforge.client.event.sound.SoundLoadEvent;
    import net.minecraftforge.common.MinecraftForge;
    import net.minecraftforge.event.ForgeSubscribe;
    import TF2.Teleporter.common.CommonProxy;
    import TF2.Teleporter.common.TF2TeleporterMod;
    import TF2.Teleporter.common.TileEntityTF2Teleporter;
    import cpw.mods.fml.client.FMLClientHandler;
    import cpw.mods.fml.client.registry.ClientRegistry;
    import cpw.mods.fml.common.Side;
    import cpw.mods.fml.common.TickType;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    import cpw.mods.fml.common.registry.TickRegistry;
    
    public class ClientProxy extends CommonProxy
    {
    
    @Override
    public void preInit()
    {
    	MinecraftForgeClient.preloadTexture(TF2TeleporterMod.itemsPath);
    	MinecraftForge.EVENT_BUS.register(this);
    }
    
    @Override
    public void load()
    {
    	TickRegistry.registerTickHandler(new ClientTickHandler(EnumSet.of(TickType.CLIENT)), Side.CLIENT);
    
    	LanguageRegistry.instance().addNameForObject(TF2TeleporterMod.teleporterBase, "en_US", "Teleporter Base");
    	LanguageRegistry.instance().addNameForObject(TF2TeleporterMod.teleporterPropeller, "en_US", "Teleporter Propeller");
    	LanguageRegistry.instance().addNameForObject(TF2TeleporterMod.teleporterItemBlue, "en_US", "Blue Teleporter");
    	LanguageRegistry.instance().addNameForObject(TF2TeleporterMod.teleporterItemRed, "en_US", "Red Teleporter");
    
    	ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTF2Teleporter.class, new TileEntityTF2TeleporterRenderer());
    
    }
    
    @ForgeSubscribe
    public void onSoundsLoaded(SoundLoadEvent event)
    {
    	SoundManager manager = event.manager;
    	String[] soundFiles =
    	{ "spin.ogg", "teleport.ogg" };
    	for (int i = 0; i < soundFiles.length; i++)
    	{
    		manager.soundPoolSounds.addSound(soundFiles[i], this.getClass().getResource("/TF2/Teleporter/Sounds/" + soundFiles[i]));
    	}
    }
    
    @Override
    public void openGui(EntityPlayer entityplayer, TileEntityTF2Teleporter tileentity)
    {
    	FMLClientHandler.instance().displayGuiScreen(entityplayer, new GuiTF2Teleporter(tileentity));
    }
    
    
    @Override
    public boolean isTeleporterActive(int xCoord, int yCoord, int zCoord)
    {
    
    	return TF2TeleporterDBClient.isActive(xCoord, yCoord, zCoord);
    }
    
    @Override
    public void initDB()
    {
    	TF2TeleporterDBClient.init();
    }
    
    @Override
    public World getClientWorld()
    {
    	return FMLClientHandler.instance().getClient().theWorld;
    }
    
    @Override
    public void addToDB(int f, int x, int y, int z)
    {
    	TF2TeleporterDBClient.add(f, x, y, z);
    }
    }
    

     

     

  13. Ok guys this isn't fun anymore, nothing is working, I changed every SidedPacketHandler to just ONE PacketHandler, and everything works fine in eclipse (build#200).

    And on server and client build #204.

     

    BUT with #build 232 and after, absolutly nothing is working anymore.

    When I'm using SidedPacketHandler: see first post.

    And when I'm using ONE packetHandler I get an "Channel is invalid"-error, and I'm pretty sure the channel name is right.

     

    2012-08-28 13:11:44 [iNFO] [ForgeModLoader] Forge Mod Loader version 3.0.160.340 for Minecraft client:1.3.2, server:1.3.2 loading
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] All core mods are successfully located
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] Discovering coremods
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] Found library file argo-2.25.jar present and correct in lib dir
    
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] Found library file guava-12.0.1.jar present and correct in lib dir
    
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] Found library file asm-all-4.0.jar present and correct in lib dir
    
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] Running coremod plugins
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] Running coremod plugin FMLCorePlugin
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] Coremod plugin FMLCorePlugin run successfully
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] Running coremod plugin FMLForgePlugin
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] Coremod plugin FMLForgePlugin run successfully
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] Validating minecraft
    2012-08-28 13:11:44 [FINEST] [ForgeModLoader] Minecraft validated, launching...
    2012-08-28 13:11:45 [iNFO] [sTDOUT] 27 achievements
    2012-08-28 13:11:45 [iNFO] [sTDOUT] 195 recipes
    2012-08-28 13:11:45 [iNFO] [sTDOUT] Setting user: pitman87, d162750add41673d73b93eed3836dbdfc4beb99f
    2012-08-28 13:11:45 [iNFO] [sTDOUT] LWJGL Version: 2.4.2
    2012-08-28 13:11:46 [iNFO] [ForgeModLoader] Attempting early MinecraftForge initialization
    2012-08-28 13:11:46 [iNFO] [ForgeModLoader] Completed early MinecraftForge initialization
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Building injected Mod Containers [cpw.mods.fml.common.FMLDummyContainer, net.minecraftforge.common.ForgeDummyContainer]
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Attempting to load mods contained in the minecraft jar file and associated classes
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Skipping known library file C:\Users\pitman\AppData\Roaming\.minecraft\bin\lwjgl.jar
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Skipping known library file C:\Users\pitman\AppData\Roaming\.minecraft\bin\jinput.jar
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Skipping known library file C:\Users\pitman\AppData\Roaming\.minecraft\bin\lwjgl_util.jar
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Found a minecraft related file at C:\Users\pitman\AppData\Roaming\.minecraft\bin\minecraft.jar, examining for mod candidates
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Skipping known library file C:\Users\pitman\AppData\Roaming\.minecraft\lib\argo-2.25.jar
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Skipping known library file C:\Users\pitman\AppData\Roaming\.minecraft\lib\guava-12.0.1.jar
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Skipping known library file C:\Users\pitman\AppData\Roaming\.minecraft\lib\asm-all-4.0.jar
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Minecraft jar mods loaded successfully
    2012-08-28 13:11:46 [iNFO] [ForgeModLoader] Searching C:\Users\pitman\AppData\Roaming\.minecraft\mods for mods
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Found a candidate zip or jar file Familiars.zip
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Found a candidate zip or jar file PrinterBlock_1.3.2.zip
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Found a candidate zip or jar file TeeLuk - Kopie.zip
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Found a candidate zip or jar file TF2_Teleporter_1.3.2a.zip
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Examining file minecraft.jar for potential mods
    2012-08-28 13:11:46 [iNFO] [ForgeModLoader] The mod container minecraft.jar appears to be missing an mcmod.info file
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Examining file Familiars.zip for potential mods
    2012-08-28 13:11:46 [iNFO] [ForgeModLoader] The mod container Familiars.zip appears to be missing an mcmod.info file
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Identified a FMLMod type mod Familiars.API.common.FamiliarsAPI
    2012-08-28 13:11:46 [FINEST] [ForgeModLoader] Parsed dependency info : [] [] [*]
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Identified a FMLMod type mod Familiars.DefaultMobs.common.DefaultMobPack
    2012-08-28 13:11:46 [FINEST] [ForgeModLoader] Parsed dependency info : [] [Familiars_API] []
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Identified a FMLMod type mod Familiars.ExtendedFamPack.common.ExtendedFamPack
    2012-08-28 13:11:46 [FINEST] [ForgeModLoader] Parsed dependency info : [] [Familiars_API] []
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Examining file PrinterBlock_1.3.2.zip for potential mods
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] Located mcmod.info file in file PrinterBlock_1.3.2.zip
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Identified a FMLMod type mod TeeLuk.PrinterBlock.common.PrinterBlockMod
    2012-08-28 13:11:46 [FINEST] [ForgeModLoader] Parsed dependency info : [] [] []
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Examining file TeeLuk - Kopie.zip for potential mods
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] Located mcmod.info file in file TeeLuk - Kopie.zip
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Identified a FMLMod type mod TeeLuk.SpecialArmor.common.SpecialArmorMod
    2012-08-28 13:11:46 [FINEST] [ForgeModLoader] Parsed dependency info : [] [] []
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Examining file TF2_Teleporter_1.3.2a.zip for potential mods
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] Located mcmod.info file in file TF2_Teleporter_1.3.2a.zip
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Identified a FMLMod type mod TF2.Teleporter.common.TF2TeleporterMod
    2012-08-28 13:11:46 [FINEST] [ForgeModLoader] Parsed dependency info : [] [] []
    2012-08-28 13:11:46 [iNFO] [ForgeModLoader] Forge Mod Loader has identified 8 mods to load
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Received a system property request ''
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] System property request managing the state of 0 mods
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] After merging, found state information for 0 mods
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Activating mod FML
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Activating mod Forge
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Enabling mod Familiars_API
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Activating mod Familiars_API
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Enabling mod Familiars_DefaultMobPack
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Activating mod Familiars_DefaultMobPack
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Enabling mod Familiars_ExtendedFamPack
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Activating mod Familiars_ExtendedFamPack
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Enabling mod teeluk_PrinterBlock
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Activating mod teeluk_PrinterBlock
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Enabling mod teeluk_SpecialArmor
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Activating mod teeluk_SpecialArmor
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Enabling mod pitman-87_TF2_Teleporter
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Activating mod pitman-87_TF2_Teleporter
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Verifying mod requirements are satisfied
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] All mod requirements are satisfied
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Sorting mods into an ordered list
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Mod sorting completed successfully
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Mod sorting data:
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] 	Familiars_API(Familiars API:1.3.2): Familiars.zip (before:*)
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] 	Familiars_DefaultMobPack(Familiars DefaultMobPack:1.3.2): Familiars.zip (after:Familiars_API)
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] 	Familiars_ExtendedFamPack(Familiars ExtendedFamPack:1.3.2): Familiars.zip (after:Familiars_API)
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] 	teeluk_PrinterBlock(PrinterBlock:1.3.2): PrinterBlock_1.3.2.zip ()
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] 	teeluk_SpecialArmor(SpecialArmor:1.3.2): TeeLuk - Kopie.zip ()
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] 	pitman-87_TF2_Teleporter(TF2 Teleporter:1.3.2): TF2_Teleporter_1.3.2a.zip ()
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] Posting state event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 to mod FML
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] State event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 delivered to mod FML
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] Posting state event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 to mod Forge
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] State event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 delivered to mod Forge
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] Posting state event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 to mod Familiars_API
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Attempting to inject @SidedProxy classes into Familiars_API
    2012-08-28 13:11:46 [iNFO] [sTDOUT] cpw.mods.fml.common.Mod$Instance
    2012-08-28 13:11:46 [iNFO] [sTDOUT] [cpw, mods, fml, common, Mod$Instance]
    2012-08-28 13:11:46 [iNFO] [sTDOUT] cpw.mods.fml.common.Mod$Metadata
    2012-08-28 13:11:46 [iNFO] [sTDOUT] [cpw, mods, fml, common, Mod$Metadata]
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] State event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 delivered to mod Familiars_API
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] Posting state event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 to mod Familiars_DefaultMobPack
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Attempting to inject @SidedProxy classes into Familiars_DefaultMobPack
    2012-08-28 13:11:46 [iNFO] [sTDOUT] cpw.mods.fml.common.Mod$Instance
    2012-08-28 13:11:46 [iNFO] [sTDOUT] [cpw, mods, fml, common, Mod$Instance]
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] State event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 delivered to mod Familiars_DefaultMobPack
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] Posting state event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 to mod Familiars_ExtendedFamPack
    2012-08-28 13:11:46 [sEVERE] [ForgeModLoader] Invalid channel name 'Familiars_Extended_C' : Channel name is too long (16 chars is maximum)
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] State event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 delivered to mod Familiars_ExtendedFamPack
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] Posting state event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 to mod teeluk_PrinterBlock
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Attempting to inject @SidedProxy classes into teeluk_PrinterBlock
    2012-08-28 13:11:46 [iNFO] [sTDOUT] cpw.mods.fml.common.Mod$Instance
    2012-08-28 13:11:46 [iNFO] [sTDOUT] [cpw, mods, fml, common, Mod$Instance]
    2012-08-28 13:11:46 [iNFO] [sTDOUT] cpw.mods.fml.common.Mod$Metadata
    2012-08-28 13:11:46 [iNFO] [sTDOUT] [cpw, mods, fml, common, Mod$Metadata]
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] State event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 delivered to mod teeluk_PrinterBlock
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] Posting state event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 to mod teeluk_SpecialArmor
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Attempting to inject @SidedProxy classes into teeluk_SpecialArmor
    2012-08-28 13:11:46 [iNFO] [sTDOUT] cpw.mods.fml.common.Mod$Instance
    2012-08-28 13:11:46 [iNFO] [sTDOUT] [cpw, mods, fml, common, Mod$Instance]
    2012-08-28 13:11:46 [iNFO] [sTDOUT] cpw.mods.fml.common.Mod$Metadata
    2012-08-28 13:11:46 [iNFO] [sTDOUT] [cpw, mods, fml, common, Mod$Metadata]
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] State event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 delivered to mod teeluk_SpecialArmor
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] Posting state event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 to mod pitman-87_TF2_Teleporter
    2012-08-28 13:11:46 [FINE] [ForgeModLoader] Attempting to inject @SidedProxy classes into pitman-87_TF2_Teleporter
    2012-08-28 13:11:46 [iNFO] [sTDOUT] cpw.mods.fml.common.Mod$Instance
    2012-08-28 13:11:46 [iNFO] [sTDOUT] [cpw, mods, fml, common, Mod$Instance]
    2012-08-28 13:11:46 [iNFO] [sTDOUT] cpw.mods.fml.common.Mod$Metadata
    2012-08-28 13:11:46 [iNFO] [sTDOUT] [cpw, mods, fml, common, Mod$Metadata]
    2012-08-28 13:11:46 [FINER] [ForgeModLoader] State event cpw.mods.fml.common.event.FMLConstructionEvent@11767553 delivered to mod pitman-87_TF2_Teleporter
    2012-08-28 13:11:46 [sEVERE] [ForgeModLoader] Fatal errors were detected during the transition from CONSTRUCTING to PREINITIALIZATION. Loading cannot continue
    2012-08-28 13:11:46 [sEVERE] [ForgeModLoader] 
    FML [Forge Mod Loader] (coremods) Unloaded->Constructed
    Forge [Minecraft Forge] (coremods) Unloaded->Constructed
    Familiars_API [Familiars API] (Familiars.zip) Unloaded->Constructed
    Familiars_DefaultMobPack [Familiars DefaultMobPack] (Familiars.zip) Unloaded->Errored
    Familiars_ExtendedFamPack [Familiars ExtendedFamPack] (Familiars.zip) Unloaded->Errored
    teeluk_PrinterBlock [PrinterBlock] (PrinterBlock_1.3.2.zip) Unloaded->Constructed
    teeluk_SpecialArmor [specialArmor] (TeeLuk - Kopie.zip) Unloaded->Constructed
    pitman-87_TF2_Teleporter [TF2 Teleporter] (TF2_Teleporter_1.3.2a.zip) Unloaded->Constructed
    2012-08-28 13:11:46 [sEVERE] [ForgeModLoader] The following problems were captured during this phase
    2012-08-28 13:11:46 [sEVERE] [ForgeModLoader] Caught exception from Familiars_ExtendedFamPack
    java.lang.RuntimeException: Channel name is invalid
    at cpw.mods.fml.common.network.NetworkRegistry.registerChannel(NetworkRegistry.java:91)
    at cpw.mods.fml.common.network.NetworkRegistry.registerChannel(NetworkRegistry.java:101)
    at cpw.mods.fml.common.network.NetworkModHandler.tryCreatingPacketHandler(NetworkModHandler.java:153)
    at cpw.mods.fml.common.network.NetworkModHandler.<init>(NetworkModHandler.java:94)
    at cpw.mods.fml.common.network.FMLNetworkHandler.registerNetworkMod(FMLNetworkHandler.java:227)
    at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:348)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
    at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
    at com.google.common.eventbus.EventBus.post(EventBus.java:268)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:124)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
    at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
    at com.google.common.eventbus.EventBus.post(EventBus.java:268)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:81)
    at cpw.mods.fml.common.Loader.loadMods(Loader.java:442)
    at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:138)
    at net.minecraft.client.Minecraft.a(Minecraft.java:405)
    at net.minecraft.client.Minecraft.run(Minecraft.java:737)
    at java.lang.Thread.run(Unknown Source)
    2012-08-28 13:11:46 [sEVERE] [ForgeModLoader] Caught exception from Familiars_DefaultMobPack
    java.lang.IllegalArgumentException: Can not set static Familiars.API.common.FamiliarsAPI field Familiars.API.common.FamiliarsAPI.instance to Familiars.DefaultMobs.common.DefaultMobPack
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
    at sun.reflect.UnsafeStaticObjectFieldAccessorImpl.set(Unknown Source)
    at java.lang.reflect.Field.set(Unknown Source)
    at cpw.mods.fml.common.FMLModContainer.parseSimpleFieldAnnotation(FMLModContainer.java:331)
    at cpw.mods.fml.common.FMLModContainer.processFieldAnnotations(FMLModContainer.java:255)
    at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:351)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
    at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
    at com.google.common.eventbus.EventBus.post(EventBus.java:268)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:124)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
    at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
    at com.google.common.eventbus.EventBus.post(EventBus.java:268)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:81)
    at cpw.mods.fml.common.Loader.loadMods(Loader.java:442)
    at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:138)
    at net.minecraft.client.Minecraft.a(Minecraft.java:405)
    at net.minecraft.client.Minecraft.run(Minecraft.java:737)
    at java.lang.Thread.run(Unknown Source)
    2012-08-28 13:11:56 [iNFO] [sTDERR] cpw.mods.fml.common.LoaderException: java.lang.RuntimeException: Channel name is invalid
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.LoadController.transition(LoadController.java:102)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.Loader.loadMods(Loader.java:443)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:138)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at net.minecraft.client.Minecraft.a(Minecraft.java:405)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at net.minecraft.client.Minecraft.run(Minecraft.java:737)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at java.lang.Thread.run(Unknown Source)
    2012-08-28 13:11:56 [iNFO] [sTDERR] Caused by: java.lang.RuntimeException: Channel name is invalid
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.network.NetworkRegistry.registerChannel(NetworkRegistry.java:91)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.network.NetworkRegistry.registerChannel(NetworkRegistry.java:101)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.network.NetworkModHandler.tryCreatingPacketHandler(NetworkModHandler.java:153)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.network.NetworkModHandler.<init>(NetworkModHandler.java:94)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.network.FMLNetworkHandler.registerNetworkMod(FMLNetworkHandler.java:227)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:348)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at java.lang.reflect.Method.invoke(Unknown Source)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.post(EventBus.java:268)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:124)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at java.lang.reflect.Method.invoke(Unknown Source)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at com.google.common.eventbus.EventBus.post(EventBus.java:268)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:81)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	at cpw.mods.fml.common.Loader.loadMods(Loader.java:442)
    2012-08-28 13:11:56 [iNFO] [sTDERR] 	... 4 more
    

     

     

    package Familiars.ExtendedFamPack.common;
    
    import Familiars.API.common.FamiliarWatcherServer;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.Mod.PostInit;
    import cpw.mods.fml.common.Mod.PreInit;
    import cpw.mods.fml.common.SidedProxy;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.event.FMLPostInitializationEvent;
    import cpw.mods.fml.common.event.FMLPreInitializationEvent;
    import cpw.mods.fml.common.network.NetworkMod;
    
    /**
    * @author pitman-87
    * 
    */
    
    @Mod(modid = "Familiars_ExtendedFamPack", name = "Familiars ExtendedFamPack", version = "1.3.2", dependencies = "after:Familiars_API")
    @NetworkMod(channels = {"Familiars_Extended_C"},clientSideRequired = true, serverSideRequired = true,  packetHandler = PacketHandler.class)
    public class ExtendedFamPack
    {
    
    @SidedProxy(clientSide = "Familiars.ExtendedFamPack.client.ClientProxy", serverSide = "Familiars.ExtendedFamPack.common.CommonProxy")
    public static CommonProxy proxy;
    
    @PreInit
    public void preInit(FMLPreInitializationEvent event)
    {
    	proxy.preInit();
    
    }
    
    @Init
    public void load(FMLInitializationEvent evt)
    {
    
    	FamiliarWatcherServer.registerFamiliar("Fairy", FamiliarFairy.class, 20);
    	FamiliarWatcherServer.registerFamiliar("Navi", FamiliarNavi.class, 21);
    	FamiliarWatcherServer.registerFamiliar("1UP", Familiar1Up.class, 22);
    	FamiliarWatcherServer.registerFamiliar("Rana", FamiliarRana.class, 23);
    	FamiliarWatcherServer.registerFamiliar("Cube", FamiliarCompanionCube.class, 24);
    	proxy.load();
    
    }
    
    @PostInit
    public void modsLoaded(FMLPostInitializationEvent evt)
    {
    
    }
    
    }
    

  14. So I have played around a bit and found out that only SidedPackethandler don't work.

    If you don't have one, it should work:

     

    @Mod(modid = "teeluk_PrinterBlock", name = "PrinterBlock", version = "1.3.2")
    @NetworkMod(clientSideRequired = true, serverSideRequired = true,
    channels = {"PrinterBlock_S"}, 
    packetHandler = ServerPacketHandler.class)
    

     

    So is this a bug or, did you removed SidedPacketHandler, and I have to recode a bit?

  15. For some reasons almost all my mods don't work with forge build #232.

     

    The server packethandler don't recieve information from client anymore (SMP only).

    There is no crash or something, the server just don't recieve the packets.

    Everything worked fine until build #204 (last one I tried).

     

    Example:

     

    Mod-file:

    package TeeLuk.PrinterBlock.common;
    
    import java.util.logging.Level;
    
    import net.minecraft.src.Block;
    import net.minecraft.src.Item;
    import net.minecraft.src.ItemStack;
    import net.minecraftforge.common.Configuration;
    import net.minecraftforge.common.Property;
    
    
    import cpw.mods.fml.common.FMLLog;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.SidedProxy;
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.Mod.PostInit;
    import cpw.mods.fml.common.Mod.PreInit;
    import cpw.mods.fml.common.Mod.ServerStarted;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.event.FMLPostInitializationEvent;
    import cpw.mods.fml.common.event.FMLPreInitializationEvent;
    import cpw.mods.fml.common.event.FMLServerStartedEvent;
    import cpw.mods.fml.common.network.NetworkMod;
    import cpw.mods.fml.common.network.NetworkMod.SidedPacketHandler;
    import cpw.mods.fml.common.registry.GameRegistry;
    
    
    /**
    * @author pitman-87
    * 
    */
    
    @Mod(modid = "teeluk_PrinterBlock", name = "PrinterBlock", version = "1.3.2")
    @NetworkMod(clientSideRequired = true, serverSideRequired = true,
    serverPacketHandlerSpec = @SidedPacketHandler(channels = {"PrinterBlock_S"}, packetHandler = ServerPacketHandler.class)
    )
    
    public class PrinterBlockMod
    {
    
    @SidedProxy(clientSide = "TeeLuk.PrinterBlock.client.ClientProxy", serverSide = "TeeLuk.PrinterBlock.common.CommonProxy")
    public static CommonProxy proxy;
    
    public static int blockID = 222;
    public static Block printerBlock;
    public static String blocksPath = "/TeeLuk/PrinterBlock/Sprites/blocks.png";
    
    @PreInit
    public void preInit(FMLPreInitializationEvent event)
    {
    	proxy.preInit();
    
    	Configuration configuration = new Configuration(event.getSuggestedConfigurationFile());
    	try
    	{
    		configuration.load();
    		Property prop;
    		prop = configuration.getOrCreateBlockIdProperty("blockID", 222);
    		blockID = prop.getInt(222);
    
    	} catch (Exception e)
    	{
    		FMLLog.log(Level.SEVERE, e, "PrinterBlock has a problem loading it's configuration");
    		FMLLog.severe(e.getMessage());
    
    	} finally
    	{
    		configuration.save();
    	}
    }
    
    @Init
    public void load(FMLInitializationEvent evt)
    {
    
    	printerBlock = (new BlockPrinter(blockID)).setHardness(0.2F).setStepSound(Block.soundPowderFootstep).setBlockName("printer");
    
    
    	proxy.load();
    	GameRegistry.registerBlock(printerBlock);
    
    	GameRegistry.addRecipe(new ItemStack(printerBlock), new Object[]
    	{ "ABC", "#X#", "###", Character.valueOf('#'), Item.ingotIron, Character.valueOf('X'), new ItemStack(Block.cloth, 1, 0), Character.valueOf('A'), new ItemStack(Item.dyePowder, 0, 1), Character.valueOf('B'), new ItemStack(Item.dyePowder, 0, 2), Character.valueOf('C'), new ItemStack(Item.dyePowder, 0, 4) });
    
    }
    
    @PostInit
    public void modsLoaded(FMLPostInitializationEvent evt)
    {
    
    }
    
    @ServerStarted
    public void serverStarted(FMLServerStartedEvent event)
    {
    }
    }
    

     

    Sending packet to server:

     

    package TeeLuk.PrinterBlock.client;
    
    import java.io.ByteArrayOutputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    
    import net.minecraft.src.Block;
    import net.minecraft.src.GuiButton;
    import net.minecraft.src.GuiScreen;
    import net.minecraft.src.Packet250CustomPayload;
    import net.minecraft.src.World;
    
    import org.lwjgl.opengl.GL11;
    
    import cpw.mods.fml.common.network.PacketDispatcher;
    
    public class GuiPrinter extends GuiScreen
    {
    
    .......................
    
    private void print()
    {
    
    	try
    	{
    
    		for (int layer = 0; layer < 100; layer++)
    		{
    			if (visitedLayer[layer])
    			{
    				ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    				DataOutputStream data = new DataOutputStream(bytes);
    				int[] dataInt =
    				{ worldObj.getWorldInfo().getDimension(), posX, posY, posZ, mData, direction };
    
    				for (int i = 0; i < dataInt.length; i++)
    				{
    					data.writeInt(dataInt[i]);
    				}
    
    				data.writeInt(layer);
    
    				for (int l1 = 0; l1 < yLength; l1++)
    				{
    					for (int l2 = 0; l2 < xLength; l2++)
    					{
    						data.writeInt(blocks[layer][l1][l2]);
    					}
    				}
    
    				Packet250CustomPayload pkt = new Packet250CustomPayload();
    				pkt.channel = "PrinterBlock_S";
    				pkt.data = bytes.toByteArray();
    				pkt.length = bytes.size();
    
    				PacketDispatcher.sendPacketToServer(pkt);
    			}
    		}
    	} catch (IOException e)
    	{
    	}
    
    }
    ...............................
    
    
    
    }

     

    package TeeLuk.PrinterBlock.common;
    
    import com.google.common.io.ByteArrayDataInput;
    import com.google.common.io.ByteStreams;
    
    import net.minecraft.server.MinecraftServer;
    import net.minecraft.src.Block;
    import net.minecraft.src.NetworkManager;
    import net.minecraft.src.Packet250CustomPayload;
    import net.minecraft.src.World;
    import cpw.mods.fml.common.network.IPacketHandler;
    import cpw.mods.fml.common.network.Player;
    
    public class ServerPacketHandler implements IPacketHandler
    {
    
    @Override
    public void onPacketData(NetworkManager manager, Packet250CustomPayload packet, Player player)
    {
    	if (packet.data == null)
    	{
    		return;
    	}
    
    	ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data);
    
    	print(MinecraftServer.getServer().worldServerForDimension(dat.readInt()), dat.readInt(), dat.readInt(), dat.readInt(), dat.readInt(), dat.readInt(), 44, 44, dat);
    
    }
    
    public static void print(World worldObj, int posX, int posY, int posZ, int mData, int direction, int yLength, int xLength, ByteArrayDataInput dat)
    {
    	int[][] blocks = new int[yLength][xLength];
    	int layer = dat.readInt();
    	for (int l1 = 0; l1 < yLength; l1++)
    	{
    		for (int l2 = 0; l2 < xLength; l2++)
    		{
    			blocks[l1][l2] = dat.readInt();
    		}
    	}
                    doStuff()......
            }
    

     

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.