pitman-87
-
Posts
44 -
Joined
-
Last visited
Posts posted by pitman-87
-
-
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):
How the secound screen looks (that's what I want it to be, but new values don't get saved):
The secound screen when I use the "list" instead of "sounds" (gets saved regularly):
I appreciate any help, thanks.
-
Did you managed now to build your mod in dependency of another?
Im still failing.
Where did you put your .jar exactly? (related to this snipped: classpath 'com.radixshock.radixcore:RadixCore:1.0.0')
-
There is an easier way to do networking. Ive made a simple example mod
https://dl.dropboxusercontent.com/u/3096920/NetworkExampleMod.zip
The Example works pretty good, but the ServerPacketHandler have to be registered inside load() of the mod-class and not in the commonProxy.
-
It would be cool when such features comes with forge itself.
-
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?
-
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.
-
-
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
-
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.
-
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:
http://www.abload.de/img/2012-11-14_20.39.17xnp0p.png[/img]
I still can fly around but no new chunk-updates:
http://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
-
There is a mirror to mediafire.
-
Ok thats new thx
-
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
-
-
Animal using teleporters isn't a bug
-
[embed=425,349]
[/embed][embed=425,349]
[/embed]All Mods are working at SSP, SMP and LAN!
Downloads:
SpecialArmor 1.3.2
PrinterBlock 1.3.2b
Sources of the other mods (last version 1.2.5)
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
<- Cape: You can glide with it
<- Speed Legs: You can run faster
<- Diving Helmet: You do not drown under water
<- 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)
<- Heavy Boots: You're slower and you fall faster (dont ask me why there are such boots, it wasnt my idea)
<- Spring: Is needed to craft something
<- Jump Boots: You can jump higher (5 Blocks) - no falldamage
<- Magic substance: Is needed to craft things - You dont need to craft it in this order
<- 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)
<- Hover Boots: You can go over water/lava and if you are on air and hold the space button, you glide a short time
<- Obsidian Plate: You get no falldamage
<- Chain: Is needed to craft chain armor
<- Chain armor: Its the chain armor that is already ingame...
<- Slime Helmet: (from SlimeCraft) You can stick and move on the ceiling
<- TNT Plate: If you press G, it produces a explosion at your place and you dont get hurt from this explosion
<- Flower Plate: Sometimes it spreads flowers 1 block next to you if its a grass block
<- Rocket: Is needed to craft something
<- Jetpack middle: Is needed to craft something
<- Jetpack: If you press the jump-key, you'll fly - No falldamage - If you put on the speed legs you are faster by flying
<- Skates: On the land your slower but on ice you dont slip and your faster
<- Pork Armor: If you put on all the armor stuff, you'll get half a heart every 10 seconds
<- Cooked Pork Armor: If you put on all the armor stuff, you'll get a heart every 10 seconds
<- Time-Helmet: If you put this helmet on, the time will speed up
<- Doublejump Boots: You can jump 2 times
<- 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
-
[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
Extended FamPack 1.3.2
DefaultMobs FamPack 1.3.2
older FamPacks (1.2.5):
Herobrine, Notch & Chuck Norris
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.
To craft it, you'll need a book, gunpowder, spidereye, bones and rotten flesh.
Content of Extended FamPack:
Content of DefaultMobs FamPack:
-
All Mods are working at SSP, SMP and LAN!
Downloads:
TF2 Teleporter 1.4.2
TF2 Sentry 1.4.2
TF2 Dispenser 1.4.2
TF2 TeamAddon 1.4.2
HD textures:
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 http://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&feature=player_detailpage[/embed]
[embed=425,349]
[/embed]Screenshots:
Configs:
You can customize BlockIDs, ItemIDs, SoundVolume and some other things within the .cfg-file (inside config-folder generated by forge).
Teleporter Reciepes:
Sentry Reciepes:
Dispenser Reciepes:
-
IDs: 233, 234, 2813, 2814, 2815, 2816 (configurable)
-
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); } }
-
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) { } }
-
I really hate it to push, but I believe, that's a serious bug.
-
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?
-
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()...... }
-
Figured it out, i was using an extra field for the textures (was of course not synchronised with the server ^^)
Anyway, thx for your helb and your time
[solved][1.7.10] Need help with sliders for ConfigGui
in Modder Support
Posted
I'd figured out with the help of this tweet:
You have to set the Sliderclass when generating the properites:
Thats all!
Remember to delete old configfiles, that have bugged me for hours.