<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:01:21] <RANKSHANK> how so?
L2[00:02:48] <Delenas> I didn't realize the initCapabilities doesn't take hands into account.
L3[00:03:01] <Delenas> So I need to do a bit of hackery with EnumFAcing to support both hands.
L4[00:04:07] <RANKSHANK> Fair enough :P
L5[00:05:23] <Delenas> But it works :3
L6[00:06:51] ⇨ Joins: Saucier (~saucier@p5DC19842.dip0.t-ipconnect.de)
L7[00:12:02] <Saucier> Which event should I use to trigger a config file sync between server and client (after connecting to the server) ? PlayerLoggedInEvent ? Or something else ?
L8[00:16:32] ⇦ Quits: Brokkoli (~Brokkoli@p5B23C8B2.dip0.t-ipconnect.de) (Quit: Die Sprache der Politik ist daf�r gemacht, dass L�gen wahr klingen und das T�ten angemessen wirkt. (George Orwell))
L9[00:18:52] *** TTFTCUTS is now known as TTFT|Away
L10[00:19:38] <killjoy> Saucier, that should work
L11[00:19:52] <killjoy> as long as you have access to the player entity
L12[00:20:34] ⇦ Quits: Ordinastie_ (~Ordinasti@87-231-58-94.rev.numericable.fr) (Quit: Leaving)
L13[00:21:58] *** cpw is now known as cpw|out
L14[00:23:36] ⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L15[00:24:10] <Saucier> ok, thank you. Just to be sure, the event does only trigger server-side, right ?
L16[00:25:10] <Delenas> So.. making the PR now.
L17[00:25:30] <Delenas> Soon as patches generate.
L18[00:27:12] *** mrkirby153 is now known as kirby|gone
L19[00:28:04] ⇦ Quits: killjoy (~killjoy@cpe-2606-A000-1118-C151-FC94-205A-6090-F08B.dyn6.twc.com) (Ping timeout: 198 seconds)
L20[00:32:39] *** linuxdaemon is now known as opinion
L21[00:34:14] *** kroeser|away is now known as kroeser
L22[00:34:54] *** opinion is now known as linuxdaemon
L23[00:40:01] <RANKSHANK> Should I modify my PR so that the effect hooks are handled like IItemColor-trade some lookup overhead for smaller patches/better consistency?
L24[00:41:56] <FusionLord> Whoo didn't brick, and got CM installed \o/
L25[00:47:46] *** kroeser is now known as kroeser|away
L26[00:49:37] <Delenas> The Rangemap is real
L27[00:49:44] <Delenas> Took 10 minutes to do that x.x
L28[00:54:25] *** Darkevilmac is now known as DarkevilAway
L29[00:55:40] ⇦ Quits: Abastro (~abab9579@112.166.128.227) (Ping timeout: 190 seconds)
L30[00:56:23] ⇨ Joins: quadraxis (~chatzilla@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L31[01:00:29] <AKTheKnight> Saucier, here is what Bagginses uses event wise to sync https://github.com/lorddusk/Bagginses/blob/1.9.4/src/main/java/nl/lang2619/bagginses/event/PlayerServerEventHandler.java
L32[01:01:08] <AKTheKnight> The join only fires serverside, the leave client side when I reset to client configs
L33[01:02:43] *** minecreatr is now known as Mine|dreamland
L34[01:07:24] ⇦ Quits: quadraxis (~chatzilla@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Quit: ChatZilla 0.9.92 [Firefox 47.0.1/20160623154057])
L35[01:07:36] <Delenas> https://github.com/MinecraftForge/MinecraftForge/pull/3073 Ping @mezz, because requested
L36[01:11:50] ⇦ Quits: Upthorn (~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net) (Ping timeout: 192 seconds)
L37[01:15:04] <Delenas> ..just noticed I never removed the entity bit from the mod name or network handler. Oop. >.>
L38[01:28:15] <Saucier> @AKTheKnight Thank you, I'll look into that. I'm currently looking through Mekanism's Github, but those big projects can be annoying to navigate. So many files ;_;
L39[01:29:05] ⇦ Quits: mallrat208 (~mallrat20@184-88-190-37.res.bhn.net) (Quit: Leaving)
L40[01:30:02] <AKTheKnight> Yup haha I know the feeling
L41[01:43:28] ⇨ Joins: agowa338 (~Thunderbi@p54919CA8.dip0.t-ipconnect.de)
L42[01:45:52] <mezz> thanks Delenas
L43[01:46:57] ⇦ Quits: GunnerWolf (~GunnerWol@cpc13-shef10-2-0-cust189.17-1.cable.virginm.net) (Ping timeout: 186 seconds)
L44[01:47:08] <Delenas> I'm still not exactly positive I'm doing capabilities right.
L45[01:47:16] <mezz> I'll look it over
L46[01:47:27] <mezz> what capability are you working with?
L47[01:47:44] <Delenas> CapabilityGuiProvider- what that pull adds.
L48[01:47:57] <mezz> ok
L49[01:48:13] <Delenas> Specifically, the cast to IGuiProvider and whatnot.
L50[01:48:42] <Delenas> Is that intended, or should one get that as Capability___ instead?
L51[01:48:48] <mezz> let me see
L52[01:50:19] <mezz> still reading but your code style is a bit off
L53[01:50:42] <mezz> @Override usually goes on its own line
L54[01:53:17] <Delenas> Blame the formatter.
L55[01:54:04] <mezz> getCapability should never have to cast
L56[01:54:11] ⇨ Joins: Abastro (~abab9579@112.166.128.227)
L57[01:54:43] ⇦ Quits: McJty (~jorrit@94-225-203-206.access.telenet.be) (Quit: Leaving)
L58[01:54:57] <mezz> when you have Capability<CapabilityGuiProvider> GUI_PROVIDER_CAPABILITY
L59[01:55:13] <mezz> that means it should return a CapabilityGuiProvider from tile.getCapability(GUI_PROVIDER_CAPABILITY
L60[01:55:49] <mezz> you probably want a Capability<IGuiProvider> ?
L61[01:56:59] <Delenas> Ah, yes
L62[01:57:24] <Delenas> Should I merge lines on single-line methods?
L63[01:57:47] <Delenas> Like "void method() { doStuff(); }" ?
L64[01:58:13] <mezz> forge doesn't use single-line anything very often, only in patches
L65[01:58:25] <mezz> when I've written PRs I do full braces on everything
L66[01:58:45] <mezz> and across as many lines as necessary
L67[01:59:24] <mezz> from what I've seen lex is not a big fan of early-returns, preferring nesting instead
L68[01:59:28] <theFlaxbeard> Is there any way to access fog density while a player is underwater?
L69[01:59:34] <MCPBot_Reborn> [TEST CSV] Pushing snapshot_20160710 mappings to Forge Maven.
L70[01:59:38] <MCPBot_Reborn> [TEST CSV] Maven upload successful for mcp_snapshot-20160710-1.10.2.zip (mappings = "snapshot_20160710" in build.gradle).
L71[01:59:38] <mezz> at least when there are many early returns in a method
L72[01:59:44] <theFlaxbeard> For some reason RenderFogEvent only triggers when not underwater...
L73[01:59:48] <MCPBot_Reborn> Semi-live (every 10 min), Snapshot (daily ~3:00 EST), and Stable (committed) MCPBot mapping exports can be found here: http://export.mcpbot.bspk.rs/
L74[02:00:18] <mezz> theFlaxbeard, there are mods that let you see underwater. Mariculture has scuba goggles or something like that I think
L75[02:00:29] <mezz> maybe you can look there?
L76[02:00:32] <theFlaxbeard> I'll take a look there yeah
L77[02:01:14] <Delenas> So, is the early return in ForgeGuiHandler discouraged?
L78[02:01:40] <Abastro> There is an event named RenderBlockOverlayEvent which controls Fire/Underwater/Suffocation overlay
L79[02:02:33] <mezz> Delenas, yeah except maybe the first if (provider == null) check
L80[02:02:59] <mezz> also make sure your if statements are spaced properly. you have some weird spacing inconsistencies
L81[02:03:11] <theFlaxbeard> Abastro: Yup, got that. Trying to get the fog to go away
L82[02:03:39] <theFlaxbeard> Trying to see if there's somewhere I can use setFogDensity that will actually affect something
L83[02:04:00] <Abastro> I think it has nothing to do with fog density.
L84[02:04:12] <Delenas> Such as?
L85[02:04:31] <Delenas> I think Forge's provided formatter is royally f** the code style up.
L86[02:04:35] <Abastro> theFlaxbear.d: As far as I know, it's just underwater an overlay
L87[02:04:35] <mezz> if(provider == null) should be if (provider == null)
L88[02:04:56] <mezz> you also have a if(world == null )
L89[02:05:03] <mezz> which is just, not right by any standard heh
L90[02:05:15] <RANKSHANK> Forge provides a formatter? I've been going through my submissions manually :P
L91[02:05:23] <theFlaxbeard> Abastro: The water breathing potion effect decreases fog density - problem is the forge event that triggers at the same time only triggers when you're not in a liquid
L92[02:05:28] <mezz> yeah I've never used or known about their formatter
L93[02:06:28] ⇦ Quits: rebecca (~rebecca@209.95.50.160) (Ping timeout: 198 seconds)
L94[02:06:34] <Delenas> It's under the wiki, and it's apparently quite shit
L95[02:06:42] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L96[02:06:47] <Delenas> Because I'm having more headaches than it being useful.
L97[02:06:54] <mezz> probably very dusty
L98[02:07:00] <RANKSHANK> ahh looks like not reading thoroughly has saved me for once :P
L99[02:07:03] <Abastro> TheFlaxbear.d: I didn't know that the fog density is changed in liquid.
L100[02:07:04] ⇨ Joins: VikeStep (~VikeStep@101.184.243.180)
L101[02:07:14] <Tazz> yo what do people think about Javascript's objects..specifically where you can do something like var x = undefined || 20; and it resolves to 20 (or is it null?), Im thinking about making this a feature of eschelle XD
L102[02:07:37] ⇨ Joins: rebecca_ (~rebecca@209.95.50.24)
L103[02:07:54] <theFlaxbeard> I might end up granting the player the water breathing effect on the client
L104[02:08:06] <Abastro> Then EntityViewRenderEvent.FogDensity will let you modify the density.
L105[02:09:01] <Abastro> EntityRenderer#setupFog contains the fog code for water & water breathing.
L106[02:09:03] <theFlaxbeard> The event only fires when the player isn't in water
L107[02:09:14] <theFlaxbeard> Which is really infuriating :P
L108[02:09:52] <Abastro> Wow?
L109[02:10:15] <mezz> Are you sure underwater is fog any not some other overlay?
L110[02:10:25] ⇨ Joins: Noppes (~Noppes@ip56530f2e.direct-adsl.nl)
L111[02:10:37] <Abastro> Actually it seems that there are both
L112[02:12:07] <theFlaxbeard> Yeah, it overlays the water texture lightly
L113[02:12:11] <theFlaxbeard> but the vignette effect is fog
L114[02:12:51] <theFlaxbeard> Right now I'm giving the player water breathing between the start and end phases of RenderTickEvent, which seems to work alright
L115[02:13:46] <mezz> Shadowfacts is working on an underwater thing too, maybe they can help https://twitter.com/ShadowfactsDev/status/740670780707614720
L116[02:14:13] <Delenas> Okay, formatting shenanigans pushed up.
L117[02:14:14] <mezz> judging by the screenshot, there is good visibility underwater
L118[02:14:18] *** AEnterpriseAFK is now known as AEnterprise
L119[02:14:25] <theFlaxbeard> The water breathing effect works, might be what they're using
L120[02:14:47] <theFlaxbeard> http://puu.sh/pWz6e/19bf34902a.jpg
L121[02:15:03] <mezz> ah nice
L122[02:16:11] <mezz> Delenas, that's looking better
L123[02:16:25] <mezz> now you need to fix the capability
L124[02:16:35] <Delenas> What's up with the cap?
L125[02:17:00] <mezz> if GUI_PROVIDER_CAPABILITY returns a IGuiProvider, it should be Capability<IGuiProvider>
L126[02:17:08] <mezz> and then it will not need casting
L127[02:17:34] <Delenas> I.. did?
L128[02:17:43] <mezz> IGuiProvider cap = (IGuiProvider) tile.getCapability(CapabilityGuiProvider.GUI_PROVIDER_CAPABILITY, EnumFacing.UP);
L129[02:18:29] <mezz> also capabilities use EnumFacing of null when no facing makes sense, so use null
L130[02:18:50] <Abastro> theFlaxBear.d: For me it worked, by setting the density as low value and canceling the event. (Fog Density Event)
L131[02:19:05] <Delenas> Where at?
L132[02:19:11] <theFlaxbeard> Abastro: Underwater, you're saying?
L133[02:19:12] <theFlaxbeard> Hmm
L134[02:19:16] <Abastro> Yes.
L135[02:19:22] <mezz> here https://github.com/MinecraftForge/MinecraftForge/pull/3073/files#diff-61778f10c78934a9421d0fe42a3bf661R86
L136[02:20:08] <mezz> also formatting is still weird in the test mod
L137[02:20:39] ⇨ Joins: Seppon (~Noppes@ip56530f2e.direct-adsl.nl)
L138[02:20:39] <Abastro> Simply, if(inLiquid) event.setDensity(0.1);event.setCanceled(true);
L139[02:20:47] <Delenas> Oh
L140[02:20:57] <Delenas> The cast wasn't needed, but the side is intended.
L141[02:21:14] <Delenas> This actually lets people provide different guis depending on which side was clicked.
L142[02:21:48] <mezz> if that's the case then you should not have it hardcoded as UP in your test mod
L143[02:22:39] ⇦ Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Ping timeout: 192 seconds)
L144[02:25:05] <theFlaxbeard> Abastro: Looks like I was looking at the wrong event, my bad :P
L145[02:25:08] <theFlaxbeard> Thanks
L146[02:25:13] <RANKSHANK> hey mezz I was wondering if I could get your input on something :P I've bashed out another take on the effect pass change pr, comparably neutered for GL access; and I'm trying to decide whether to keep the control hooks in the Item.class or mimic vanilla's IItemColor and delegate the hooks to their own interfaces
L147[02:25:20] ⇦ Quits: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098) (Ping timeout: 190 seconds)
L148[02:26:00] <Delenas> Okay. Round 2 of formatting derps fixed.
L149[02:26:16] <theFlaxbeard> I kept looking at RenderFogEvent which is only executed if in air
L150[02:27:07] ⇨ Joins: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098)
L151[02:28:38] ⇨ Joins: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi)
L152[02:28:43] <mezz> RANKSHANK, the only issue I have with the vanilla coloring stuff is that they're SideOnly Client, which makes them very annoying to implement
L153[02:29:21] ⇦ Quits: Turkey (~Turkey@cpe-24-95-73-99.columbus.res.rr.com) (Read error: Connection reset by peer)
L154[02:29:30] <mezz> putting it on a delegate makes sense to me, since few things will implement it
L155[02:29:56] <mezz> I will probably use it for bees in Forestry
L156[02:31:04] <mezz> Delenas, I'm going to start making line-by-line comments now that it's mostly cleaned up
L157[02:32:11] <Delenas> I will mention that I was unable to test the Entities part. It should be perfectly fine, considering it's the exact same code, save for a variable change and where you get it from.
L158[02:32:37] <mezz> you have to test
L159[02:33:11] <Delenas> I need help with that, then. I suck at entity code. :/
L160[02:33:16] <mezz> pretty sure there are events for you to put capabilities on other things
L161[02:33:28] <RANKSHANK> Alrighty sounds good :P I was worried about the lookup overhead, but with things like ItemPotion doing an NBT lookup then 6 IItemColored lookups per stack it's a fart in the wind I guess :P
L162[02:33:40] <mezz> so you could just add the capability to horses or something?
L163[02:33:47] <Delenas> In theory, yes.
L164[02:34:01] <Delenas> I could recreate the Villager trade gui and attach it to chickens.
L165[02:34:56] <mezz> RANKSHANK, yeah it's "slow" already. people like to avoid waste but 6 nbt lookups isn't exactly brining the game to a standstill
L166[02:37:05] <Abastro> Can I ask why some PRs including mine are not getting any attention?
L167[02:37:40] <RANKSHANK> mezz definitely true. this will bring 1 additional lookup per stack only when the effect is rendered
L168[02:38:18] <mezz> Delenas, you may want to add the capability to all vanilla entities with guis?
L169[02:38:28] <mezz> not sure... hm
L170[02:38:36] <RANKSHANK> Abastro you gotta push it man :P 118 PR's floating around and maybe 1/2 in a day if it's a busy one
L171[02:39:32] ⇦ Quits: lashtear (~lashtear@cpe-50-113-67-84.san.res.rr.com) (Quit: Leaving)
L172[02:39:35] <Delenas> mezz, was aiming more for this first pull to just add the ability for modded.
L173[02:39:57] <mezz> I'm not sure why it should be a capability then
L174[02:40:35] <Delenas> For things like EnderIO's EnderIO to easily open guis without doing shenanigans
L175[02:41:01] <Delenas> I will add support for vanilla stuff if this first round is accepted?
L176[02:41:06] <mezz> hm
L177[02:41:07] <tterrag> I think it's more than that atm. PRs just generally aren't getting much attention lately
L178[02:41:16] <tterrag> not sure what's up. I know fry is busy so he can't help out
L179[02:41:20] <mezz> there are many PRs floating around right now that are "add event for ___" that have no use-case, no testing, and no explanation.
L180[02:41:23] <Abastro> I though so too.
L181[02:41:36] <tterrag> mezz: I don't think that's it either.
L182[02:41:37] <tterrag> https://github.com/MinecraftForge/MinecraftForge/pull/3034
L183[02:41:39] <Abastro> Oh,.. but at least mine has, and there are bunch more.
L184[02:41:46] <mezz> tterrag, not all of them
L185[02:41:51] <Delenas> I will say that this particular cap will immediately be used by my and at least 1 other mod.
L186[02:41:51] <tterrag> clear use case, many thumbs up, lots of activity, but not one comment from lex/etc :P
L187[02:42:24] <RANKSHANK> yeah I was reading through that one the other day :P the GPU clouds looks pretty nifty too
L188[02:42:49] <mezz> yeah
L189[02:43:13] <Abastro> Yes, I'm wondering about the PR too.
L190[02:43:57] <LexManos> !help
L191[02:44:05] ⇨ Joins: quadraxis (~chatzilla@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L192[02:44:05] <tterrag> $ labels add 3073 Feature
L193[02:44:06] <Actuarius> Added labels [Feature] for issue 3073; new labels: [Feature].
L194[02:46:00] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 190 seconds)
L195[02:46:09] <tterrag> anyone got an idea on what causes this? http://pastebin.com/kMuSaYxa
L196[02:47:02] <mezz> interesting
L197[02:47:28] <tterrag> https://github.com/Chisel-Team/Chisel/blob/1.9/dev/src/main/java/team/chisel/common/util/GenerationHandler.java
L198[02:47:29] <mezz> most of it is from generation runaway
L199[02:47:32] <tterrag> that's all
L200[02:47:39] <tterrag> vanilla WorldGenMinable
L201[02:47:57] <mezz> you have to offset your generation by 8 x and 8 z
L202[02:48:12] <tterrag> uhhh
L203[02:48:17] <mezz> let me explain...
L204[02:48:17] <tterrag> never had to do that before
L205[02:48:19] <mezz> yes
L206[02:48:23] ⇦ Parts: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi) (Veni, Vidi, Non reliquit in))
L207[02:48:23] <mezz> it's a new thing :)
L208[02:48:34] <tterrag> how new O.o
L209[02:48:39] <mezz> 1.9 or so
L210[02:48:44] <tterrag> because I could swear this code worked a few days ago
L211[02:48:50] <tterrag> unless I just got obscenely lucky
L212[02:48:55] <mezz> doesn't break often
L213[02:48:58] <mezz> but it does break
L214[02:48:59] <tterrag> this is reliable
L215[02:49:01] ⇨ Joins: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi)
L216[02:49:04] <tterrag> it's weird
L217[02:49:08] <tterrag> anyways, what exactly do you mean?
L218[02:49:13] <tterrag> chunkX * 16 + 8 ?
L219[02:49:16] <tterrag> like that?
L220[02:49:17] <mezz> yes
L221[02:49:20] <tterrag> weird...ok
L222[02:49:29] <tterrag> I will try it
L223[02:49:47] <mezz> so when your chunk decoration is called, it has neighbors on the +,+ side already generated
L224[02:50:08] <mezz> vanilla and everything offset by 8,8 so that you never run into the border of an ungenerated chunk
L225[02:50:46] <mezz> the ores, plants, etc are put in the world at an offset, lagging behind the chunk generation by that offset
L226[02:51:01] <tterrag> that is extremely strange
L227[02:51:12] <tterrag> however, I suppose it makes sense
L228[02:51:25] <tterrag> what about generation in the negative direction though? generation happens in a "circle" ?
L229[02:51:58] <mezz> make sure it's not larger than 8 radius or so?
L230[02:51:58] <tterrag> yeah no that didn't fix it
L231[02:52:56] <mezz> ok I may be dumb, WorldGenMinable already does the offset
L232[02:53:03] <mezz> I didn't see you used the vanilla one
L233[02:54:38] <mezz> yeah you don't need it
L234[02:54:40] <mezz> hm
L235[02:55:04] <tterrag> like I said, this is very repeatable
L236[02:55:15] <mezz> well your generation is spilling into unloaded chunks
L237[02:55:20] <mezz> which are in turn generating more
L238[02:55:23] <mezz> until stack overflow
L239[02:55:38] <tterrag> I get that
L240[02:55:40] <mezz> that's the root of it. why, I'm not sure
L241[02:55:46] <tterrag> what I don't get his how this worked perfectly a few days ago with identical code
L242[02:55:54] <tterrag> I added then removed a feature and now it's broken
L243[02:55:59] <tterrag> as far as I can see, I'm not doing anything different
L244[02:56:17] <mezz> which commits?
L245[02:56:40] <tterrag> screw me
L246[02:56:43] <tterrag> I:basaltAmount=100
L247[02:56:47] <tterrag> when the hell did I do that
L248[02:57:37] <tterrag> I literally have no recollection
L249[02:57:48] <mezz> hehe
L250[02:58:00] <tterrag> well, something good came of this
L251[02:58:04] <tterrag> I need to put some sensible limits on those configs
L252[02:58:10] <mezz> ah!
L253[02:58:24] <Delenas> Testing the gui attach to a pig.
L254[02:58:29] <mezz> heh
L255[02:58:47] <RANKSHANK> piggy bank?
L256[02:59:19] <tterrag> finally jesus http://i.imgur.com/591DwSM.png
L257[02:59:25] <Delenas> No, I'm just gonna make it pop open a gui every time you hit a pig. You monster.
L258[03:00:08] <mezz> \o/
L259[03:00:38] <Delenas> If this works, we can check off attachment and entities.
L260[03:01:39] <mezz> cool
L261[03:02:08] <tterrag> ok now
L262[03:02:12] <tterrag> the real worldgen problem
L263[03:02:16] <tterrag> I want to only generate some blocks around lava
L264[03:02:31] <tterrag> and nowhere else. is that possible? checking nearby blocks in the generate method doesn't work
L265[03:02:39] <tterrag> because, of course, it tries to generate from a generate method
L266[03:02:51] <mezz> railcraft does it I think
L267[03:03:08] <tterrag> for sulfur? that's what I thought too
L268[03:03:09] <mezz> for firestone
L269[03:03:09] <tterrag> evidently not
L270[03:03:14] <mezz> hm
L271[03:03:14] <tterrag> firestone? didn't look at that..hm
L272[03:03:38] <tterrag> https://github.com/CovertJaguar/Railcraft/blob/master/src/main/java/mods/railcraft/common/worldgen/FirestoneGenerator.java
L273[03:03:41] <tterrag> doesn't appear so
L274[03:03:52] <tterrag> oh wait, he has a custom worldgen class
L275[03:04:29] <tterrag> ok, so he does just check the block at the position
L276[03:04:37] <tterrag> how does that not break everything?
L277[03:04:40] <mezz> yeah that's what I do with bee hives pretty much
L278[03:04:43] <tterrag> I guess because it's only a vertical check?
L279[03:04:50] <mezz> this is world decoration, after worldgen
L280[03:04:54] <mezz> most likely
L281[03:04:56] <tterrag> oh
L282[03:05:12] <tterrag> so am I doing it wrong entirely?
L283[03:05:56] <mezz> you want to do yours after vanilla world gen and before ore gen and decoration probably
L284[03:06:18] <tterrag> yes
L285[03:06:36] <tterrag> well no - lava lakes are decoration aren't they?
L286[03:06:42] <tterrag> it would need to be after that
L287[03:06:47] <mezz> good question
L288[03:07:30] <tterrag> answer, no
L289[03:07:46] <mezz> interesting
L290[03:07:47] <tterrag> lakes are done in ChunkProviderOverworld.populate
L291[03:08:01] <tterrag> or is that decoration? I know nothing about this
L292[03:08:13] <mezz> that is decoration
L293[03:08:29] <mezz> that's when you get temples, villages, etc
L294[03:09:08] <tterrag> where is actual worldgen done?
L295[03:09:16] <tterrag> also, IWorldGenerators are called AFTER that it seems
L296[03:09:34] <mezz> ChunkProviderOverworld.provideChunk
L297[03:09:36] <tterrag> see Chunk#populateChunk
L298[03:10:11] <mezz> wait what, villages are in provideChunk??? I'm lost one sec
L299[03:10:59] <tterrag> they are in both
L300[03:11:00] <tterrag> so
L301[03:11:01] <tterrag> ???
L302[03:11:34] <mezz> something does not add up here
L303[03:11:56] <tterrag> it's vanilla. when does it add up?
L304[03:12:09] <mezz> well this is especially strange
L305[03:12:34] <mezz> ok provide does generate, and populate does generateStructure
L306[03:12:47] <mezz> most likely the mcp names are just awful, that's all
L307[03:13:44] <tterrag> so the conclusion is...
L308[03:13:54] <mezz> on most things, generate seems to just set the seed. caves and stuff that is part of "provide" will actually do stuff then
L309[03:14:21] <mezz> so the conclusion is, provide does the actual chunk generation of basic stuff like stone and caves
L310[03:14:28] <mezz> and populate makes ores, villages, etc
L311[03:15:48] <tterrag> ok. but where do I fit in :P
L312[03:16:02] <Delenas> ...does LivingHurtEvent only fire on the server?
L313[03:16:46] <mezz> there's no post event for lava lake generation... which is done in populate btw
L314[03:17:31] <mezz> so DecorateBiomeEvent.Pre may be the earliest event to use after lava lake gen
L315[03:18:14] <mezz> it's done just before ore generation
L316[03:18:30] <mezz> could use OreGenEvent.Pre as well I guess
L317[03:19:34] <tterrag> railcraft uses DecorateBiomeEvent.Post for all
L318[03:19:36] <tterrag> which is strange
L319[03:20:00] <tterrag> mezz: thing is, WorldGenMinable has a predicate for replaceable blocks
L320[03:20:05] <tterrag> so I don't have to worry really about being before/after ores
L321[03:20:13] <mezz> railcraft probably just wants to avoid interfering with others
L322[03:20:20] <tterrag> I don't really want limestone etc replacing ores :P
L323[03:20:39] <mezz> as long as your limestone is replaceable like stone is, you can do it before ore gen and it'll be fine
L324[03:21:20] <mezz> I can't imagine it's going to be super efficient though...
L325[03:22:27] <mezz> checking a whole column for lava for every time you want to make a piece will not be quick
L326[03:23:15] ⇦ Quits: blood|wrk (~owned@STATIC228.iona.edu) (Read error: Connection reset by peer)
L327[03:24:14] <Delenas> So, mezz. Problem.
L328[03:24:33] <mezz> yea?
L329[03:24:52] <Delenas> AttachCapabilities runs server side and caps aren't synced to the client. I can't easily test this with events. x.x
L330[03:25:23] <mezz> huh...
L331[03:26:52] <Delenas> Isn't there a super simple entity class I could make?
L332[03:27:36] <mezz> just copy the pig and strip out most of it, still going to be a pain to do
L333[03:27:53] <mezz> I'm looking at AttachCapabilities to see why it would work that way
L334[03:28:28] <tterrag> hahah what the hell
L335[03:28:39] <tterrag> DecorateBimoeEvent.Post is not fired on the TERRAIN_GEN_BUS
L336[03:28:42] <tterrag> even though the docs clearly say it is
L337[03:29:00] <tterrag> neither is Pre
L338[03:29:03] <tterrag> but Decorate is
L339[03:29:06] <tterrag> ??? why
L340[03:30:17] <mezz> because screw you that's how it is lol
L341[03:30:38] <mezz> l e g a c y
L342[03:31:25] <Delenas> diesie, you are a cruel overseer. Thorough, but cruel. >.>
L343[03:33:56] <mezz> just remember you're carving this into stone and don't get a second chance, it needs to be as good as it can be
L344[03:34:13] <Delenas> Also.. did you even look at net.mcforge.fml.common.network.internal.OpenGuiHandler?
L345[03:34:27] <Delenas> They're using plenty of client stuff. I'm duplicating that.
L346[03:35:32] ⇦ Quits: theFlaxbeard (~theFlaxbe@184.97.133.184) (Read error: Connection reset by peer)
L347[03:35:58] <mezz> Delenas, AttachCapabilitiesEvent.Entity should be called on client and server, it's called from the constructor for Entity
L348[03:36:19] <Delenas> Odd. I wasn't getting anything client-side.
L349[03:36:29] ⇦ Quits: psxlover (psxlover@athedsl-385389.home.otenet.gr) (Ping timeout: 186 seconds)
L350[03:36:33] ⇨ Joins: psxlover (psxlover@ppp-2-87-116-14.home.otenet.gr)
L351[03:41:15] ⇨ Joins: founderio (~Thunderbi@p200300C4E3C60000C89359FDAE407CF1.dip0.t-ipconnect.de)
L352[03:48:47] ⇦ Quits: portablejim (~portablej@1.40.168.215) (Ping timeout: 192 seconds)
L353[03:51:35] ⇨ Joins: Necr0 (~Necr0@p200300700D25824901C53599066EFFE6.dip0.t-ipconnect.de)
L354[03:52:06] ⇨ Joins: Elec332 (~Elec332@ip5456d4a5.speed.planet.nl)
L355[03:52:33] <Delenas> Woot. Got the events working (I apparently derped and used event.getSource instead of event.getTarget) and the entity cap works too.
L356[03:52:44] <mezz> nice
L357[03:53:13] <Delenas> I'm taking diesie's suggestion and making IGuiProvider take a type. It makes the subclasses look nicer.
L358[03:53:49] <Delenas> All three still work. \o/
L359[03:56:47] <Delenas> ker-push.
L360[04:00:50] <tterrag> mezz: is this horrible? :P http://pastebin.com/kcfStdNz
L361[04:00:54] <tterrag> because it seems to work
L362[04:01:01] <tterrag> generates a 2 thick layer of basalt under all lava
L363[04:01:34] <tterrag> it could definitely be more efficient
L364[04:01:40] <tterrag> i.e. marking already generated columns
L365[04:01:49] <tterrag> but as a first pass, I think it's alright :P
L366[04:01:49] ⇨ Joins: Aroma1997 (~Aroma1997@2604:a880:800:10::168:d001)
L367[04:01:50] ⇨ Joins: TechnicianLP (~Technic@p4FE1C82F.dip0.t-ipconnect.de)
L368[04:01:58] <tterrag> I'm not noticing any slowdown on generation but I have a pretty beastly PC
L369[04:02:05] <mezz> meh profile it
L370[04:02:27] <mezz> if you take longer than 90% of vanilla generation then fix it heh
L371[04:02:40] <mezz> nothing worse than super laggy worldgen
L372[04:03:53] <mezz> Delenas, you should still remove this, it's pointless https://github.com/MinecraftForge/MinecraftForge/pull/3073/files#diff-d5a6bc39ae23f23b1414004a15aff150R69
L373[04:04:58] <tterrag> mezz: http://i.imgur.com/DUGxNGz.png
L374[04:05:06] <tterrag> as per usual the slow chunk interaction is what kills, but it's really not that bad :P
L375[04:05:19] <tterrag> that's generating a fresh world
L376[04:05:40] <Wuppy> hahaha you really cant look anywhere without seeing pokemon go can you xD
L377[04:05:49] <Wuppy> Reddit, Facebook, trains, festivals everything is full of them
L378[04:08:04] <Delenas> Bluh. Making another round. This one should clear up a number of concerns.
L379[04:11:01] <tterrag> mezz: annoyingly enough it looks like the lava in ravines isn't done during decoration ?? http://i.imgur.com/r3stRcq.png
L380[04:11:13] <tterrag> you can see basalt lower down where a normal lake was
L381[04:11:14] <mezz> tterrag, looks alright. you may want to use BlockPos.getAllInBoxMutable for clarity
L382[04:11:48] <mezz> just imagine there was lava there 1000000 years ago, it's fine imo
L383[04:11:51] <mezz> heh
L384[04:12:11] <tterrag> ravines are done in provide
L385[04:12:23] <sham1> That basalt
L386[04:12:26] <tterrag> so they should be done long before this event is called
L387[04:12:34] <tterrag> why isn't it finding that lava?
L388[04:12:52] <tterrag> or does something come through later and fill in all the gaps with lava?
L389[04:13:08] <mezz> I wouldn't really worry about it
L390[04:13:27] <tterrag> ravines were my major test case though
L391[04:13:28] <tterrag> it should work
L392[04:15:05] <Delenas> Think I got everything this time.
L393[04:15:13] ⇦ Quits: quadraxis (~chatzilla@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 186 seconds)
L394[04:15:46] <mezz> still need this https://github.com/MinecraftForge/MinecraftForge/pull/3073/files#diff-78156463957467c0564efc9a0ce23b01R30
L395[04:16:09] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L396[04:19:28] ⇨ Joins: Upthorn (~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net)
L397[04:21:15] *** PaleOff is now known as PaleoCrafter
L398[04:24:05] ⇦ Quits: Abastro (~abab9579@112.166.128.227) (Ping timeout: 186 seconds)
L399[04:24:32] ⇨ Joins: AndersBillLind (~anders@217-211-66-29-no23.tbcn.telia.com)
L400[04:24:38] <tterrag> yeah this is bizzare
L401[04:24:45] <tterrag> I can see ravines being generated before my code is called
L402[04:24:55] <tterrag> but for some reason the lava isn't there
L403[04:25:05] <mezz> interesting
L404[04:25:22] <AndersBillLind> Hello, is there anyone else here that experienced that travelling through a portal will turn you around 180 degrees if you clear the off direciton of the portals?
L405[04:25:37] <tterrag> it must have something to do with ravines generating across multiple chunks
L406[04:25:44] <tterrag> mayb eit's only working at the "source" chunk
L407[04:26:05] <mezz> well something is adding the lava later, you'll just have to find what it is
L408[04:26:37] <tterrag> no I think that's just it.
L409[04:26:55] <tterrag> picture the situation. world is generating along, then later on a ravine is generated that goes back across previously generated chunks
L410[04:27:09] <tterrag> by which time my generation has come and gone and the ravine is placed afterwards
L411[04:27:18] <mezz> ah ok
L412[04:27:22] <tterrag> that must be it
L413[04:27:36] <tterrag> so, theoretically, if there was any lava at the "source" of the ravine, it would work fine
L414[04:27:45] <mezz> my assumption would be that a ravine just loads all the chunks it goes across
L415[04:27:56] <tterrag> right. but what if the ravine heads "backwards"
L416[04:28:03] <mezz> then generate
L417[04:28:12] <tterrag> err. right
L418[04:30:37] <mezz> not sure what it actually does though... enjoy reading heh
L419[04:31:22] <tterrag> I can't think of another reasonable explanation
L420[04:31:37] <tterrag> but if my theory is true it would mean that 50% of ravines should work fine
L421[04:31:44] <tterrag> the ones that move "forward" and into ungenerated chunks
L422[04:32:16] <mezz> I think any theory is not worth considering without reading how it actually works
L423[04:32:59] <tterrag> I am trying
L424[04:33:07] <mezz> ok
L425[04:33:13] <tterrag> you try reading MapGenRavine.addTunnel
L426[04:33:15] <tterrag> see how far you get
L427[04:33:19] <mezz> ok
L428[04:33:52] * mezz opens new forge project and renames variables
L429[04:34:17] ⇨ Joins: Davnit (~Davnit@72-189-103-223.res.bhn.net)
L430[04:34:17] <Delenas> mezz, done.
L431[04:34:51] <mezz> cool
L432[04:34:54] <mezz> I added some more comments
L433[04:35:02] <mezz> getting into the small stuff
L434[04:37:36] <Delenas> Heh. You brought up a valid point with @nullable
L435[04:37:53] <tterrag> mezz: params seem to be seed, originX, originZ, primer, endX, endY, endZ, widthX, height, widthZ
L436[04:37:55] <tterrag> past that idk lol
L437[04:38:08] <Delenas> It was leftover from an older design. I thought about it, and.. yeah. You should always have something there.
L438[04:38:22] <mezz> yeah it's fun tterrag. I'll let you know what I get out of it
L439[04:38:54] <mezz> cool Delenas. one less nullable is one less thing to reason about
L440[04:41:24] ⇨ Joins: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se)
L441[04:41:57] <Delenas> Up it goes.
L442[04:44:40] <mezz> one more comment
L443[04:45:05] <mezz> not sure what the use of GuiProviderBlank is
L444[04:45:24] <Delenas> Your default implementation.
L445[04:45:36] <Delenas> You get nothing and should expect nothing.
L446[04:45:45] <mezz> ok
L447[04:45:52] <Delenas> You /have/ to make your own impl with this. Absolute must.
L448[04:45:59] <mezz> yeah
L449[04:46:12] <mezz> one of the strange things I wonder about
L450[04:46:32] <mezz> anyway looks alright to me, assuming it tests well and isn't breaking older guis
L451[04:47:11] <Delenas> Considering that I haven't touched the other stuff except to add that one bit to FmlNetworkHandler to get the server handlers.. it shouldn't break a thing.
L452[04:49:41] <mezz> I've broken everything in unimaginable ways many times... I trust nothing lol
L453[04:51:01] <Delenas> Lemme drop Forestry in here quick
L454[04:54:07] <Delenas> Flawless.
L455[04:54:13] <mezz> cool
L456[04:54:33] <mezz> I already delegate my gui junk to blocks/entities whatever so this capability will be a nice cleanup for me
L457[04:54:41] <Delenas> So does RFTools
L458[04:54:57] <mezz> it just makes sense
L459[04:55:00] <Delenas> I do as well. That's a reason I wanted to push it.
L460[04:55:16] <PaleoCrafter> dafuq, there's a section on my main monitor all of a sudden without any mouse interaction xD
L461[04:55:17] <Delenas> Someone in here nagged that "forge abstracts it"
L462[04:55:37] <Delenas> Uhh. No. No, read the code. The int was just a fast way to do the packet.
L463[04:56:14] *** PaleoCrafter is now known as PaleOff
L464[04:57:13] <Delenas> And like I said. I look forward to seeing other mods interacting with a gui capability. Imagine a wall of panels where you can remote-access a gui, like a main hub station.
L465[04:57:28] *** PaleOff is now known as PaleoCrafter
L466[04:57:35] <mezz> yeah, that sounds interesting
L467[04:58:11] <Delenas> Or, once I figure out how the balls Villager trading works, I can remake the OpenBlocks Trade Station /super/ quickly.
L468[04:58:40] ⇦ Quits: auenf (David@DC-72-89.bpb.bigpond.com) (Remote host closed the connection)
L469[04:59:22] <mezz> hahahaha enjoy that
L470[04:59:38] ⇨ Joins: auenf (David@DC-72-89.bpb.bigpond.com)
L471[04:59:48] <mezz> villager trading is very odd at the moment
L472[05:00:01] <Delenas> nope.jpg
L473[05:00:30] <RANKSHANK> so much potential and mojang dumps notchism all over it
L474[05:00:35] <mezz> it's like very old vanilla with new vanilla features on top, patched somewhat by forge
L475[05:00:48] <Delenas> Anyway, this finally started with me being selfish and wanting forge to do things versus my own packet
L476[05:00:55] <mezz> heh
L477[05:01:22] <Delenas> All because I didn't feel like making packets just to add a single string to the message.
L478[05:01:53] <RANKSHANK> something something lazy people find the quickest route ;)
L479[05:01:55] <Delenas> So I said fuck it and rewrote like 98% of the gui opening system. \o/
L480[05:02:12] <mezz> mhm
L481[05:02:37] <Delenas> What's funny is with this.. it may actually be possible to completely phase out a lot of FML code.
L482[05:04:00] <mezz> tterrag, sorry but no, this code is just hacks on crap, tweaked until it works. viewing it from a decompiled state is just terrible
L483[05:04:11] *** PaleoCrafter is now known as PaleOff
L484[05:04:21] <mezz> hope you can figure out what you need
L485[05:04:23] <tterrag> I warned ya :P
L486[05:04:35] <mezz> yeah, I figured I'd give it a fair shot to help
L487[05:04:46] <mezz> but it's just making me fall asleep
L488[05:04:55] <Delenas> Okay, done on the dev side. Gonna go fwump into bed and be laz[y|ier] now.
L489[05:05:00] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 190 seconds)
L490[05:05:00] <mezz> o/
L491[05:05:08] ⇦ Quits: Delenas (~Delenas@2600:1016:b11a:e44b:1526:6510:f029:ac72) (Quit: Console.Write("Goodbye, world!");)
L492[05:05:16] <RANKSHANK> well earned, night man
L493[05:05:29] *** PaleOff is now known as PaleoCrafter
L494[05:08:45] ⇨ Joins: gigaherz (gigaherz@105.red-88-6-85.staticip.rima-tde.net)
L495[05:09:24] <AndersBillLind> Having problems seaching in class files of referenced libraries in eclipse
L496[05:09:34] <AndersBillLind> That should come for free, should it not?
L497[05:10:43] <mezz> class files need to be decompiled to search, don't they?
L498[05:10:57] <AndersBillLind> They are
L499[05:11:00] <mezz> intellij has a built-in decompiler but I don't know if eclipse does
L500[05:11:03] <mezz> okay
L501[05:11:23] <AndersBillLind> I have done this before without problems, not in eclipse neon however
L502[05:11:29] *** Kolatra|away is now known as Kolatra
L503[05:11:32] <tterrag> fg attaches source
L504[05:11:36] <tterrag> you'd think it would search that
L505[05:11:47] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L506[05:11:53] <AndersBillLind> It has done
L507[05:12:17] ⇨ Joins: quadraxis (~chatzilla@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L508[05:12:17] <AndersBillLind> Searching with the file pattern * makes eclipse puke on the .lock file
L509[05:12:27] <AndersBillLind> I changed that to *.class, *.java
L510[05:12:42] <AndersBillLind> Does attached source have another extension?
L511[05:15:14] <gigaherz> what are you searching for? maybe we can confirm that it's there/not there
L512[05:15:52] <gigaherz> if it's something that we can search for, that is
L513[05:16:21] ⇨ Joins: Jezza (~Jezza@92.206.5.6)
L514[05:17:17] <AndersBillLind> I am just trying to search "torch" to make sure the search mechanism works
L515[05:17:18] <AndersBillLind> No hit
L516[05:17:28] <AndersBillLind> I am trying to find nether portals logic
L517[05:17:39] <AndersBillLind> To see if I can troubleshoot https://bugs.mojang.com/browse/MC-105207
L518[05:19:08] ⇨ Joins: Delenas (~Delenas@2600:1016:b11a:e44b:512a:ade8:ea8e:17df)
L519[05:20:03] ⇨ Joins: kimfy (~kimfy@236.5.200.37.customer.cdi.no)
L520[05:21:09] <Delenas> Mezz you taunt me
L521[05:21:11] <quadraxis> you probably want net.minecraft.world.Teleporter
L522[05:21:19] <mezz> yea?
L523[05:21:51] <Delenas> That single Enum instance.
L524[05:22:08] <Delenas> That can be null.
L525[05:22:12] <mezz> heh
L526[05:22:19] <mezz> the one below it too
L527[05:22:26] <Delenas> Yes
L528[05:22:45] <Delenas> That was before I knew null was totally fine to go there
L529[05:22:59] <mezz> I thought so :)
L530[05:23:39] <Delenas> Anyway. Why is side even in the base ICapProvider? It's only used for tiles.
L531[05:23:59] <mezz> because uh... um
L532[05:24:04] <Delenas> Seems easier to push that to a seperate interface, or an extension or something.
L533[05:24:05] <gigaherz> no it isn't
L534[05:24:10] <gigaherz> side also makes sense for entities
L535[05:24:18] <gigaherz> and even itemstacks
L536[05:24:34] <Delenas> Explain?
L537[05:24:35] <mezz> itemstack sidedness is debatable
L538[05:24:35] <gigaherz> suppose a capability that has different behaviour if it's activated by a block below it
L539[05:24:38] <gigaherz> or a block above it
L540[05:24:44] <gigaherz> such as
L541[05:25:00] <gigaherz> if you activate a machine from below, it may affect the feet only
L542[05:25:19] ⇨ Joins: Naiten (~Naiten@77.34.107.176)
L543[05:25:25] <gigaherz> if you were to make a "trap" and a "trap target" capability
L544[05:25:29] <mezz> I'm off to sleep o/
L545[05:25:39] <gigaherz> the target may be side-aware
L546[05:25:54] ⇨ Joins: Inari (~Pinkishu@p5DEC62CC.dip0.t-ipconnect.de)
L547[05:25:55] <gigaherz> and the trap target for "down" may be the feet (causing slowness or whatever)
L548[05:26:04] <gigaherz> the "side" may be the arms (causing weakness)
L549[05:26:20] <gigaherz> and the "top" may be the head (causing blindness?)
L550[05:26:24] <gigaherz> that's just one example
L551[05:26:37] <gigaherz> for itemstacks it's a lot more...
L552[05:26:43] <gigaherz> I don't know if you have this phrase
L553[05:26:46] <gigaherz> "holding itself by a string"
L554[05:26:52] <gigaherz> or "by a hair"
L555[05:26:55] <Delenas> That sounds like a poor attempt at reuse because you don't have anything better..
L556[05:27:04] <gigaherz> yeah well, tell that to Lex
L557[05:27:05] <gigaherz> ;p
L558[05:27:23] <tterrag> mezz: aha, I found a solution
L559[05:27:27] <gigaherz> but really
L560[05:27:28] <tterrag> there is a hook to replace the MapGenRavine
L561[05:27:28] <gigaherz> yes.
L562[05:27:30] <gigaherz> it's just reusing
L563[05:27:37] <gigaherz> it's less useful outside TileEntities
L564[05:27:38] <gigaherz> but it's there
L565[05:27:40] <gigaherz> so deal with it
L566[05:27:46] <tterrag> ravineGenerator = net.minecraftforge.event.terraingen.TerrainGen.getModdedMapGen(ravineGenerator, net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.RAVINE);
L567[05:27:56] <tterrag> I can just swap in an anon class which adds basalt
L568[05:28:15] <Delenas> That's another reason I rewrote guis. Because people did wierd things with the ints. No, stahp.
L569[05:28:41] <gigaherz> ints?
L570[05:28:43] ⇦ Quits: Naiten (~Naiten@77.34.107.176) (Read error: Connection reset by peer)
L571[05:28:56] <Delenas> Just because it's there does not mean use it strangely. Make it right.
L572[05:29:00] <gigaherz> oh you mean the "id, x, y, z" args?
L573[05:29:15] <Delenas> Yes
L574[05:29:19] ⇨ Joins: Abastro (~abab9579@112.166.128.227)
L575[05:29:30] <gigaherz> but the numbers are there, and they have no meaning outside blocks
L576[05:29:35] <gigaherz> so may as well give them a purpose
L577[05:29:37] <gigaherz> and say likt
L578[05:29:39] <gigaherz> like*
L579[05:29:44] <Delenas> Nooo
L580[05:29:53] <gigaherz> a coded inventory send the 3 wool colors in the x,y,z args
L581[05:30:06] <gigaherz> IMO
L582[05:30:08] <AndersBillLind> It seems like if I use "java search" instead of "file search", I can search those source attachments in eclipse
L583[05:30:12] <gigaherz> I'd just have renamed those args
L584[05:30:14] <Delenas> Did you see my Gui cap pull?
L585[05:30:19] <gigaherz> param1, param2, param3, param4
L586[05:30:27] <gigaherz> and remove the ides that they are coords and id
L587[05:30:29] <gigaherz> idea*
L588[05:30:54] <Delenas> It fixes that problem and makes the whole system a bit nicer.
L589[05:31:54] <gigaherz> IMO, it's not a problem
L590[05:32:02] <gigaherz> it's a nice redesign regardless
L591[05:32:06] <gigaherz> if anything
L592[05:32:13] <gigaherz> the problem is not having the ability to have less or more args
L593[05:32:23] <gigaherz> NOT that people reuse the existing ones
L594[05:32:28] <Delenas> The problem of sending extra data through a packet when you don't need it.
L595[05:32:44] <Delenas> Yes
L596[05:33:31] <Delenas> That's what this cap solves. It gives you a baseline, and lets you do more.
L597[05:33:36] ⇨ Joins: iari (~iari___@evana.futhark24.org)
L598[05:33:38] <gigaherz> yep and that's good
L599[05:34:30] <Delenas> I feel like big mods need to look at it though. It might miss critical things.
L600[05:34:48] <Delenas> Maybe that's just me being paranoid.
L601[05:35:01] <gigaherz> what critical things would it need?
L602[05:35:27] <gigaherz> it has a way to encode args
L603[05:35:30] <gigaherz> a way to decode args
L604[05:35:34] <gigaherz> a way to obtain the Container
L605[05:35:40] <gigaherz> and a way to obtain the GuiContainer
L606[05:36:18] <gigaherz> btw, the "clientGuiElement" returns object?
L607[05:36:22] <Delenas> Even a means of getting the implementor. Okay, yeah.
L608[05:36:33] <Delenas> Yes.
L609[05:36:52] <Delenas> Because legacy.
L610[05:37:08] <gigaherz> there's no legacy, you are adding a whole new api
L611[05:37:24] <Delenas> It makes a clean copy paste.
L612[05:37:45] <gigaherz> and there's existing big mods that use non-GuiContainer client elements?
L613[05:38:16] <Delenas> Dunno, don't want to know
L614[05:38:53] <gigaherz> I'd probably ask around, and consider changing to return GuiContainer explicitly
L615[05:38:54] <Delenas> And I thoroughly use GuiScreen on client, not GuiContainer
L616[05:39:04] <Delenas> So no.
L617[05:39:19] <Delenas> If anything I change it to Gui
L618[05:39:25] <gigaherz> you use GuiScreen for the client equivalent of the Container??
L619[05:39:58] <tterrag> mezz: I think I found the problem and boy is it a stupid one
L620[05:40:02] <tterrag> LAVA vs FLOWING_LAV
L621[05:40:05] <tterrag> *facepalm*
L622[05:40:05] <Delenas> Yes. I have client only guis that don't need a container.
L623[05:40:06] <tterrag> testing now
L624[05:40:17] <gigaherz> that's not what I'm asking
L625[05:40:22] <gigaherz> I'm asking if you use GuiScreen
L626[05:40:32] <gigaherz> for guis that you open WITH a Container on the server
L627[05:40:35] <gigaherz> rather than the client-only
L628[05:40:37] <Delenas> I do.
L629[05:40:37] <gigaherz> displayGuiScreen
L630[05:40:43] <gigaherz> that's wrong, then.
L631[05:40:48] <gigaherz> it breaks the semantic
L632[05:40:56] <gigaherz> just use displayGuiScreen on the client
L633[05:41:00] <Delenas> Well, I can change that.
L634[05:41:11] <Delenas> But right there, I just proved this could break.
L635[05:41:17] <gigaherz> if you don't need a container and data sync
L636[05:41:22] <gigaherz> yep
L637[05:41:27] <gigaherz> and break for no reason other than doing it wrong
L638[05:41:29] ⇨ Joins: Naiten (~Naiten@86-102-14-50.xdsl.primorye.ru)
L639[05:41:33] <gigaherz> which reinforces my feeling that it should be explicit
L640[05:42:18] <gigaherz> maybe other people disagree with me
L641[05:42:19] <Delenas> All this system does is send a packet to open a gui on both sides.
L642[05:42:23] <gigaherz> in which case /shrug
L643[05:42:26] <AndersBillLind> Where do I find logic for nether portals?
L644[05:42:38] <gigaherz> [12:21] (quadraxis): you probably want net.minecraft.world.Teleporter
L645[05:42:45] <Delenas> It's not for inventories, not for containers. It's just to open two guis.
L646[05:42:50] <gigaherz> no
L647[05:42:55] <gigaherz> well
L648[05:42:57] <gigaherz> yes but no
L649[05:43:36] <gigaherz> if the server didn't expect a Container
L650[05:43:39] <gigaherz> I'd be ok with it
L651[05:43:44] <gigaherz> just allow returning null for server
L652[05:43:49] <gigaherz> and use the packet to open the gui on the client
L653[05:44:00] <gigaherz> or allow ANY custom object to represent the server side of the gui
L654[05:44:02] <Delenas> Unless my memory fails, I've seen JtyLib doing one sided stuff.
L655[05:44:05] <gigaherz> but that's not the case
L656[05:44:13] <gigaherz> the server element gets cast to Container
L657[05:45:19] <Delenas> Because that's what gets returned on the server all the time.
L658[05:45:34] <gigaherz> and the client element has to be at least GuiScreen, since it ends up on displayGuiScreen(GuiScreen)
L659[05:45:46] <Delenas> If you want it otherwise, blame diesie for wanting it to be a container.
L660[05:45:59] <gigaherz> nono
L661[05:46:02] <gigaherz> the server MUST be a container
L662[05:46:46] <Delenas> Then I'll modify getClient to return a GuiScreen.
L663[05:46:48] <gigaherz> the server tracks the open containers and has the whole windowId stuff
L664[05:47:34] <gigaherz> but yeah, I followed the logic on the client
L665[05:47:42] <gigaherz> and it ends up calling displayGuiScreen, which takes a GuiScreen
L666[05:48:11] <Delenas> Okay. Do I currently have @Nullable on getServerElement?
L667[05:48:50] <tterrag> mezz: yep that was it
L668[05:48:52] <tterrag> what a waste of time lol
L669[05:48:58] <gigaherz> you do
L670[05:49:03] <gigaherz> and that's ok
L671[05:49:20] <gigaherz> the code that calls openGui supports that
L672[05:49:24] <gigaherz> it will simply not open a gui at all
L673[05:49:28] <gigaherz> but it's a supported scenario
L674[05:49:31] <Delenas> I need to remove @Nullable on getClient.
L675[05:49:53] <gigaherz> well
L676[05:49:56] <gigaherz> returning null is possible
L677[05:50:00] <Delenas> If you're opening a gui, it should display something, right?
L678[05:50:04] <gigaherz> but it would just cause any existing gui to close
L679[05:50:28] <gigaherz> but yeah, may be best to not allow nulols
L680[05:50:30] <gigaherz> nulls*
L681[05:50:37] <Delenas> All right.
L682[05:51:15] <Delenas> Also if anyone bitches about GuiProviderBlank I swear
L683[05:51:54] <Delenas> This sort of cap can't have a default impl. You have a gui. It's there.
L684[05:51:57] <gigaherz> well it IS a pointless class? ;P
L685[05:52:31] <Delenas> How wouod I return a default impl in register then?
L686[05:53:26] <gigaherz> well it may be a necessary evil
L687[05:53:33] <gigaherz> but it's still intrinsically pointless
L688[05:53:44] <gigaherz> it serves no use
L689[05:53:47] <Delenas> The only thing I could do i s return a screen with a default tint that reads "hey idiot, make the implementation"
L690[05:53:54] <gigaherz> so it makes the default implementation just return something for the sake of returning something
L691[05:54:18] <Delenas> Actually, no.
L692[05:54:32] <Delenas> Imma make it return the old broken image icon from IE.
L693[05:54:39] <gigaherz> which is something that has always annoyed me from the capability system: the default implementation is only useful in a very small number of cases
L694[05:55:11] <gigaherz> for most use cases, you either need specific implementations for each target
L695[05:55:30] <Delenas> I think we should be able to just regisyer a cap. No storage, no default impl.
L696[05:55:39] <AndersBillLind> Maybe I should try intellij after all
L697[05:55:45] <Delenas> Do et
L698[05:55:52] <Delenas> Idea #1
L699[05:55:54] <gigaherz> or it's an internal capability that no one from outside your mod should use
L700[05:55:54] <AndersBillLind> An environment that does not let me search is not much worth
L701[05:56:06] <tterrag> I have never had an issue with searching :P
L702[05:56:09] <gigaherz> AndersBillLind: you won't regret it
L703[05:56:09] <tterrag> what are you searchign for?
L704[05:56:16] ⇦ Quits: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L705[05:56:18] <gigaherz> tterrag: apparently not even "torch" returns anything
L706[05:56:24] <Inari> Hm.. how do I get the ResourceLocation for the button textures?
L707[05:56:32] <AndersBillLind> I want to be able to do a freetext search in references libraries (source attachments)
L708[05:56:43] <gigaherz> Inari: are you not using a GuiButton?
L709[05:56:47] <AndersBillLind> I am specifically searching for logic that is related to nether portalt
L710[05:56:50] <AndersBillLind> portals
L711[05:57:16] <Inari> gigaherz: well it extends GuiButton
L712[05:57:28] <Inari> ... i guess i could look into the superclass draw though
L713[05:57:31] <tterrag> http://i.imgur.com/kl8DB32.png AndersBillLind
L714[05:58:01] <AndersBillLind> Then which setup do you have?
L715[05:58:17] <gigaherz> Inari: then you can access the superclass' BUTTON_TEXTURE field
L716[05:58:18] <gigaherz> https://github.com/gigaherz/Ender-Rift/blob/master/src/main/java/gigaherz/enderRift/automation/browser/GuiCraftingBrowser.java#L56
L717[05:58:20] <gigaherz> see how I did it
L718[05:58:20] <AndersBillLind> I am using neon
L719[05:58:26] <gigaherz> and if what you are doing
L720[05:58:34] <gigaherz> is a button that allows drawing smaller height than standard
L721[05:58:35] <Inari> gigaherz: yeah xD for some reason i didnt think of that before i asked <.<
L722[05:58:36] <gigaherz> that works.
L723[05:58:36] <gigaherz> XD
L724[05:58:47] <Inari> i'll see how it works once it compiles :f
L725[05:59:08] <tterrag> AndersBillLind: neon
L726[05:59:11] <tterrag> I used search java
L727[05:59:12] <AndersBillLind> Same here
L728[05:59:20] <AndersBillLind> Java search?
L729[05:59:23] <tterrag> http://i.imgur.com/WoiNfK9.png
L730[05:59:43] <VikeStep> so I'm gonna fix that ASM bug for microsoft lol
L731[05:59:45] <Delenas> Once I saw IDEAs recompile and hotswap feature I dropped Eclipse /so fast/
L732[05:59:46] <VikeStep> that lex found last night
L733[05:59:50] <AndersBillLind> I want to be able to use a hotkey, I use ctrl+shift+f (removed formatting for that shortcut)
L734[05:59:58] <Inari> I still have to figure out what of this rendering stuff to do with json, what with smartmodels and what with TESR
L735[06:00:00] <sham1> How can you use Eclipse without a dark theme
L736[06:00:04] <sham1> The UI is so bright
L737[06:00:09] <AndersBillLind> But I cannot get rid of "file search" as one of the checked alternatives
L738[06:00:15] <AndersBillLind> So I start in the wrong tab
L739[06:00:18] <PaleoCrafter> the dark theme just looks shit, sham1 :P
L740[06:00:31] <sham1> Some other dark theme
L741[06:00:36] <tterrag> AndersBillLind: it's ctrl+h
L742[06:00:41] <PaleoCrafter> the problem isn't really with the theme, more with Windows, iirc
L743[06:00:43] <VikeStep> sham1, just finished doing a Java course at uni where everyone use eclipse. was very painful haha
L744[06:00:44] <tterrag> then to the java search tab
L745[06:00:45] <AndersBillLind> The package explorer will not go dark using that theme?
L746[06:00:52] <VikeStep> when i went to help people that is
L747[06:00:55] <PaleoCrafter> because some things don't get themed
L748[06:01:07] <gigaherz> windows can do custom-drawing just fine
L749[06:01:11] <AndersBillLind> tterrag++
L750[06:01:18] <gigaherz> it's java's gui framework that sucks
L751[06:01:19] <tterrag> np :D
L752[06:01:26] <Delenas> Soon as I can I'm moving to Cinnamon or something Linuxy
L753[06:01:26] <PaleoCrafter> gigaherz, it works for IDEA, duh :P
L754[06:01:29] <tterrag> yes I'll admit eclipse theming is lacking
L755[06:01:35] <sham1> IDEA is swing
L756[06:01:38] <tterrag> it doesn't really bother me though
L757[06:01:40] <AndersBillLind> tterrag: ctr+h to search for "bed" gives me no results
L758[06:01:40] <sham1> And that works just fine
L759[06:01:46] <gigaherz> PaleoCrafter: yeah
L760[06:01:51] <AndersBillLind> It is not a good substring searcher, is it?
L761[06:01:54] <sham1> Eclipse is SWT
L762[06:01:55] <Delenas> Anders, resources or java?
L763[06:01:55] <gigaherz> but Eclipse doesn't bother using custom-drawn scrollbars
L764[06:02:00] <AndersBillLind> java
L765[06:02:06] <PaleoCrafter> it's not just the scrollbars
L766[06:02:07] <Delenas> BlockBed
L767[06:02:20] <tterrag> AndersBillLind: you have to pick what you are searching in
L768[06:02:24] <sham1> I love clion
L769[06:02:29] <AndersBillLind> Delenas: Yes, but if i need to know its "BlockBed" instead of "bed", then the search functionality is broken
L770[06:02:30] <gigaherz> PaleoCrafter: it is, for me
L771[06:02:30] <gigaherz> https://dl.dropboxusercontent.com/u/743491/EclipseDarkWin10.png
L772[06:02:32] <gigaherz> that's how it looks
L773[06:02:35] <tterrag> for instance I did this http://i.imgur.com/GZ3AqjT.png
L774[06:02:36] <gigaherz> when I set the theme to dark
L775[06:02:36] <Delenas> Learn how mcp filenames are structured, it helps :3
L776[06:02:44] <PaleoCrafter> It must have improved then
L777[06:02:46] <tterrag> and I get this http://i.imgur.com/fDGLuPG.png
L778[06:02:50] <PaleoCrafter> I remember the tabs and everything being messed up as well
L779[06:02:55] <tterrag> PaleoCrafter: it has improved, but it's still not perfect
L780[06:02:56] *** Darkhax is now known as Darkhax_AFK
L781[06:03:05] <AndersBillLind> Ah, can use wildcard
L782[06:03:07] <tterrag> for example the git plugin makes the project names black text. you can fix it but it's a PITA
L783[06:03:10] <AndersBillLind> *bed* gave me a lot
L784[06:03:15] <tterrag> yes, if you pick regex
L785[06:03:25] <tterrag> also, the breadcrumb is just messed up most of the time
L786[06:03:31] <tterrag> other than that...it's mostly ok in neon
L787[06:03:37] <tterrag> I tried it, couldn't get used to it
L788[06:03:40] <tterrag> light theme is fine for me :P
L789[06:03:48] <gigaherz> this is Mars.2 btw, not the latest ;P
L790[06:03:48] <sham1> How do you work at dark
L791[06:04:28] <gigaherz> sham1: I use IDEA, I only open eclipse when i have to make changes to forge proper
L792[06:04:30] <gigaherz> or vanilla code
L793[06:04:32] <gigaherz> (for PRs)
L794[06:04:41] <PaleoCrafter> watch cpw's video :P
L795[06:04:49] <PaleoCrafter> no need for eclipse at all
L796[06:04:55] <gigaherz> I know
L797[06:05:03] <gigaherz> but I have eclipse working XD
L798[06:05:16] <gigaherz> and I use IDEA 15, rather than the latest one
L799[06:05:24] <PaleoCrafter> D:
L800[06:05:44] <gigaherz> well every now and then someone comes here with some weird issue
L801[06:05:54] <gigaherz> and someone says "yeah that's a problem with idea 2016"
L802[06:06:01] <gigaherz> "just do this to fix"
L803[06:06:08] <gigaherz> and I'm happy to still use idea 15
L804[06:06:09] <gigaherz> ;P
L805[06:06:20] <PaleoCrafter> the issue is on FG's end, really :P
L806[06:07:17] <AndersBillLind> Woah, I enabled searchability
L807[06:07:21] <AndersBillLind> intellij has to wait
L808[06:07:36] <sham1> Nop
L809[06:07:59] <AndersBillLind> But its not regex, I think
L810[06:08:34] <AndersBillLind> Then I would not need those *
L811[06:09:34] ⇨ Joins: portablejim (~portablej@2001:4830:1200:8083:3c59:e7e:f65e:2aa8)
L812[06:09:56] ⇨ Joins: raoulvdberge (uid95673@id-95673.richmond.irccloud.com)
L813[06:10:01] <AndersBillLind> tterag: Thanks for the help, I cannot pick regex anywhere btw
L814[06:10:14] <VikeStep> ah, so I did some more digging. And it seems that the steps that they provide for running Malmo is to actually run Minecraft using gradlew runClient
L815[06:10:21] <VikeStep> rather than actually installing the mod in Minecraft
L816[06:10:30] <raoulvdberge> Does forge have some kind of event that is fired when an inventory in the world is changed?
L817[06:10:39] <VikeStep> so that is why they never noticed any ASM issues
L818[06:10:42] <RANKSHANK> Is it possible to rebase a PR to match your fork? Or do you have to close/reopen another PR?
L819[06:10:44] <raoulvdberge> Currently I'm polling the inventory constantly, which is inefficient
L820[06:10:46] <VikeStep> because they were only ever testing it in a deobfuscated environment
L821[06:10:53] <PaleoCrafter> nope, raoulvdberge, not really feasible
L822[06:11:56] <masa> isn't markDirty() usually called when an inventory changes, which I think calls updateCOmparatorOutputLevels() or something, and does it also cause a block update even?
L823[06:12:27] <raoulvdberge> Hmm
L824[06:12:34] <raoulvdberge> Actually, couldn't I just check if a tile is dirty?
L825[06:12:47] <raoulvdberge> No, that won't work as it would stay dirty until its saved
L826[06:13:48] <tterrag> http://i.imgur.com/48VIJx7.jpg
L827[06:13:49] <tterrag> :D
L828[06:14:29] <RANKSHANK> (☞゚∀゚)☞
L829[06:14:44] <PaleoCrafter> always volcanic rock around lava or what? xD
L830[06:15:00] <LatvianModder> wat is dat? looks cool, tt
L831[06:15:32] <Inari> so, while using capabilities I still implement IInventory, right? just not ISidedInventory?
L832[06:15:40] <PaleoCrafter> neither xD
L833[06:15:53] <Inari> I dont get it then :P but oh well
L834[06:15:58] <gigaherz> Inari: use the item handler capability
L835[06:16:07] <gigaherz> IInventory and ISidedInventory are the vanilla interfaces
L836[06:16:11] <PaleoCrafter> caps replace the whole interface thing
L837[06:16:11] <gigaherz> which are really poorly designed
L838[06:16:20] <gigaherz> so forge replaces them with a better system
L839[06:16:28] <gigaherz> and the forge stance is "fuck anyone still using IInventory"
L840[06:16:28] <tterrag> yes, it's basalt
L841[06:16:33] <tterrag> it generates around existing lava lakes
L842[06:16:44] <tterrag> 1 out and 2 down
L843[06:17:01] <PaleoCrafter> gigaherz, the main driver behind caps really was multipart support, I think :P
L844[06:17:33] <gigaherz> I thought it was the ability to avoid having fixed interfaces on TileEntities
L845[06:17:44] <gigaherz> class te extends <every single mod interface ever>
L846[06:17:47] <RANKSHANK> I thought it was to look cool
L847[06:17:50] <gigaherz> with a million "canDoX" methods
L848[06:18:06] <PaleoCrafter> not really, no, it was just kinda necessary for multiparts to work properly
L849[06:18:13] * gigaherz shrugs
L850[06:18:20] <PaleoCrafter> because you don't want the containing TE to implement stuff when it's not needed by the parts
L851[06:19:36] <tterrag> btw, this basalt is from chisel :P
L852[06:19:45] ⇦ Quits: quadraxis (~chatzilla@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Quit: ChatZilla 0.9.92 [Firefox 47.0.1/20160623154057])
L853[06:19:52] <tterrag> so, does it look cool? too much? annoying?
L854[06:20:05] <gigaherz> it's ok
L855[06:20:16] <tterrag> it took me all night to get working so YOU BETTER LIKE IT
L856[06:20:17] <RANKSHANK> hard to say since the surrounding rock is carved out :P
L857[06:20:21] <PaleoCrafter> ^
L858[06:20:21] <gigaherz> weren't there other mods that added like, sulfur and such around lava lakes?
L859[06:20:21] <tterrag> kidding >.>
L860[06:20:23] <tterrag> sorta <.<
L861[06:20:39] <PaleoCrafter> would be better to see it in a "natural" environment xD
L862[06:20:40] <tterrag> gigaherz: well it should only replace things that worldgen can replace. so those blocks should still be there
L863[06:20:43] <tterrag> PaleoCrafter: working on it
L864[06:20:47] <gigaherz> aha
L865[06:22:31] <tterrag> http://i.imgur.com/G1ixm6n.png
L866[06:22:44] <tterrag> takes forever to find caves without using /fill >.>
L867[06:22:52] <PaleoCrafter> hehe
L868[06:22:58] <RANKSHANK> does fit pretty well :P
L869[06:23:10] <PaleoCrafter> looks a little meh with the diagonals, I think
L870[06:23:40] <tterrag> and of course there's all these lovely textures you can make with it :D http://i.imgur.com/f9Hlr1t.png
L871[06:23:47] <tterrag> PaleoCrafter: yeah but I thought filling those might be a bit much
L872[06:24:00] <RANKSHANK> wait will this remove the odds of you accidentally mining a block with a lava pool behind it?
L873[06:24:08] <tterrag> RANKSHANK: from below, yes
L874[06:24:11] <tterrag> and from the side, I suppose
L875[06:24:13] <tterrag> but not from above!
L876[06:24:29] <RANKSHANK> the number of worlds I've deleted from that :P
L877[06:24:45] <tterrag> yeah that is the only downside
L878[06:24:55] <tterrag> I considered having it only generate underneath the lakes
L879[06:24:58] <tterrag> not to the sides at all
L880[06:25:01] <gigaherz> I like that
L881[06:25:08] <tterrag> this would have minimal effect on vanilla mechanics
L882[06:25:11] <gigaherz> surprise lava is something I hate ;P
L883[06:25:13] <tterrag> and make basalt a bit trickier to get a hold of
L884[06:25:22] <gigaherz> so for me generating on the sides is also good :3
L885[06:25:23] <tterrag> gigaherz: lava makes so much noise
L886[06:25:37] <RANKSHANK> yeah agree with the sides things, plus in my book
L887[06:25:53] <gigaherz> I usually play with low volume, so I can watch youtube while playing
L888[06:27:33] <RANKSHANK> I've got music blaring when I play bubbles v snares == no contest :P
L889[06:28:22] <tterrag> eh well vote here then https://twitter.com/tterrag1098/status/752102092781727744
L890[06:28:30] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Ping timeout: 384 seconds)
L891[06:31:21] <RANKSHANK> just realized I'm only handling additive blending in my PR as vanilla does... so dark overlays won't work :(
L892[06:32:16] *** amadornes[OFF] is now known as amadornes
L893[06:33:04] ⇦ Quits: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi) (Read error: Connection reset by peer)
L894[06:33:10] <Inari> I'm so confused :D so i cant really just use the ITEM_HANDLER_CAPABILITY since im apaprently not supposed to rely on the default implementation, and also it doesnt have setStackInSlot, only get... so I make my own ItemStackHandler i guess? which I return in getCapability?
L895[06:33:46] <Inari> *in which I return
L896[06:33:53] <Inari> or wait, misread that <.<
L897[06:34:14] <Inari> I guess i'll try to find some code using this...
L898[06:39:11] ⇦ Quits: Necr0 (~Necr0@p200300700D25824901C53599066EFFE6.dip0.t-ipconnect.de) (Quit: Leaving)
L899[06:39:35] <gigaherz> Inari: https://github.com/gigaherz/Ender-Rift/blob/master/src/main/java/gigaherz/enderRift/generator/TileGenerator.java#L38
L900[06:39:37] <gigaherz> this is how I use it
L901[06:39:46] <gigaherz> https://github.com/gigaherz/Ender-Rift/blob/master/src/main/java/gigaherz/enderRift/generator/TileGenerator.java#L79
L902[06:39:59] <gigaherz> https://github.com/gigaherz/Ender-Rift/blob/master/src/main/java/gigaherz/enderRift/generator/TileGenerator.java#L274
L903[06:40:05] <gigaherz> https://github.com/gigaherz/Ender-Rift/blob/master/src/main/java/gigaherz/enderRift/generator/TileGenerator.java#L305
L904[06:40:09] <gigaherz> ignore the loop afterward
L905[06:40:17] <gigaherz> that's for importing from old versiosn
L906[06:40:38] <Inari> why .cast and not return (T) something?
L907[06:40:40] <gigaherz> (on readFromNBT)
L908[06:40:50] *** kroeser|away is now known as kroeser
L909[06:40:55] <tterrag> the latter would generate an unsafe warning
L910[06:40:58] <gigaherz> because "return (T)" forces meto use @SuppressWarnings("unchecked")
L911[06:41:00] <tterrag> .cast is "safe"
L912[06:41:03] <tterrag> (not really)
L913[06:41:07] <Inari> why does rtd say (T) then
L914[06:41:08] <gigaherz> although .cast is also slower
L915[06:41:16] <gigaherz> so I may change back to (T) someday
L916[06:41:18] <tterrag> likely because it was written before the method existed
L917[06:41:22] <gigaherz> yep
L918[06:41:27] <gigaherz> I wrote it before .cast was a thing
L919[06:41:51] <gigaherz> and .cast was only added to shut people up about (T) causing warnings ;P
L920[06:42:00] <Inari> also rtd gave me the impression that the capability buitlins handle nbt read-write :p
L921[06:42:24] <gigaherz> my bad, then ;P
L922[06:42:32] <gigaherz> IStorage is a helper
L923[06:42:40] <gigaherz> for reading and writing default implementations
L924[06:42:51] <gigaherz> and as a reference "this is how reading and writing is meant to be done"
L925[06:42:58] <gigaherz> it's NOT used automatically
L926[06:43:10] <gigaherz> for attached (external) capabilities
L927[06:43:38] <gigaherz> ICapabilitySerializable<tag type> handles reading and writing of the capabilities it manages
L928[06:43:50] <gigaherz> and for internal capabilities, the object's own read/write methods handle it
L929[06:44:01] <gigaherz> in both cases, it has to be coded expicitly
L930[06:44:36] <gigaherz> haha
L931[06:44:36] <gigaherz> https://twitter.com/ThatMumboJumbo/status/752105697744134144
L932[06:44:46] <Wuppy> hrmmm, there were no pokemon at the supermarket :(
L933[06:45:15] <gigaherz> I can imagine Nintendo's people being like
L934[06:45:20] <gigaherz> "why the fuck did we wait so long?!"
L935[06:45:45] <gigaherz> MARIO MAKER ON PC NEXT PLS KTHX
L936[06:46:15] <Wuppy> haha
L937[06:47:52] <Inari> this botania thing doesnt even ever put @CapabililtyInject :s
L938[06:48:21] <Inari> gigaherz: neither does yours xD
L939[06:49:20] <sham1> mario maker on pc what?
L940[06:49:38] <gigaherz> sham1: I was wasking nintendo
L941[06:49:40] <gigaherz> ;P
L942[06:49:42] <Wuppy> https://www.facebook.com/RuinChildhood/videos/1756055737966144/
L943[06:49:46] <gigaherz> Inari: @CapabilityInject
L944[06:50:02] <gigaherz> is for when people want their own reference to the Capability object
L945[06:50:06] <gigaherz> this has a few uses
L946[06:50:11] <gigaherz> first, the Capability implementor
L947[06:50:17] <gigaherz> will want to know their own capability
L948[06:50:18] <gigaherz> such as
L949[06:50:25] <gigaherz> @CapabilityInject(IItemHandler.class)
L950[06:50:33] <gigaherz> public static Capability ITEM_HANDLER_CAPABILITY;
L951[06:50:38] <gigaherz> --
L952[06:50:38] <gigaherz> then
L953[06:50:50] <tterrag> it is more correct IMO to use @CapabilityInject rather than reference the (technically internal) forge field
L954[06:50:54] <gigaherz> someone who wants to reference a capability without using direct references to external classes
L955[06:50:57] <tterrag> however most mods do the latter
L956[06:51:04] <gigaherz> can use @CapabilityInject in their own stuff
L957[06:51:06] <gigaherz> like I did
L958[06:51:34] <gigaherz> https://github.com/gigaherz/Ender-Rift/blob/master/src/main/java/gigaherz/enderRift/plugins/tesla/TeslaController.java#L15
L959[06:51:38] <gigaherz> just instead of a field
L960[06:51:40] <gigaherz> I used it on a method
L961[06:51:51] <gigaherz> so that I can activate the wrappers only IF tesla is present on the system
L962[06:52:00] <tterrag> ew rawtypes
L963[06:52:20] <gigaherz> I wanted to avoid ANY reference to ANY tesla class/interface
L964[06:52:27] <gigaherz> xcept in the class wrappers
L965[06:52:31] <gigaherz> that's why I did it that way
L966[06:52:49] <tterrag> but...that class should never be loaded if tesla doesn't exist
L967[06:52:52] <tterrag> there is no reason to use rawtypes there
L968[06:53:22] <gigaherz> can you override a class with raw types
L969[06:53:26] <gigaherz> by using generic types?
L970[06:53:50] <tterrag> ummm....yes ?
L971[06:53:56] <gigaherz> then I'll look into it
L972[06:54:05] <tterrag> but I was talking about TeslaController
L973[06:54:20] <tterrag> those nested classes should be fine either way
L974[06:54:39] <gigaherz> anyhow
L975[06:55:00] <gigaherz> Inari: as I was saying, the third use of @CapabilityInject
L976[06:55:01] <gigaherz> is that
L977[06:55:02] <Inari> I guess i might have to take a proper look at capabilites someday :P like how they work inside forge
L978[06:55:07] <gigaherz> together with default implementations
L979[06:55:09] <gigaherz> and IStorage
L980[06:55:15] <gigaherz> it lets you implement a capability
L981[06:55:27] <gigaherz> without ever once referencing any interface or class in your stuff
L982[06:55:38] <gigaherz> you can expose capabilities completely blind
L983[06:56:00] <gigaherz> this, of course, requires that the capability's default implementation works as-is
L984[06:56:04] <gigaherz> which is not often the case
L985[06:56:54] <gigaherz> I believe that's the one single case where java generics being erased actually gives a benefit
L986[06:56:55] <gigaherz> ;p
L987[06:57:48] ⇨ Joins: xEviLSpaWnx (~xEvilSpaw@cpc21-pete9-2-0-cust202.4-4.cable.virginm.net)
L988[06:59:44] ⇨ Joins: Brokkoli (~Brokkoli@p5B23C8B2.dip0.t-ipconnect.de)
L989[07:05:33] ⇨ Joins: Lunatrius` (~Lunatrius@77.38.21.26)
L990[07:07:41] ⇦ Quits: Lunatrius (~Lunatrius@77.38.21.26) (Ping timeout: 201 seconds)
L991[07:07:42] *** Lunatrius` is now known as Lunatrius
L992[07:08:55] ⇨ Joins: Javaschreiber (~Thunderbi@p5dd8fc7d.dip0.t-ipconnect.de)
L993[07:09:55] <Inari> I'm either doing this wrong, or this capability stuff overcomplicates things :P probably the former
L994[07:10:29] <Inari> anyway
L995[07:10:37] <Inari> guess i'll sit down tomorrow and look through the forge code and more example code
L996[07:10:43] <gigaherz> it has some extra boilerplate
L997[07:10:46] <gigaherz> but it's for the best
L998[07:10:53] <gigaherz> once you truly learn how they work
L999[07:10:58] <gigaherz> you won't want to go back ;p
L1000[07:11:01] <Inari> making stuff sided seems a pain
L1001[07:11:19] <gigaherz> you don't have to
L1002[07:11:22] <gigaherz> you can ignore the side ;P
L1003[07:11:27] <gigaherz> and if you DO want siding
L1004[07:11:29] <gigaherz> you have two choices
L1005[07:11:46] <Inari> siding is kinda good for machines though
L1006[07:11:48] <gigaherz> option 1: have one single inventory, with a sub-inventory wrapper for each side
L1007[07:12:07] <gigaherz> option 2: have each side's inventory separate
L1008[07:12:10] <Inari> seems i have to return the wrapped subinventory in the getCapability then?
L1009[07:12:18] <gigaherz> with an inventory merger for when you want to access all at onces
L1010[07:12:22] <gigaherz> yes
L1011[07:12:26] <gigaherz> if you choose option 1,
L1012[07:12:28] <gigaherz> you'd have like
L1013[07:12:31] <gigaherz> switch(facing)
L1014[07:12:32] <Inari> :s I guess it works, but seems overcomplicated haha
L1015[07:12:37] <gigaherz> case north: return north;
L1016[07:12:45] <gigaherz> etc
L1017[07:12:53] <gigaherz> default: return master;
L1018[07:13:12] <gigaherz> it's much cleaner overall
L1019[07:13:54] <Inari> maybe, i dont want to change much of this code right now haha ^^ so maybe i'll just ignore siding and reimplement that later.. since its mostly useful fro automation
L1020[07:15:59] ⇨ Joins: yopu (~yopu@184-89-191-67.res.bhn.net)
L1021[07:16:11] *** helinus|off is now known as helinus
L1022[07:17:44] <workshopcraft> now i know how capabilities works its opened up a bunch of options for my mods :P
L1023[07:17:56] <Inari> such as?
L1024[07:18:19] <workshopcraft> well i used capabilities to give a barrel a fake 4k single slot inventory
L1025[07:18:48] <workshopcraft> and i'll be writing my own capabilitiy handler to add a heat API to more foods
L1026[07:19:03] <workshopcraft> so i can make ovens and grills etc.
L1027[07:19:36] <tterrag> well, to also be fair that was perfectly possible before capabilities :P
L1028[07:19:42] <workshopcraft> yes
L1029[07:19:52] <tterrag> but capabilities make it nicer from the integration side
L1030[07:19:58] <workshopcraft> but once i knew how capabilities worked it was much easier for me to implement this way
L1031[07:20:03] <workshopcraft> and it just works
L1032[07:20:08] <workshopcraft> with most things
L1033[07:20:18] <workshopcraft> my barrels now work with hoppers and most mods
L1034[07:20:59] <workshopcraft> will be interesting to see how long it is before the hopper duct author actually sits down and moves to capabilities so he can play with everyone else :P
L1035[07:21:20] ⇨ Joins: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net)
L1036[07:22:47] ⇦ Quits: Naiten (~Naiten@86-102-14-50.xdsl.primorye.ru) (Read error: Connection reset by peer)
L1037[07:30:01] <AndersBillLind> Oh, did you know that you cannot build portals wider than 21 blocks?
L1038[07:30:14] <AndersBillLind> The same limitation for height
L1039[07:31:29] <gigaherz> yes?
L1040[07:31:37] <gigaherz> I mean, it's a known fact of portals XD
L1041[07:32:44] <AndersBillLind> hehe, sorry, I forgot that you know everything :)
L1042[07:33:06] <AndersBillLind> I am trying to find the source to determine the direction after portal travel
L1043[07:33:26] <AndersBillLind> BlockPortal.class seems to not have that
L1044[07:34:15] <AndersBillLind> Entity.class seems promising
L1045[07:35:16] ⇦ Quits: Elec332 (~Elec332@ip5456d4a5.speed.planet.nl) (Ping timeout: 198 seconds)
L1046[07:36:00] *** kroeser is now known as kroeser|away
L1047[07:39:31] <gigaherz> didn't someone already tell you where to look?
L1048[07:39:51] <AndersBillLind> I have been afk for a while
L1049[07:40:04] <AndersBillLind> Also, my irc client did not blink when I came back
L1050[07:41:13] <gigaherz> [12:21] (quadraxis): you probably want net.minecraft.world.Teleporter
L1051[07:41:20] ⇦ Quits: IceDragon (~ThatGuy@69.160.121.46) (Ping timeout: 190 seconds)
L1052[07:42:45] ⇨ Joins: IceDragon (~ThatGuy@63.143.102.0)
L1053[07:43:06] <AndersBillLind> Thanks
L1054[07:50:45] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L1055[07:50:47] <AndersBillLind> Hm, can I edit a source attachment and have the class file updated? :)
L1056[07:52:46] ⇨ Joins: Shambling (~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com)
L1057[07:53:33] <Shambling> ok I'm getting tired of looking, and the coders on here might dable in resource packs a bit too. Anyone have an idea of a script or command line that can delete the first level of a directory structure? I want assets from 100 locations and merge all those assets folders into the root
L1058[07:53:44] <Shambling> i.e. mod1/assets mod2/assets I want to merge both assets into root/assets
L1059[07:54:18] <Shambling> if I can't find something I'll look up powershell programming when I get back from farmers market lol
L1060[07:56:48] <Shambling> if its not raining, maybe I'll try my internet for some more searching. have a good morning or evening or whatever all
L1061[07:58:01] <masa> you mean like (in linux/unix) cp -auxi */assets/* destination/assets/
L1062[07:58:34] <masa> assuming you are in the directory where those mod1, mod2 etc are
L1063[07:59:30] <sham1> Or, he could write a program to do the same if he is not under POSIX-compatible system
L1064[08:08:13] ⇦ Quits: turmfalke (~turmfalke@p20030056CF06BA81CC12FD4D694D7A5B.dip0.t-ipconnect.de) (Ping timeout: 384 seconds)
L1065[08:08:45] <RANKSHANK> https://www.dropbox.com/s/dhfj50x61fpyhyt/Screenshot%202016-07-10%2023.06.04.png?dl=0 When mojang starts incorporating bethesda bugs
L1066[08:10:15] ⇦ Quits: VikeStep (~VikeStep@101.184.243.180) (Read error: Connection reset by peer)
L1067[08:12:16] <heldplayer> I'm not seeing it
L1068[08:13:00] <RANKSHANK> villager has clipped into the ground, just the head is popping up :P
L1069[08:14:40] <heldplayer> lol
L1070[08:14:49] <heldplayer> I thought that was something on the HUD
L1071[08:18:35] ⇨ Joins: turmfalke (~turmfalke@p20030056CF06BAD157EDBBDE2527A260.dip0.t-ipconnect.de)
L1072[08:19:32] ⇨ Joins: hch12907 (~hch12907@1.32.76.173)
L1073[08:22:00] ⇦ Quits: Jezza (~Jezza@92.206.5.6) (Ping timeout: 190 seconds)
L1074[08:23:24] <Inari> RANKSHANK: The Ender Scrolls
L1075[08:24:30] <RANKSHANK> lmfao
L1076[08:28:35] *** TTFT|Away is now known as TTFTCUTS
L1077[08:38:55] ⇦ Quits: raoulvdberge (uid95673@id-95673.richmond.irccloud.com) (Quit: Connection closed for inactivity)
L1078[08:43:07] ⇨ Joins: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi)
L1079[08:45:40] ⇨ Joins: BlueMonster (uid82864@id-82864.tooting.irccloud.com)
L1080[08:50:22] *** kroeser|away is now known as kroeser
L1081[08:52:03] ⇨ Joins: Jezza (~Jezza@92.206.5.6)
L1082[08:55:12] *** Darkhax_AFK is now known as Darkhax
L1083[09:06:52] <Inari> i somehow broke my buildscript :s
L1084[09:07:11] <Inari> Warning:<i><b>root project 'Integrated-Circuits': Unable to resolve additional buildscript classpath dependencies</b>Details: groovy.lang.MissingPropertyException: No such property: id for class: org.gradle.api.internal.artifacts.DefaultResolvedArtifactPossible solutions: file</i> o.o
L1085[09:09:40] <sham1> <b> does not get closed
L1086[09:09:49] <Inari> haha
L1087[09:09:50] <Inari> tell idea
L1088[09:09:55] ⇦ Quits: auenf (David@DC-72-89.bpb.bigpond.com) (Remote host closed the connection)
L1089[09:10:12] <Inari> sham1: it does though
L1090[09:10:53] ⇨ Joins: auenf (David@DC-72-89.bpb.bigpond.com)
L1091[09:11:41] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Ping timeout: 384 seconds)
L1092[09:20:32] <AndersBillLind> When I create a bug report to bugs.mojang.com, how would they react if I attached a junit test using forge that demonstrated the problem?
L1093[09:23:03] ⇨ Joins: sinkillerj (~sinkiller@nc-67-232-14-224.dhcp.embarqhsd.net)
L1094[09:23:44] <AndersBillLind> Would they approve?
L1095[09:25:12] ⇨ Joins: Ordinastie_ (~Ordinasti@87-231-58-94.rev.numericable.fr)
L1096[09:26:26] ⇦ Quits: Abastro (~abab9579@112.166.128.227) (Ping timeout: 201 seconds)
L1097[09:27:56] <Javaschreiber> As Forge doesn't contain any modified files from mojang when shipped, they can't be angry because of copy right stuff. And if you provide code, I would be happy in their place, because it is easier to track the problem down.
L1098[09:29:38] <sham1> Well, forge does patch stuff though
L1099[09:29:50] <sham1> mostly for the sake of compatibility
L1100[09:30:06] ⇨ Joins: sciguyryan (~sciguyrya@94.242.205.34)
L1101[09:31:41] ⇦ Quits: hch12907 (~hch12907@1.32.76.173) (Ping timeout: 186 seconds)
L1102[09:32:03] ⇨ Joins: hch12907 (~hch12907@183.171.166.80)
L1103[09:34:28] <AndersBillLind> Seems hard to include as little as possible when creating such a test
L1104[09:35:23] <AndersBillLind> I need a World instance at least
L1105[09:35:38] <AndersBillLind> To place blocks
L1106[09:38:34] ⇦ Quits: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net) (Ping timeout: 186 seconds)
L1107[09:38:47] <LatvianModder> Sangar: Can you please change some of your item OD names? :P
L1108[09:38:57] ⇦ Quits: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net) (Ping timeout: 186 seconds)
L1109[09:45:09] *** kroeser is now known as kroeser|away
L1110[09:47:57] ⇦ Quits: Drullkus (~Dru11kus@2601:646:8301:ead3:f0fa:e0f2:c369:41e3) (Remote host closed the connection)
L1111[09:48:08] *** kroeser|away is now known as kroeser
L1112[09:48:27] ⇨ Joins: Drullkus (~Dru11kus@2601:646:8301:ead3:f0fa:e0f2:c369:41e3)
L1113[09:51:37] <Inari> LatvianModder: sangar is away for like 5 days btw
L1114[09:51:41] ⇦ Quits: Drullkus (~Dru11kus@2601:646:8301:ead3:f0fa:e0f2:c369:41e3) (Ping timeout: 186 seconds)
L1115[09:52:09] <LatvianModder> kk
L1116[09:53:16] ⇨ Joins: candybar (~foo@adsl-074-181-053-011.sip.sav.bellsouth.net)
L1117[09:53:55] ⇨ Joins: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net)
L1118[09:53:56] <unascribed> https://unascribed.com/v/8eb26c34.mp4
L1119[09:54:00] <unascribed> the first three are XM, the last is MOD :D
L1120[09:54:24] <Inari> so, for a 7-segment dispaly, that renders in-world and can be updated by redstone... do i put the info on which segments are on into it in getExtendedState, and then rendering the lit segments in ISmartBlockModel's handleBlockState? should be better tan using a TESR at least? or whats a good way to do so...
L1121[09:54:46] <unascribed> Inari, that's the ideal way, yes
L1122[09:54:56] <unascribed> that way it gets baked into the chunk as a model
L1123[09:54:59] <Inari> okay, thanks :3
L1124[09:55:14] <Inari> it might often update though, is my worry
L1125[09:55:17] <unascribed> assuming I have my smart model logic right
L1126[09:55:18] <unascribed> I may not
L1127[09:55:22] <unascribed> well
L1128[09:55:24] <unascribed> if it's redstone powered
L1129[09:55:30] <unascribed> the redstone will /also/ update the chunk
L1130[09:55:32] <unascribed> so... moot point
L1131[09:55:35] <Inari> hmm i suppose
L1132[09:55:41] <Inari> will try this way then ^^
L1133[09:55:49] <Inari> unascribed: hows your dungeoning going :o
L1134[09:56:01] <unascribed> if models make you want to tear all your hair out and stab your eyes, you may want to try FastTESR
L1135[09:56:04] <unascribed> dungeoning is going okay
L1136[09:56:25] <unascribed> I've never really done procedural gen, so it's a lot of stumbling around and ramming into walls
L1137[09:56:44] <unascribed> hence why I added some XM and MOD records :P
L1138[09:56:46] <Inari> oh, thats what the dungeon planner thing was for?
L1139[09:56:52] <unascribed> hm?
L1140[09:57:03] <Inari> you posted an image of a dungeon planner
L1141[09:57:36] <unascribed> yeah, that's a debug tool for showing the raw 2D plan of the dungeon
L1142[09:57:48] <unascribed> it'll get shoved into a dungeon dimension
L1143[09:59:12] ⇦ Quits: portablejim (~portablej@2001:4830:1200:8083:3c59:e7e:f65e:2aa8) (Remote host closed the connection)
L1144[10:10:42] <RANKSHANK> Man it's not looking good for supporting dark effect overlays :P
L1145[10:14:47] ⇦ Quits: GildedGames (~GildedGam@ec2-54-166-29-150.compute-1.amazonaws.com) (Remote host closed the connection)
L1146[10:14:56] ⇨ Joins: GildedGames (~GildedGam@ec2-174-129-131-190.compute-1.amazonaws.com)
L1147[10:18:04] ⇨ Joins: RichardG (~richardg8@201.17.104.196)
L1148[10:18:04] MineBot sets mode: +v on RichardG
L1149[10:18:10] <Inari> soooo
L1150[10:18:22] <Inari> where do I get the IBakedModel from in 1.9... since ISmart thingy is gone
L1151[10:19:14] <hch12907> how do I pack the mod together into a .jar?
L1152[10:19:27] <PaleoCrafter> gradlew build
L1153[10:19:57] <hch12907> thanks
L1154[10:20:20] <gigaherz> Inari: IBakedModel#getQuads
L1155[10:20:26] <gigaherz> has the blockstate
L1156[10:20:36] <gigaherz> so rather than have a "handleBlockState" that returns another baked model
L1157[10:20:38] <Inari> yeah sure
L1158[10:20:40] <gigaherz> you can just return the quads directly
L1159[10:20:42] *** kroeser is now known as kroeser|away
L1160[10:20:43] <Inari> but i need an IBakedModel for taht
L1161[10:20:53] <gigaherz> that works exactly the same as how ISmartBlockModel did
L1162[10:21:00] <gigaherz> you either use the ModelBakeEvent
L1163[10:21:07] <gigaherz> or you register an ICustomModelLoader
L1164[10:21:09] <Inari> then i didnt understand smartmodel from the docs
L1165[10:21:15] <Mraof> Blocks are still limited to 4 bits of metadata, right?
L1166[10:21:21] <gigaherz> yup
L1167[10:21:40] <gigaherz> Inari: the "nice" option
L1168[10:21:45] <gigaherz> is to register a custom model loader
L1169[10:21:54] <gigaherz> from the custom model loader's accepts method
L1170[10:21:57] <Mraof> Okay
L1171[10:22:06] <Mraof> So blockstates are mainly to make things more readable?
L1172[10:22:08] <gigaherz> return true if the given ResourceLocation is an artificial one that you handle
L1173[10:22:21] <PaleoCrafter> you can add additional stuff to the blockstate for rendering, Mraof
L1174[10:22:27] <PaleoCrafter> via getActualState
L1175[10:22:33] <LatvianModder> lol, 23, 23, 23 https://github.com/LatvianModder
L1176[10:22:36] <gigaherz> and in the loadModel method, you'll return a custom IModel
L1177[10:22:38] <PaleoCrafter> but yeah, they're mostly to abstract away the numbers
L1178[10:22:40] <gigaherz> then
L1179[10:22:43] <gigaherz> this custom IModel
L1180[10:22:49] <gigaherz> has a chance to tell the loader to require other models
L1181[10:22:51] <gigaherz> and textures
L1182[10:22:58] <Inari> hm :s
L1183[10:22:58] <gigaherz> (getDependencies, and getTextures)
L1184[10:23:02] <gigaherz> and finally
L1185[10:23:08] <gigaherz> the IModel's bake method
L1186[10:23:19] <gigaherz> is where you return the custom IBakedModel
L1187[10:23:31] <Mraof> Okay
L1188[10:23:40] <gigaherz> option 2 (less nice)
L1189[10:23:51] <gigaherz> is to use the ModelBakeEvent to register the custom IBakedModel explicitly
L1190[10:24:10] <gigaherz> and TextreStitchevent to explicitly require the textures you may need
L1191[10:24:41] <Inari> maybe i'll try the nicer way :P
L1192[10:24:41] <gigaherz> this, however, doesn't have a direct way to require other models
L1193[10:25:00] <Inari> especially as this is multi-stepped rendering i believe
L1194[10:25:05] <gigaherz> it's just 3 classes, ask for help if you don't understand them ;P
L1195[10:25:53] <Inari> (its for integrated circuits, so it would render the base, and on top of that a 7seg disapy, or maybe bundled cable if thats ont he circuits and such stuff)
L1196[10:25:58] <Inari> so i believe its nice to be able to require other models
L1197[10:26:02] <gigaherz> for the resloc string, you can simply use something like "youtmod:custom/whatever"
L1198[10:26:11] <gigaherz> to differentiate from the actual real model locations
L1199[10:26:25] <gigaherz> yep
L1200[10:26:29] <gigaherz> that's why I said it first
L1201[10:26:33] <gigaherz> because it's the best option generally
L1202[10:26:36] <Inari> okay, will try around with that ^^ thanks
L1203[10:28:27] <Inari> hm neat, i just had a mod idea xD boat "minecarts"... basically boats that can be loaded iwth chests like minecarts can, and then there is a "boat lane" item that you place down on water to have boats follow it
L1204[10:28:40] ⇦ Quits: hch12907 (~hch12907@183.171.166.80) (Ping timeout: 198 seconds)
L1205[10:29:14] <gigaherz> heh
L1206[10:29:33] <LatvianModder> Is disconnect.spam added by minecraft now?
L1207[10:29:54] <LatvianModder> Because that only happens on my MP server when I claim rapidly
L1208[10:30:34] <Inari> mosttly cause i dont know of automated boat mods... and this map has lots of isalnds and rivers, so it would be a nice replacement for minecarts where i need to build big bridges over the water
L1209[10:30:57] ⇨ Joins: Turkey (~Turkey@cpe-24-95-73-99.columbus.res.rr.com)
L1210[10:31:31] ⇨ Joins: hch12907 (~hch12907@183.78.45.146)
L1211[10:32:25] <Inari> I have too many mod ideas <.<
L1212[10:34:07] ⇦ Quits: Brokkoli (~Brokkoli@p5B23C8B2.dip0.t-ipconnect.de) (Quit: Die Sprache der Politik ist daf�r gemacht, dass L�gen wahr klingen und das T�ten angemessen wirkt. (George Orwell))
L1213[10:36:38] ⇨ Joins: Brokkoli (~Brokkoli@p5B23C8B2.dip0.t-ipconnect.de)
L1214[10:37:35] *** kroeser|away is now known as kroeser
L1215[10:40:58] ⇨ Joins: stiforr (~stiforr@ip72-216-4-156.pn.at.cox.net)
L1216[10:41:39] <PaleoCrafter> Inari, feel free to share them :P
L1217[10:41:50] <PaleoCrafter> you have a gift xD
L1218[10:42:20] <Inari> PaleoCrafter: haha :P they are rough ideas, not much worked out. and i'd think most people have enough ideas o.o
L1219[10:45:21] <PaleoCrafter> well, I certainly don't :P
L1220[10:48:40] ⇦ Quits: Chais (~Chais@62.178.210.212) (Read error: Connection reset by peer)
L1221[10:49:05] ⇨ Joins: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net)
L1222[10:51:56] ⇨ Joins: Chais (~Chais@62.178.210.212)
L1223[10:52:33] ⇦ Quits: Drullkus (~Dru11kus@c-67-180-188-243.hsd1.ca.comcast.net) (Ping timeout: 186 seconds)
L1224[10:56:16] <Wuppy> what's up guys :)
L1225[10:56:30] <PaleoCrafter> the ceiling/sky
L1226[10:56:34] <Wuppy> :|
L1227[10:56:47] <Wuppy> nvm then :V
L1228[10:56:48] <PaleoCrafter> I'll see myself out
L1229[10:56:56] <Inari> BTM of course
L1230[10:57:49] <PaleoCrafter> 'BTM' could be an abbreviation for 'bottom', so that'd be everything but up :P
L1231[10:58:47] <Inari> haha
L1232[11:01:08] *** cpw|out is now known as cpw
L1233[11:02:07] ⇦ Quits: hch12907 (~hch12907@183.78.45.146) (Read error: Connection reset by peer)
L1234[11:05:35] <xEviLSpaWnx> Well sorted my random crashes out, was fast leaf decay mod :(
L1235[11:09:19] ⇨ Joins: Girafi (Girafi@0x555178eb.adsl.cybercity.dk)
L1236[11:12:40] <AndersBillLind> To be able to create the a unit test, I need to create a World object without using the provided constructor, else, the Bootstrap class will be in use
L1237[11:12:43] <AndersBillLind> Is that possible?
L1238[11:13:07] <AndersBillLind> Should I just copy the code? That is maybe the cleanest way
L1239[11:13:07] ⇦ Quits: Lunatrius (~Lunatrius@77.38.21.26) (Ping timeout: 201 seconds)
L1240[11:13:26] <gigaherz> do you actually need a clas that extends World?
L1241[11:13:54] <gigaherz> because you can't extend without using one of the constructors
L1242[11:14:35] <AndersBillLind> The logic of BlockPortal uses World extensively, for instance setBlockState
L1243[11:16:00] ⇨ Joins: Lunatrius (~Lunatrius@77.38.21.26)
L1244[11:16:18] <xEviLSpaWnx> #join #EviLsKript
L1245[11:16:23] <AndersBillLind> I tested to inherit from World and kept the block in a TreeMap<BlockPos, IBlockState>
L1246[11:16:36] <AndersBillLind> The ctor of World has a lot of side effects however
L1247[11:17:11] <AndersBillLind> Ah, I must override some methods in Provider probably
L1248[11:17:18] <AndersBillLind> Trying that later
L1249[11:17:29] <AndersBillLind> Eh, WorldProvider
L1250[11:18:58] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L1251[11:22:43] ⇨ Joins: gamax92 (gamax92@The.Dragon.Slayer.PanicBNC.eu)
L1252[11:32:31] ⇨ Joins: CoderPuppy (~cpup@32.218.119.171)
L1253[11:34:00] ⇨ Joins: McJty (~jorrit@94-225-203-206.access.telenet.be)
L1254[11:34:42] ⇦ Quits: cpup (~cpup@32.218.119.91) (Ping timeout: 201 seconds)
L1255[11:38:28] ⇦ Quits: Lunatrius (~Lunatrius@77.38.21.26) (Ping timeout: 384 seconds)
L1256[11:39:55] <Inari> do i still check texture type in TextureStitchEvent?
L1257[11:41:47] ⇨ Joins: Lunatrius (~Lunatrius@77.38.21.26)
L1258[11:43:11] <sham1> Test
L1259[11:43:14] <sham1> test
L1260[11:43:16] <sham1> Hmm
L1261[11:43:27] <MiniDigger> test failed
L1262[11:43:36] <sham1> Yes
L1263[11:43:41] <sham1> Irssi is being stupid
L1264[11:43:56] <MiniDigger> get a real client then ^^
L1265[11:44:03] <sham1> >real
L1266[11:44:09] <sham1> Check your priviledge
L1267[11:44:19] <MiniDigger> ^^
L1268[11:44:33] ⇦ Parts: sham1 (~sham1@weneg.de) ())
L1269[11:44:39] ⇨ Joins: sham1 (~sham1@weneg.de)
L1270[11:47:19] <PaleoCrafter> Inari, don't think so
L1271[11:47:21] <PaleoCrafter> it's all one atlas now
L1272[11:47:22] <plathrop> I use a fake IRC client. Sends Markov-chain generated messages to both ends.
L1273[11:47:44] ⇨ Joins: cpup (~cpup@32.218.119.202)
L1274[11:48:03] <sham1> Should probably roll up my own made irc client
L1275[11:48:10] <sham1> Roll it back up
L1276[11:48:14] <sham1> I should say
L1277[11:48:20] <sham1> Primitive yet beautiful
L1278[11:48:34] <plathrop> ERC was fun for awhile. IRC in emacs!
L1279[11:48:49] <sham1> >emacs
L1280[11:48:53] ⇦ Quits: CoderPuppy (~cpup@32.218.119.171) (Ping timeout: 201 seconds)
L1281[11:49:07] <Inari> okay
L1282[11:49:15] <sham1> Kidding
L1283[11:49:51] <plathrop> I'm that rare emacs user that doesn't care if anyone else uses it
L1284[11:49:57] <plathrop> I use vi all the time too
L1285[11:50:05] <Inari> Hm, I need to find more example mods to look at haha
L1286[11:50:15] <sham1> I love EVIL mode
L1287[11:50:23] <Inari> in the meanitme, how do I get a compnent id for making UI fields? or do i manually assign those
L1288[11:50:31] <plathrop> And Intillij of course for Java because real IDEs rule for Java coding.
L1289[11:51:11] <plathrop> I can't spell today.
L1290[11:51:13] <sham1> eclim and then you can use either Emacs or Vim
L1291[11:51:17] <PaleoCrafter> unless you're extending some Vanilla class adding buttons, use whatever you want, Inari
L1292[11:51:29] <sham1> And have the code completion provided by Eclipse
L1293[11:51:39] <sham1> But that is inconvenient AF
L1294[11:51:41] <Inari> extending GuiContainer
L1295[11:51:57] <PaleoCrafter> then use whatever you want
L1296[11:52:06] <Inari> okay, thanks again ^^
L1297[11:52:18] <sham1> IDEA is a beast
L1298[11:52:26] <sham1> And I also love clion for C++ stuff
L1299[11:52:42] <sham1> Because fuck trying to deal with gdb from the command line
L1300[11:52:43] <plathrop> Yeah, I'm just so used to IDEA for Java because I use it at work so much
L1301[11:52:47] <plathrop> Amen to that
L1302[11:52:50] <sham1> I am spoiled by GUI debuggers
L1303[11:52:57] <plathrop> command-line gdb is a UI nightmare
L1304[11:53:02] <sham1> UX
L1305[11:53:14] <sham1> My User eXperience is not the best when I use gdb
L1306[11:53:19] <sham1> from command line
L1307[11:53:50] <plathrop> yeah, that's what I meant
L1308[11:54:09] <sham1> FFS, I don't even know how to set breakpoints to specific lines of code
L1309[11:54:14] <sham1> Nor how to single step
L1310[11:54:42] <sham1> And being able to look at the code you are debugging is so good for debugging
L1311[11:55:57] <plathrop> I need to learn C or C++ at some point.
L1312[11:56:08] <plathrop> I can muddle through reading it, but can't write it to save my life.
L1313[11:56:18] <sham1> It's fun
L1314[11:56:33] <sham1> Until SEGFAULT
L1315[11:56:34] <gamax92> Working on networking and I've realized most of my packets would be for calling a method or setting a field on a tileentity, except that I can't quite do that since you're not supposed to be accessing the world from the networking thread
L1316[11:57:31] <sham1> You can have your code be executed in either the client or server threads
L1317[11:57:43] <sham1> Don't remember the method name off the top of my head
L1318[11:57:48] <sham1> It takes a Runnable
L1319[11:57:58] <sham1> Or Callable<?>
L1320[11:58:37] <Javaschreiber> Giving up working out the forge animation system for the day. Undocumented...
L1321[11:58:45] ⇦ Quits: Lunatrius (~Lunatrius@77.38.21.26) (Ping timeout: 201 seconds)
L1322[11:58:58] <sham1> Ask Fry when he is contact-able
L1323[11:59:06] <sham1> Or look at the forge repository
L1324[12:01:52] ⇦ Quits: Katrix (~Katrix@2a02:fe0:cb10:2420:3dee:7372:aa77:73b) (Quit: Leaving)
L1325[12:04:19] <PaleoCrafter> https://gist.github.com/RainWarrior/964ed4692f4da1fd4964 here's the grammar, Javaschreiber :P
L1326[12:04:42] <Javaschreiber> PaleoCrafter: Thanks a lot!
L1327[12:06:59] <PaleoCrafter> apart from that it pretty much boils down to https://goo.gl/lFcMxC and https://goo.gl/4l5NvG as far as "documentation" is concerned
L1328[12:11:07] <Javaschreiber> This is helping, but sadly I had a hard time finding it with google / duckduckgo
L1329[12:12:05] <PaleoCrafter> fry|back18aug really should get his shit together and write a bit of documentation for the official docs :P
L1330[12:23:07] ⇨ Joins: Baughn (~Baughn@madoka.brage.info)
L1331[12:24:21] ⇦ Quits: AndersBillLind (~anders@217-211-66-29-no23.tbcn.telia.com) (Ping timeout: 384 seconds)
L1332[12:30:44] ⇦ Quits: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net) (Read error: Connection reset by peer)
L1333[12:31:12] ⇨ Joins: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net)
L1334[12:34:15] ⇨ Joins: CoderPuppy (~cpup@32.218.112.60)
L1335[12:34:42] ⇨ Joins: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se)
L1336[12:36:20] ⇦ Quits: cpup (~cpup@32.218.119.202) (Ping timeout: 190 seconds)
L1337[12:39:59] <Inari> new name for .getVanillaDimension? on net.minecraft.world.storage.WorldInfo
L1338[12:41:46] ⇦ Quits: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net) (Ping timeout: 186 seconds)
L1339[12:43:49] <Inari> why doesnt the normal getCapability itemhandler support setStackInSlot?
L1340[12:48:20] <Delenas> You want IItemHandlerModifiable
L1341[12:48:36] <Inari> do i just cast it to that?
L1342[12:48:52] <Delenas> You can. The slots do it.
L1343[12:50:06] <Inari> so ((IItemHandlerModifiable)te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null)).setStackInSlot(0, stack); ?
L1344[12:51:07] <gamax92> is FMLClientHandler.instance().getClient() different than Minecraft.getMinecraft(), or is one preferred?
L1345[12:52:41] ⇦ Quits: RawringNymNym (~maria@BMTNON3746W-LP140-06-1096638498.dsl.bell.ca) (Ping timeout: 384 seconds)
L1346[12:53:34] ⇦ Quits: sciguyryan (~sciguyrya@94.242.205.34) (Remote host closed the connection)
L1347[12:53:54] <Delenas> Inari what
L1348[12:53:57] ⇨ Joins: cpup (~cpup@32.218.112.115)
L1349[12:54:12] <Inari> Delenas: hm? :p
L1350[12:54:38] <Delenas> Store the cap as an interface first, it's far more readable for ya. And where are you directly setting a stack, out of curiosity?
L1351[12:55:33] <Inari> dunno, probably something that just sets a stack :D im mostly trying to make this work haha... and sure, just wondering if thats right
L1352[12:55:38] <Delenas> Gamax, as far as I know, the fml version cleanly errors out. I may be wrong.
L1353[12:55:40] ⇦ Quits: CoderPuppy (~cpup@32.218.112.60) (Ping timeout: 190 seconds)
L1354[12:56:29] <Delenas> Think of Client and CommonHandler like your mod's proxies.
L1355[12:57:07] <Delenas> Brb
L1356[12:57:11] ⇦ Quits: Delenas (~Delenas@2600:1016:b11a:e44b:512a:ade8:ea8e:17df) (Quit: rawr.)
L1357[12:58:20] ⇨ Joins: Delenas (~Delenas@2600:1016:b11a:e44b:1526:6510:f029:ac72)
L1358[12:58:31] ⇨ Joins: Intektor (~Intektor4@p5B27532A.dip0.t-ipconnect.de)
L1359[12:59:02] <Inari> this container business is confusing
L1360[12:59:05] <Intektor> I am trying to make the player place a block on the client, so I probably have to send a package to the server, how is this vanilla packet called
L1361[13:00:36] <Inari> i mean, i have no IInventory... but Slot wants one
L1362[13:01:16] *** Kolatra is now known as Kolatra|away
L1363[13:02:18] <TehNut> SlotItemHandler
L1364[13:04:54] ⇨ Joins: KnightMiner (~KnightMin@68.255.4.5)
L1365[13:05:56] <Inari> ah, thanks ^^
L1366[13:07:43] <jackmcbarn> when i do "./gradlew eclipse", it looks successful, but then i don't see an eclipse workspace anywhere
L1367[13:09:07] ⇦ Quits: IceDragon (~ThatGuy@63.143.102.0) (Ping timeout: 384 seconds)
L1368[13:09:59] <Javaschreiber> jackmcbarn: You need to make your own and import the Forge porject.
L1369[13:10:19] <jackmcbarn> i thought the point of ./gradlew eclipse was to do that for me
L1370[13:13:58] <PaleoCrafter> it generates the project
L1371[13:14:01] <PaleoCrafter> no the workspace
L1372[13:16:28] <RANKSHANK> https://github.com/RANKSHANK/MinecraftForge/commit/7222ef414003e2f229c15c6eeeaac23854dd6c09?diff=split since I can't rebase the PR :P
L1373[13:16:53] ⇦ Quits: rebecca_ (~rebecca@209.95.50.24) (Ping timeout: 186 seconds)
L1374[13:19:37] ⇨ Joins: PBlock96 (~PBlock96@64.53.13.215)
L1375[13:20:29] ⇦ Quits: auenf (David@DC-72-89.bpb.bigpond.com) (Ping timeout: 186 seconds)
L1376[13:21:13] ⇨ Joins: CoderPuppy (~cpup@32.218.112.199)
L1377[13:21:38] ⇨ Joins: auenf (David@DC-72-89.bpb.bigpond.com)
L1378[13:23:20] ⇦ Quits: cpup (~cpup@32.218.112.115) (Ping timeout: 190 seconds)
L1379[13:26:53] ⇨ Joins: aidancbrady (~aidancbra@c-24-125-34-75.hsd1.ga.comcast.net)
L1380[13:27:15] ⇦ Quits: kimfy (~kimfy@236.5.200.37.customer.cdi.no) (Read error: Connection reset by peer)
L1381[13:28:00] ⇦ Quits: Baughn (~Baughn@madoka.brage.info) (Quit: ZNC 1.6.2+deb1 - http://znc.in)
L1382[13:29:47] ⇨ Joins: raoulvdberge (uid95673@id-95673.richmond.irccloud.com)
L1383[13:33:28] <Inari> i somehow broke gradle ;-; warnings ni buildscript, warnings when refreshign gradle project, cant start client/server cause "Exception in thread "main" java.lang.ClassNotFoundException: GradleStart" :/ i even did clean setupDecompWorkspace idea again (deleting the old files) (with idea closed during that) and still broken...
L1384[13:37:22] <PaleoCrafter> do not use the idea task
L1385[13:37:47] <Inari> it worked so far o.o what instead? intellij?
L1386[13:38:00] ⇨ Joins: Lunatrius (~Lunatrius@77.38.21.26)
L1387[13:38:05] <diesieben07> File > Open > select build.gradle
L1388[13:38:06] <diesieben07> done :)
L1389[13:39:57] <Inari> same issue though, except now i dont even have a client/server thing premade
L1390[13:40:21] <gigaherz> Inari:
L1391[13:40:27] <gigaherz> step 1: open build.gradle, and import with default settings
L1392[13:40:34] <gigaherz> step 2: open the gradle panel and wait for it to fill in
L1393[13:40:46] <gigaherz> step 3: doubleclick the setupDecompWorkspace task
L1394[13:40:58] <gigaherz> step 4: click the blue refresh icon on the gradle panel (NOT the main toolbar)
L1395[13:41:13] <gigaherz> step 5: run the genIntellijRuns task
L1396[13:41:20] <gigaherz> step 4 and 5 can be done in different orders
L1397[13:41:54] <Inari> Exception in thread "main" java.lang.ClassNotFoundException: GradleStart :<
L1398[13:42:10] <gigaherz> did you actually click the blue refresh icon?
L1399[13:42:14] <Inari> yeah
L1400[13:42:24] <gigaherz> did the setupDecompWorkspace actually complete successfully?
L1401[13:42:30] <Inari> yeah
L1402[13:42:39] <gigaherz> not failed due to not enough memory?
L1403[13:42:42] <gigaherz> then it should be working.
L1404[13:42:44] <Inari> no?
L1405[13:42:44] <gigaherz> wait
L1406[13:42:46] <gigaherz> idea 2016?
L1407[13:42:52] <Inari> yeah
L1408[13:43:03] <gigaherz> yeah you may be having the bug where it doesn't attach the sources
L1409[13:43:09] <gigaherz> someone else may know how to fix that
L1410[13:43:11] <Inari> ¬_¬
L1411[13:43:14] <gigaherz> I don't use idea 2016 ;P
L1412[13:43:25] <Inari> i had been waiting for months to follow this "Update!" thingy
L1413[13:43:29] <Inari> and now i update and stuff is crap haha
L1414[13:43:48] <KnightMiner> Use Eclipse, never let me down
L1415[13:43:51] <gigaherz> it's just a tiny fix
L1416[13:43:54] <Inari> i hate eclipse
L1417[13:43:58] ⇨ Joins: Baughn (~Baughn@madoka.brage.info)
L1418[13:44:02] <gigaherz> KnightMiner: lucky you.
L1419[13:44:26] ⇦ Quits: Baughn (~Baughn@madoka.brage.info) (Client Quit)
L1420[13:44:37] ⇨ Joins: Baughn (~Baughn@madoka.brage.info)
L1421[13:44:43] <gigaherz> aha
L1422[13:44:44] <gigaherz> yeah
L1423[13:44:52] <gigaherz> Inari: open the "edit configurations" panel
L1424[13:44:52] <Inari> guess i'll watch https://www.youtube.com/watch?v=yanCpy8p2ZE
L1425[13:44:57] <Inari> haha
L1426[13:45:05] <gigaherz> and edit the two tasks
L1427[13:45:12] <gigaherz> to actually have the "module" assigned
L1428[13:45:14] <PaleoCrafter> yeah, you have to use the main module
L1429[13:45:27] ⇦ Quits: Baughn (~Baughn@madoka.brage.info) (Client Quit)
L1430[13:45:42] <PaleoCrafter> FG sets the top-level module, but that isn't the one containing the references anymore from 2016 onwards
L1431[13:46:14] <Inari> well except for the buildscript warnings still being weird, it starts \o/
L1432[13:46:15] <Inari> thanks
L1433[13:46:16] <gigaherz> so the "bug" is in the genIntellijRuns task, sortof
L1434[13:48:10] <PaleoCrafter> technically, you can circumvent it by unchecking the "create separate modules for source sets" thing when importing the build.gradle
L1435[13:48:32] <PaleoCrafter> Inari, editor support for the build.gradle isn't the best xD
L1436[13:49:33] <Inari> blocks are not put into it at all if it cant find their model?
L1437[13:50:53] <Delenas> So.. adding a hand param to the Gui capabilities. Because I started to think of lots of uses for it.
L1438[13:51:50] <Delenas> For tiles, could open a different gui based on which hand you use. For entities, they could, say, favor a trade if you're using your offhand. For items- well, grab the stack with it.
L1439[13:52:42] <PaleoCrafter> haha, imagine cultures where the left hand is considered dirty :D
L1440[13:52:58] <PaleoCrafter> "I refuse to trade with you"
L1441[13:53:30] <Delenas> But yes, it has uses.
L1442[13:53:58] <Delenas> Anyway. Adding more documentation, because documentation is never bad.
L1443[13:54:50] <P3pp3rF1y> Is there an item override or event I can subscribe to that would get triggered when held item changes?
L1444[13:55:01] <P3pp3rF1y> and that is a server side one
L1445[13:55:44] <P3pp3rF1y> I spent a bit time looking for it, but it seems to me that vanilla just changes it without letting the previous item know
L1446[13:55:50] <P3pp3rF1y> and that's kind of an issue for me
L1447[13:57:10] <diesieben07> if it is that is a bad design
L1448[13:57:13] <diesieben07> why do you need to know?
L1449[13:57:32] <P3pp3rF1y> because my item allows player to fly when right click is held
L1450[13:57:41] <diesieben07> you need a tick handler
L1451[13:57:43] <P3pp3rF1y> and I need to set allowflying otherwise server kicks them
L1452[13:57:48] <Delenas> Okay, that test solves the problem of passing an EnumFacing into the item gui providers. Now you pass the hand into the openGui method.
L1453[13:58:22] <P3pp3rF1y> and I am setting it back to false onplayerstoppedusing, but that doesn't get triggered when item changes while right click is held
L1454[13:59:42] <P3pp3rF1y> by tick handler I assume you mean onUsingTick which is what I am using
L1455[14:00:23] <diesieben07> No, I mena PlayerTickEvent
L1456[14:01:45] ⇨ Joins: cpup (~cpup@32.218.113.47)
L1457[14:02:28] ⇨ Joins: theFlaxbeard (~theFlaxbe@65-128-149-69.mpls.qwest.net)
L1458[14:02:30] <P3pp3rF1y> well, I believe that in that case I would only be able to check for whether they use my item and if not set allowflying to false, but that can break other mods
L1459[14:02:55] <P3pp3rF1y> I guess I will check if I can manipulate the time value that server uses to track how long they are in the air
L1460[14:03:37] ⇦ Quits: CoderPuppy (~cpup@32.218.112.199) (Ping timeout: 192 seconds)
L1461[14:05:37] <Delenas> diesie. Why the note here? https://github.com/MinecraftForge/MinecraftForge/pull/3073/files#r70177499
L1462[14:05:45] <Delenas> Trying to polish this thing up the rest of the way.
L1463[14:06:53] <diesieben07> because FMLs channel does not know about IMessages
L1464[14:07:00] <diesieben07> i am surprised this works at all in SP
L1465[14:07:03] <diesieben07> it will certainly NOT work in MP
L1466[14:07:21] ⇨ Joins: quadraxis (~chatzilla@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L1467[14:08:23] ⇦ Quits: McJty (~jorrit@94-225-203-206.access.telenet.be) (Quit: Leaving)
L1468[14:09:23] ⇨ Joins: AndersBillLind (~anders@217-211-66-29-no23.tbcn.telia.com)
L1469[14:09:30] ⇨ Joins: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net)
L1470[14:11:27] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Ping timeout: 384 seconds)
L1471[14:11:52] <Delenas> What should I use instead?
L1472[14:12:02] <diesieben07> Look at the other FML messages
L1473[14:14:35] <PaleoCrafter> is there any safe method for TEs that gets called when they're first created, but after the world etc. was initialised?
L1474[14:16:43] <Horfius> What is the best way to grab the GL_VERSION when not on the render thread(no context)?
L1475[14:17:16] <kenzierocks> PaleoCrafter: no
L1476[14:17:27] <PaleoCrafter> dammit
L1477[14:17:29] <kenzierocks> you can do what I did and listen to the post-load event :D
L1478[14:17:36] <PaleoCrafter> not even setWorldObj? :D
L1479[14:17:40] <kenzierocks> lol
L1480[14:17:41] <kenzierocks> no
L1481[14:18:34] <Delenas> I think it's fine.
L1482[14:21:57] <AndersBillLind> I am trying to junit test functionality in minecraft+forge, it seems I need to call Bootstrap.register to use for instance Blocks.OBSIDIAN, a static block in Blocks will throw a RunTimeException otherwise, but Bootstrap.register will try to use LanuageMap.class.getResourceAsStream LanguageMap.class.getResourceAsStream("/assets/minecraft/lang/en_US.lang") which I dunno how to mock
L1483[14:22:31] <AndersBillLind> oops, got an echo there
L1484[14:22:33] ⇨ Joins: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L1485[14:27:09] *** kirby|gone is now known as mrkirby153
L1486[14:27:58] <electrolitic> Dang. I have a block that when I hold, has a texture. When I place it, it has the missing texture texture.
L1487[14:28:42] <PaleoCrafter> do you have a blockstates file for it?
L1488[14:28:49] <electrolitic> No.
L1489[14:28:57] ⇨ Joins: Hgrebnednav (~Hgrebnedn@d8d872a6e.access.telenet.be)
L1490[14:29:07] <PaleoCrafter> you need one :P
L1491[14:29:15] <electrolitic> Oh, crap.
L1492[14:29:34] <PaleoCrafter> http://mcforge.readthedocs.io/en/latest/blockstates/introduction/
L1493[14:31:48] <electrolitic> Thank you
L1494[14:33:18] <Delenas> diesie, it looks like as long as I have the packet handler working properly it doesn't matter
L1495[14:34:09] <Delenas> This may be a bigger task of changing Forge's messages to use IMessage and doing a small network bump.
L1496[14:34:25] <raoulvdberge> Is there a generic block place event that handles all cases of block placement? (so placed by player, by setBlockState(), anything..)
L1497[14:34:38] <diesieben07> Delenas, did you test it on a server?
L1498[14:34:46] <Delenas> Working on that now
L1499[14:34:48] <diesieben07> so it actually has to serialize the packet?
L1500[14:35:10] ⇦ Quits: Saucier (~saucier@p5DC19842.dip0.t-ipconnect.de) (Quit: Nettalk6 - www.ntalk.de)
L1501[14:36:34] *** helinus is now known as helinus|off
L1502[14:39:47] <raoulvdberge> Is there a way to see if it's a server or client without having the world obj
L1503[14:39:59] <diesieben07> not really
L1504[14:40:11] <Delenas> FMLCommonHandler
L1505[14:40:16] <diesieben07> No.
L1506[14:40:19] <diesieben07> why don't you have a world?
L1507[14:40:36] <raoulvdberge> readFromNBT in a TE
L1508[14:40:39] <raoulvdberge> doesn't have the world set yet
L1509[14:41:01] <diesieben07> readFromNBT is always server.
L1510[14:41:11] <kenzierocks> raoulvdberge: onBlockAdded
L1511[14:41:16] <diesieben07> although yeah no its not
L1512[14:41:20] <diesieben07> ^ that is better
L1513[14:41:55] <Delenas> diesieben07, tested. Works on a dedicated server flawlessly.
L1514[14:42:09] <diesieben07> what does?
L1515[14:42:16] <diesieben07> oh your code
L1516[14:42:18] <diesieben07> what?! how?!
L1517[14:42:44] <Delenas> Magic?
L1518[14:43:30] <diesieben07> there is no way that works.
L1519[14:43:44] <diesieben07> your IMessage does not even have a no-arg constructor
L1520[14:43:54] <diesieben07> if it really made it across a bytestream that would crash it
L1521[14:44:04] <diesieben07> but there is nothign there handlign the imessage.
L1522[14:44:08] <diesieben07> so it just doesnt wokr
L1523[14:44:21] <Delenas> Perhaps I need to implement a container.
L1524[14:44:32] <Delenas> Lemme test that.
L1525[14:44:41] ⇦ Quits: Intektor (~Intektor4@p5B27532A.dip0.t-ipconnect.de) (Quit: Leaving)
L1526[14:46:41] <AndersBillLind> My conclusion is that forge could be made more test friendly
L1527[14:47:19] <kenzierocks> lol
L1528[14:47:25] <AndersBillLind> If possible then
L1529[14:49:42] <RANKSHANK> anyone know how long forge is going to stay on the 1.10.X branch for? :P
L1530[14:50:57] ⇦ Quits: cpup (~cpup@32.218.113.47) (Ping timeout: 186 seconds)
L1531[14:52:35] <Delenas> No, we need a bunch of people to merge fml and forge properly.
L1532[14:52:51] <Delenas> This bull of not knowing where to implement stuff needs to stop. x.x
L1533[14:53:32] <gigaherz> FML was merged?
L1534[14:53:33] <kashike> FML and Forge have already been merged.
L1535[14:54:14] <gigaherz> but they are still distinct features: FML is the part that loads classes and such
L1536[14:54:19] ⇨ Joins: Davnit_ (~Davnit@72-189-103-223.res.bhn.net)
L1537[14:54:48] <gigaherz> Forge is an integrated "mod" that hooks into MC to make modding easier
L1538[14:54:58] <kashike> which makes sense, seeing how FML is the Forge Mod Loader
L1539[14:55:24] ⇨ Joins: BaronNox_ (~BaronNox@pD9E99F6F.dip0.t-ipconnect.de)
L1540[14:55:32] <gigaherz> smotly the advantage of them being unified now
L1541[14:55:36] <gigaherz> is that there's only one event bus
L1542[14:56:03] ⇨ Joins: cpup (~cpup@32.218.113.169)
L1543[14:56:25] <gigaherz> mostly*
L1544[14:56:29] <RANKSHANK> and less downloads for the consumer base to be confused by ;D
L1545[14:57:30] ⇦ Quits: BlueMonster (uid82864@id-82864.tooting.irccloud.com) (*.net *.split)
L1546[14:57:30] ⇦ Quits: Davnit (~Davnit@72-189-103-223.res.bhn.net) (*.net *.split)
L1547[14:57:30] ⇦ Quits: BaronNox (~BaronNox@pD9E99F6F.dip0.t-ipconnect.de) (*.net *.split)
L1548[14:57:30] ⇦ Quits: electrolitic (~electroli@104-184-56-125.lightspeed.cicril.sbcglobal.net) (*.net *.split)
L1549[14:57:30] ⇦ Quits: maxlowry123 (~IceChat9@pool-71-244-115-181.albyny.fios.verizon.net) (*.net *.split)
L1550[14:57:30] ⇦ Quits: Upth (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net) (*.net *.split)
L1551[14:57:30] ⇦ Quits: An_Sar (~srw@mail.nmd.so) (*.net *.split)
L1552[14:57:30] ⇦ Quits: Corosus (~Corosus@135-23-126-120.cpe.pppoe.ca) (*.net *.split)
L1553[14:57:31] *** BaronNox_ is now known as BaronNox
L1554[15:02:15] <Delenas> So.. if I change Forge's network handling to IMessage (because it's halfway there already) will that break everything in the known universe?
L1555[15:02:31] <PaleoCrafter> why can't you just use whatever it uses now?
L1556[15:03:11] <Javaschreiber> It seems like OBJ-Models are not animatable with Forge as they are baked and then cached, ignoring the new ModeState. Does anyone know a good way to export .b3d files from blender or convert .obj files to the before mentioned file format?
L1557[15:03:52] <Delenas> Unification.
L1558[15:04:19] <PaleoCrafter> https://github.com/RainWarrior/B3DExport
L1559[15:04:22] <PaleoCrafter> not sure if that still works
L1560[15:04:26] <PaleoCrafter> unification with what? :P
L1561[15:04:50] <PaleoCrafter> --^ Javaschreiber
L1562[15:05:22] <Javaschreiber> PaleoCrafter: Thanks, I will have a look at it.
L1563[15:05:27] ⇨ Joins: BlueMonster (uid82864@id-82864.tooting.irccloud.com)
L1564[15:05:27] ⇨ Joins: An_Sar (~srw@mail.nmd.so)
L1565[15:05:27] ⇨ Joins: Corosus (~Corosus@135-23-126-120.cpe.pppoe.ca)
L1566[15:05:53] <Delenas> I'm noticing all the Forge networking stuff is identical to IMessage, save for.. actually implementing it.
L1567[15:06:11] <Delenas> A few small changes and it looks like nothing is gained or lost.
L1568[15:06:24] ⇨ Joins: electrolitic (~electroli@104-184-56-125.lightspeed.cicril.sbcglobal.net)
L1569[15:10:34] ⇨ Joins: triangle36 (~trianglec@216.38.32.2)
L1570[15:10:35] <PaleoCrafter> I'd take a look at the PR first anyway, Delenas :P
L1571[15:10:37] <PaleoCrafter> Lex commented on it
L1572[15:12:28] ⇦ Quits: Hunterz (~hunterz@62.182.234.189) (Quit: Leaving.)
L1573[15:13:22] <triangle36> I am looking for the exact commit that version 9.11.1.965 came from, but cant seem to find it (I am new to searching for such a thing in git)
L1574[15:21:03] <gigaherz> look for the commit message
L1575[15:21:09] <gigaherz> check the changelog for 965
L1576[15:21:14] <gigaherz> and then look for that commit message on git
L1577[15:21:32] <gigaherz> there's probably a more effective way, but that's the best one I can think of
L1578[15:21:32] <gigaherz> XD
L1579[15:23:10] <Javaschreiber> Is there any way to animate a non-vanilla modell? Like b3d or obj? I've got a standard cube rotating, but my models won't. :(
L1580[15:23:33] <triangle36> gigaherz: Thanks :)
L1581[15:23:37] <triangle36> I think I found it
L1582[15:23:47] <gigaherz> Javaschreiber: b3d models can animate on their own
L1583[15:23:56] ⇦ Parts: Aroma1997 (~Aroma1997@2604:a880:800:10::168:d001) ())
L1584[15:23:57] <gigaherz> using skeleton animations
L1585[15:24:11] <gigaherz> I think you can then use the animation system to specify the animation start, and length
L1586[15:24:31] <gigaherz> (start/end within the model's animation timeline)
L1587[15:25:01] <Javaschreiber> gigaherz: How about b3d? Is there a way to bypass the caching?
L1588[15:25:11] <gigaherz> caching?
L1589[15:25:18] <gigaherz> sorry that's beyond me
L1590[15:25:28] <Javaschreiber> Sry. Obj caches. I mistyped.
L1591[15:25:40] <gigaherz> I don't believe .obj works with the animation system
L1592[15:25:53] <gigaherz> but I could be wrong
L1593[15:25:56] <gigaherz> I don't really know much about it
L1594[15:26:00] <gigaherz> only what I heard in here
L1595[15:26:27] <gigaherz> I assume you are talking about the animation system that fry created
L1596[15:26:37] <gigaherz> because in like, a TESR, it's perfectly possible to do animations ;P
L1597[15:26:44] ⇨ Joins: Lunatrius` (~Lunatrius@77.38.21.26)
L1598[15:27:04] <triangle36> gigaherz: wait... the change log for 965 looks almost like 964, there is just an empty line for 965 D:
L1599[15:27:13] <gigaherz> hmm no idea, then
L1600[15:27:24] <Javaschreiber> You are right. I'm using a TESR, but the model which should apply each new ModeState, caches and then ignores it.
L1601[15:27:27] ⇨ Joins: CoderPuppy (~cpup@32.218.113.229)
L1602[15:27:48] ⇦ Quits: Lunatrius (~Lunatrius@77.38.21.26) (Killed (NickServ (GHOST command used by Lunatrius`)))
L1603[15:27:52] *** Lunatrius` is now known as Lunatrius
L1604[15:28:13] <Javaschreiber> See OBJModel Lines 1343-ish and 1289-ish
L1605[15:28:16] <gigaherz> hm?
L1606[15:28:26] <gigaherz> wait how does the ModelState matter in a TESR?
L1607[15:28:40] ⇦ Quits: cpup (~cpup@32.218.113.169) (Ping timeout: 190 seconds)
L1608[15:28:51] <Javaschreiber> See AnimationTESR
L1609[15:29:03] <gigaherz> so you ARE using the animation system
L1610[15:29:07] <gigaherz> yeah I can't help with that
L1611[15:29:08] <gigaherz> XD
L1612[15:29:11] <Javaschreiber> OK.
L1613[15:29:39] ⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 201 seconds)
L1614[15:30:21] ⇦ Quits: BlueMonster (uid82864@id-82864.tooting.irccloud.com) (*.net *.split)
L1615[15:30:21] ⇦ Quits: An_Sar (~srw@mail.nmd.so) (*.net *.split)
L1616[15:30:21] ⇦ Quits: Corosus (~Corosus@135-23-126-120.cpe.pppoe.ca) (*.net *.split)
L1617[15:30:43] ⇦ Quits: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net) (Read error: Connection reset by peer)
L1618[15:30:57] ⇨ Joins: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net)
L1619[15:31:41] <Inari> oh the animation system/api is a thing now?
L1620[15:32:07] <gigaherz> been a thing for some months
L1621[15:32:13] <gigaherz> but only fry really knows how to use it
L1622[15:32:13] <gigaherz> XD
L1623[15:32:22] <gigaherz> and he's on vacation
L1624[15:32:29] <Inari> no clue, i just read about it in the rendering primer thingy that it isnt a hting yet :P
L1625[15:32:36] <Wuppy> woops, just spend 1.5 hours playing pokemon
L1626[15:32:53] <gigaherz> that primer was made before it was a thing
L1627[15:32:55] <gigaherz> ;P
L1628[15:33:00] <Inari> :p
L1629[15:33:32] <Inari> and maybe i cant talk with all the questions i ask xD but shouldn't be that hard to figure out how it works? the code is open I think?
L1630[15:34:37] <gigaherz> yes but
L1631[15:34:40] <Javaschreiber> gigaherz: I think I figured it out. There is a method called scheduleRebake()...
L1632[15:34:48] <gigaherz> .... it's not straightforward.
L1633[15:35:28] <Javaschreiber> Inari: It's hard. It took me an afternoon copy and pasting, reading the source code, asking in the irc...
L1634[15:35:55] <PaleoCrafter> triangle36, 964 and 965 are virtually the same
L1635[15:36:03] <PaleoCrafter> the only difference is the src/MDK package
L1636[15:36:24] <PaleoCrafter> because FG was broken at some point, a non-gradle version was provided (965)
L1637[15:36:36] <PaleoCrafter> btw, why you're dealing with 1.6.4 versions? :P
L1638[15:36:48] <triangle36> ya
L1639[15:37:41] <Wuppy> booyah, managed to evolve myself a pidgeot :D
L1640[15:37:56] <Wuppy> pidgeotto*
L1641[15:38:01] <gigaherz> I caught myself a Wooly Mammoth earlier
L1642[15:38:05] <gigaherz> different game, but yeah ;P
L1643[15:38:08] <Wuppy> hahaha
L1644[15:38:11] <Wuppy> I was confused there for a second
L1645[15:38:15] <Wuppy> I got a horsea :D
L1646[15:38:39] <Delenas> Welp, I'm doing reflection stuffs now.
L1647[15:39:38] <Wuppy> I did have this one spot where like 5 pidgey, 3 ratata and 2 spearow showed up within a minute or so, was happy :D
L1648[15:44:33] *** AEnterprise is now known as AEnterpriseAFK
L1649[15:45:34] ⇨ Joins: Luigi370 (Mibbit@cpc88503-nrte29-2-0-cust1309.8-4.cable.virginm.net)
L1650[15:46:36] <PaleoCrafter> Delenas, did you actually look at Lex' comment? I think he makes justified objections
L1651[15:48:02] <LexManos> ....
L1652[15:48:41] <Delenas> Yes. I'm working on the provider issue
L1653[15:51:38] ⇨ Joins: BlueMonster (uid82864@id-82864.tooting.irccloud.com)
L1654[15:51:38] ⇨ Joins: An_Sar (~srw@mail.nmd.so)
L1655[15:51:38] ⇨ Joins: Corosus (~Corosus@135-23-126-120.cpe.pppoe.ca)
L1656[15:52:24] ⇨ Joins: Upth (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net)
L1657[15:53:44] <AndersBillLind> Trying to call net.minecraftforge.fml.common.FMLCommonHandler.instance(), I get an ExceptionInInitializerError, which should meant that a static block was failing, is that a correct understanding from me?
L1658[15:54:07] <diesieben07> yes, look at the cause of hte exception
L1659[15:54:39] <LexManos> <Inari> do i just cast it to that?, No you're not garenteed to get a modifiable version in the return. You need to add a check for that. The general idea is that you shouldnt be modifying slots directly\ unless you absolutly need to.
L1660[15:54:41] <AndersBillLind> It is very hard to find a place to put a breakpoint on, cannot even see a static block
L1661[15:54:46] ⇦ Quits: Javaschreiber (~Thunderbi@p5dd8fc7d.dip0.t-ipconnect.de) (Quit: Javaschreiber)
L1662[15:54:59] <AndersBillLind> No breakpoint in that class will hit, it seems
L1663[15:55:08] <diesieben07> AndersBillLind, ExceptioninInitializerError will have an exception as its cause
L1664[15:55:12] <diesieben07> aprt of the stacik trace
L1665[15:56:17] <AndersBillLind> Ah, you are right, I see that now, sun.misc.Launcher@AppClassLoader cannot be cast to net.minecreaft.launchwrapper.LaunchClassLoader
L1666[15:56:41] <diesieben07> wtf are you doing!
L1667[15:56:51] <AndersBillLind> I did only call that method
L1668[15:57:07] <diesieben07> how are you launching the game?
L1669[15:57:10] <diesieben07> and where are you calling it
L1670[15:57:21] <AndersBillLind> I am trying to call it from a test class :)
L1671[15:57:26] <diesieben07> you cannot :P
L1672[15:57:32] <AndersBillLind> It seems you are right
L1673[15:57:37] <diesieben07> Minecraft must be launched through the launchwrapper
L1674[15:57:47] <kenzierocks> yea, don't try to unit test minecraft
L1675[15:57:50] <kenzierocks> seriously
L1676[15:57:52] <AndersBillLind> I did not intend to launch minecraft, but ok
L1677[15:58:00] ⇦ Parts: Luigi370 (Mibbit@cpc88503-nrte29-2-0-cust1309.8-4.cable.virginm.net) ())
L1678[15:58:02] <kenzierocks> unit test parts that don't involve minecraft
L1679[15:58:02] <AndersBillLind> kenzierocks: For the fun of it
L1680[15:58:08] <diesieben07> you cannot use FMLCommonHanlder outside of Minecraft :pü
L1681[15:58:28] ⇨ Joins: ThermalCube (webchat@b9168e61.cgn.dg-w.de)
L1682[15:58:44] <P3pp3rF1y> is it really unit test when you run so much code inside of it?
L1683[15:58:45] <AndersBillLind> I wish I did not have to call it actually
L1684[15:59:04] <AndersBillLind> P3pp3rF1y: It is very hard to minimize the test environment
L1685[15:59:12] <AndersBillLind> Everything calls everything else
L1686[15:59:14] <diesieben07> you can unit test minecraft just fine, you just have to launch the game first :D :D
L1687[15:59:28] <AndersBillLind> That is something else than unit testing :)
L1688[15:59:29] <AndersBillLind> hehe
L1689[15:59:39] ⇦ Quits: Jezza (~Jezza@92.206.5.6) (Quit: Leaving)
L1690[15:59:40] <P3pp3rF1y> well, I would think you should be able to mock everything, but what you are unit testing
L1691[15:59:50] <diesieben07> if you are unit testing your own stuff...
L1692[16:00:02] <AndersBillLind> If there was some more interfaces in the forge code, this would be possible, now it seems like a tangled web to test it
L1693[16:00:04] <diesieben07> what i am saying is write a junit runner that launches the game and as soon as thats done runs your tests
L1694[16:00:27] <P3pp3rF1y> AndersBillLind, PowerMock may help in that case
L1695[16:00:28] <AndersBillLind> I think I have to copy the code into a new project and test it from there
L1696[16:00:35] <AndersBillLind> P3pp3rF1y: Hm, ok
L1697[16:00:37] <P3pp3rF1y> you don't need interfaces to mock stuff
L1698[16:00:53] <AndersBillLind> True, but thats a lot cleaner than using mock, if you ask me
L1699[16:01:06] <P3pp3rF1y> and I believe Mockito is able to mock classes as well, just not static ones
L1700[16:01:08] <AndersBillLind> I know other people think of it in another way
L1701[16:01:46] <P3pp3rF1y> my thought on unit testing is limit the code you run as much as you can to what you're unit testing
L1702[16:01:55] <P3pp3rF1y> otherwise you get a lot of errors from external stuff
L1703[16:02:06] <AndersBillLind> P3pp3rF1y: Absolutely
L1704[16:02:17] <P3pp3rF1y> so unit test failing would not mean that what you're unit testing is failiing
L1705[16:02:19] <AndersBillLind> But the code needs to be written more testably to make that happen
L1706[16:02:31] *** Mine|dreamland is now known as minecreatr
L1707[16:02:34] <AndersBillLind> I am of the same point of view
L1708[16:04:06] ⇦ Quits: ThermalCube (webchat@b9168e61.cgn.dg-w.de) (Quit: Web client closed)
L1709[16:04:24] <AndersBillLind> I like hard challenges, but unit testing this fails for me
L1710[16:08:59] <PaleoCrafter> what was your initial target again? :P
L1711[16:17:08] ⇨ Joins: Naiten (Naiten@77.34.43.197)
L1712[16:21:05] ⇦ Quits: quadraxis (~chatzilla@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 186 seconds)
L1713[16:25:11] <Delenas> So, think I got it now.
L1714[16:25:17] ⇦ Quits: Forecaster (~Forecaste@83.223.21.91) (Ping timeout: 192 seconds)
L1715[16:25:39] ⇦ Quits: agowa338 (~Thunderbi@p54919CA8.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L1716[16:26:43] ⇨ Joins: Forecaster (~Forecaste@83.223.21.91)
L1717[16:27:16] ⇨ Joins: Baughn (~Baughn@madoka.brage.info)
L1718[16:28:01] *** PaleoCrafter is now known as PaleOff
L1719[16:34:36] <Delenas> Okay, commit pushed. That should fix server derpiness (tested) now. Provider should be created and such on the client properly, too.
L1720[16:35:34] ⇦ Quits: Seppon (~Noppes@ip56530f2e.direct-adsl.nl) (Read error: Connection reset by peer)
L1721[16:36:01] <diesieben07> you are writing the class name as a string? get the hell out.
L1722[16:36:23] <Delenas> Well, how else should I handle that?
L1723[16:36:34] <diesieben07> Just like the old GUI handler. IDs.
L1724[16:36:48] <diesieben07> or actually
L1725[16:36:53] <diesieben07> the thign is a capability right?
L1726[16:36:56] <Delenas> Yes/
L1727[16:37:09] <Delenas> Implementing IGuiProvider there.
L1728[16:37:46] <diesieben07> so just call getCapability on the client to receive the provider...
L1729[16:38:31] <Delenas> Brilliant. Now, tell me
L1730[16:38:52] <Delenas> If the provider has all the information to get the object, how do I handle getting the provider?
L1731[16:39:19] <diesieben07> thing.getCapability(MyCapability.INSTANCE)
L1732[16:39:30] <Delenas> I can't get thing.
L1733[16:39:59] <diesieben07> so you write its class name? that is not going to help anyone.
L1734[16:40:05] <Delenas> That's serialized, sure, but there's no way to get an IProvider from serialized data.
L1735[16:40:39] <diesieben07> thats what lex meant.
L1736[16:40:41] ⇨ Joins: KnightMiner_ (~KnightMin@68.255.0.239)
L1737[16:40:49] <diesieben07> this concept is fundamentally flawed, because you cannot get the obejcton the other side.
L1738[16:40:53] <Delenas> What's in there, at any given time? An item? An entity id? A tile position?
L1739[16:41:12] <Delenas> The best way is reflection. So either I have an ID and a map to classes, or this doesn't happen.
L1740[16:41:13] *** willieaway is now known as williewillus
L1741[16:41:28] <diesieben07> i would choose "this doesnt happen" then
L1742[16:41:34] <diesieben07> say i pass in a java 8 lambda
L1743[16:41:42] <diesieben07> i am sure your thing will blow up spectacularly
L1744[16:42:11] <Delenas> Then, I dunno. Don't do that?
L1745[16:42:20] <Delenas> You can never fully bulletproof code.
L1746[16:42:29] <williewillus> what are we talking about
L1747[16:42:39] <williewillus> the gui thing?
L1748[16:42:43] <Delenas> Yup.
L1749[16:43:00] ⇨ Joins: DubbelD_ (~DubbelD@D549AB10.cm-10-1a.dynamic.ziggo.nl)
L1750[16:43:04] ⇦ Quits: KnightMiner (~KnightMin@68.255.4.5) (Ping timeout: 198 seconds)
L1751[16:43:05] <williewillus> oh I just saw the open gui message
L1752[16:43:07] <Delenas> die is nagging that my passing the classname through the packet is terribad and I should burn for it
L1753[16:43:16] ⇦ Quits: DubbelD_ (~DubbelD@D549AB10.cm-10-1a.dynamic.ziggo.nl) (Client Quit)
L1754[16:43:17] <williewillus> it is...
L1755[16:43:30] ⇨ Joins: DubbelD (~DubbelD@D549AB10.cm-10-1a.dynamic.ziggo.nl)
L1756[16:44:28] <Delenas> Then, better. Can I maintain a map of ID -> Class on the server and sync it like the block registry.
L1757[16:44:32] <diesieben07> mod changes its package between versions
L1758[16:44:34] <Delenas> And pass an int in the background.
L1759[16:44:37] <williewillus> wat
L1760[16:44:37] <diesieben07> everything blows up with random problems
L1761[16:44:50] <Inari> can IMessage and IMessageHandler still be the same class?
L1762[16:44:59] <Delenas> Yes.
L1763[16:45:08] <Delenas> die, this is runtime.
L1764[16:45:08] <williewillus> not recommended
L1765[16:45:20] <Delenas> That scenario should never happen.
L1766[16:45:26] <diesieben07> runtime? what?
L1767[16:45:35] <diesieben07> say a verson fixes a client bug
L1768[16:45:38] <Inari> williewillus: whys that?
L1769[16:45:38] <diesieben07> no reason for the server to update
L1770[16:45:48] <diesieben07> yes, pretty stupid scenario
L1771[16:45:50] <williewillus> Inari: it's flaky. at least make your handler a static class inside the message
L1772[16:45:52] <diesieben07> still, dont do it
L1773[16:46:11] ⇦ Quits: founderio (~Thunderbi@p200300C4E3C60000C89359FDAE407CF1.dip0.t-ipconnect.de) (Quit: founderio)
L1774[16:46:13] <Delenas> Then I need to maintain two maps, int to class and class to int, and sync it.
L1775[16:46:17] <williewillus> anyways the gui thing is a nice idea but now that i read the impl it's meh
L1776[16:46:49] <diesieben07> class is not a good identifier
L1777[16:47:53] ⇨ Joins: cpup (~cpup@32.218.114.124)
L1778[16:48:09] <Delenas> Funny. Before the provider issue came up, everyone was perfectly fine with it.
L1779[16:48:20] <diesieben07> well, it just didn't work.
L1780[16:48:53] ⇦ Quits: Naiten (Naiten@77.34.43.197) (Read error: Connection reset by peer)
L1781[16:49:03] <Delenas> So fuck me and all my effort because you don't want to pass a string and use reflection?
L1782[16:49:17] <kenzierocks> it's passing a string over network to a class
L1783[16:49:25] <kenzierocks> i have no idea how that would be a good idea
L1784[16:49:29] <williewillus> no one said anything about you
L1785[16:49:34] <williewillus> stop taking everything as a personal attack
L1786[16:50:02] <Delenas> Well, you're just throwing the whole thing out instead of offering solutions to make it work. :/
L1787[16:50:13] ⇦ Quits: CoderPuppy (~cpup@32.218.113.229) (Ping timeout: 192 seconds)
L1788[16:51:33] <diesieben07> you don't have to provide a solution to be allowed to say "what you are currently doing is not good".
L1789[16:51:48] <gigaherz> We still think it's a good idea
L1790[16:51:50] ⇦ Quits: Samario (~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Quit: See ya.)
L1791[16:51:55] <gigaherz> but if it doesn't work, it doesn't work XD
L1792[16:51:56] <Delenas> Then please help me make a better solution to the provider problem.
L1793[16:52:04] *** manmaed is now known as manmaed|AFK
L1794[16:52:12] <diesieben07> i don't know any right now.
L1795[16:52:20] <gigaherz> what's the problem exactly?
L1796[16:52:25] <Inari> hm
L1797[16:52:41] <williewillus> gigaherz: passing a class as a string over the network to instantiate
L1798[16:52:47] <williewillus> is part of it
L1799[16:52:47] <diesieben07> thats not the problem :D
L1800[16:52:47] <Delenas> I want to eliminate gui ids. I can make a map on the server and maintain it.
L1801[16:52:54] <gigaherz> no that's not the problem, williewillus
L1802[16:52:54] <gigaherz> XD
L1803[16:52:58] <diesieben07> that was the attempted solution
L1804[16:53:03] <kenzierocks> gui IDs are fine....
L1805[16:53:08] <gigaherz> from the post I got the idea that the issue is matching the server's capability with the client's capability?
L1806[16:53:27] <Delenas> The issue is getting the provider instance.
L1807[16:53:39] <Delenas> All we have is a buffer to use.
L1808[16:53:41] <gigaherz> that's the instance in the capability, right?
L1809[16:53:50] <unascribed> gui ids, mod entity ids, and simpleimpl message ids are all fine, and that's because of the one trait they have in common
L1810[16:53:52] <Inari> I need to read up on java generics more..
L1811[16:53:52] <unascribed> they're local to one mod
L1812[16:53:53] <Delenas> That's the impl of IGuiProvider
L1813[16:53:57] <unascribed> and there's no way to step on eachother's toes
L1814[16:53:59] <diesieben07> yes but you have to do thing.getCapability
L1815[16:54:02] <diesieben07> there is no way to get "thing"
L1816[16:54:05] <unascribed> block and item ids were bad because everyone shared them
L1817[16:54:15] <gigaherz> yeah I wanted to know the exact issue
L1818[16:54:20] <gigaherz> okay so
L1819[16:54:26] <gigaherz> the problem is basically
L1820[16:54:29] <gigaherz> encoding the "thing"
L1821[16:54:32] <gigaherz> that's easy to solve?
L1822[16:54:43] <gigaherz> well
L1823[16:54:44] <Delenas> The thing and all its data to get it is encoded.
L1824[16:54:46] <diesieben07> not really.
L1825[16:54:56] ⇨ Joins: Katrix (~Katrix@2a02:fe0:cb10:2420:e9a0:92f8:baa6:7852)
L1826[16:54:56] <Delenas> There's no way to get the IGuiProvider to DECODE it.
L1827[16:54:59] <diesieben07> everything can implement ICapabilityProvider
L1828[16:55:03] <gigaherz> yes
L1829[16:55:26] <gigaherz> but still
L1830[16:55:40] <gigaherz> hmm
L1831[16:55:56] <diesieben07> you could do it for the ones forge defines, yes
L1832[16:55:58] <gigaherz> nah
L1833[16:56:01] <diesieben07> entity, TE, item
L1834[16:56:02] <gigaherz> you'd need a unique ID for each thing
L1835[16:56:05] <diesieben07> but... thats half ased
L1836[16:56:05] *** williewillus is now known as willieaway
L1837[16:56:06] <gigaherz> and keep track of those IDs
L1838[16:56:16] <gigaherz> and let each implementation provide that ID
L1839[16:56:21] <diesieben07> yep
L1840[16:56:23] <gigaherz> where "id" would probably be a string
L1841[16:56:25] <diesieben07> it just blows up :D
L1842[16:56:58] <Delenas> I'd hate to do it, but I could have the mod instance define a guihandler again. But that goes right back to IDs and a switch statement.
L1843[16:56:58] <gigaherz> how does the current implementation "know" which mod it's from?
L1844[16:57:03] <gigaherz> does it send a modid string?
L1845[16:57:06] <diesieben07> no
L1846[16:57:10] <diesieben07> it sends the provider class as s a string
L1847[16:57:13] <diesieben07> and then does newInstance
L1848[16:57:15] <gigaherz> so
L1849[16:57:18] <diesieben07> which is horrible :D
L1850[16:57:19] <gigaherz> in a way
L1851[16:57:23] <gigaherz> we are already sending a string
L1852[16:57:29] ⇦ Quits: abab9579 (~Abastro@112.166.128.227) (Ping timeout: 384 seconds)
L1853[16:57:33] <gigaherz> so it's not really worse if we send a manually-assigned "key"
L1854[16:57:46] <kenzierocks> what if there was a way to determine what that thing was
L1855[16:57:54] <kenzierocks> like: TileEntity@x,y,z
L1856[16:57:59] <diesieben07> that would be fine
L1857[16:57:59] <kenzierocks> or Item@<entityId>
L1858[16:58:01] <gigaherz> that'd be a key still
L1859[16:58:03] <diesieben07> but that requires a whole registry
L1860[16:58:05] <gigaherz> that's what I meant
L1861[16:58:11] <Delenas> There's no way for the client to pick up the key.
L1862[16:58:20] <gigaherz> it still requires someone to be able to decode that
L1863[16:58:25] <Delenas> That's our problem, I'd think
L1864[16:58:33] <gigaherz> well you'd need a registry
L1865[16:59:05] <gamax92> does registerMessage for networking messages have to be called inside a proxy?
L1866[16:59:06] *** kroeser is now known as kroeser|away
L1867[16:59:07] <gigaherz> a registry of "interface KeyHandler { bool accepts(String); IGuiProvider locate(String); }"
L1868[16:59:16] <gigaherz> gamax92: no
L1869[16:59:38] <gigaherz> https://github.com/gigaherz/Ender-Rift/blob/master/src/main/java/gigaherz/enderRift/EnderRiftMod.java#L129,L134
L1870[16:59:46] <gigaherz> this is how I do my message registration
L1871[16:59:48] ⇨ Joins: Abastro (~Abastro@112.166.128.227)
L1872[16:59:49] <Delenas> I could add that as a part of the @Mod class.
L1873[16:59:50] <gamax92> oh okay, then when registering the message for server and client should the discriminator byte be the same
L1874[16:59:59] <diesieben07> whut
L1875[17:00:03] <gigaherz> Delenas: wat
L1876[17:00:16] <diesieben07> you call registerMessage
L1877[17:00:24] <diesieben07> on both sides.
L1878[17:00:27] <gamax92> yes
L1879[17:00:31] <Delenas> Just like the config factory.
L1880[17:00:35] <diesieben07> once for each packet.
L1881[17:00:42] <gigaherz> gamax92: well for a given message
L1882[17:00:49] <gigaherz> the discriminator should be the same, of course
L1883[17:00:54] <gamax92> okay, thanks
L1884[17:00:55] <gigaherz> but if you have a bi-directional message
L1885[17:00:58] <gigaherz> you need to register it twice
L1886[17:01:20] <gigaherz> with different handlers, IIRC
L1887[17:02:10] <Delenas> Or rather, I'd have an annote on a field. @GuiParser or something. Then the sent keys are something like "modid:INT". System finds the mod, finds the GuiParser object, then calls the method.
L1888[17:02:27] <diesieben07> and that is better than an IGuiHandler because...?
L1889[17:02:36] <gigaherz> I have a feeling that wouldn't get accepted.
L1890[17:02:55] <gigaherz> may as well just send a custom packet, then
L1891[17:03:25] <Delenas> This whole system is better because it allows getting and attaching guis, as well as splitting up huge switches and pushing the gui code into more reasonable packages.
L1892[17:03:51] <gigaherz> yes and that's nice
L1893[17:04:05] ⇦ Quits: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi) (Read error: Connection reset by peer)
L1894[17:04:07] <gigaherz> but it could easily be built on top of an extension of IGuiHandler
L1895[17:04:35] <gigaherz> and let the capability be an extra bonus feature
L1896[17:04:39] ⇦ Quits: cpup (~cpup@32.218.114.124) (Ping timeout: 198 seconds)
L1897[17:04:52] <Delenas> IGuiHandler sends extra data and isn't flexible. At all.
L1898[17:05:14] <Inari> can i somehow use the same parameterized type as the top calss in a nested class when declaring the nested class?
L1899[17:05:55] <kenzierocks> what?
L1900[17:06:08] <kenzierocks> static or non-static nested Inari?
L1901[17:06:08] <Inari> apparently I cant cause its static x.x
L1902[17:06:11] <gigaherz> Delenas: hence the "extension" ;P
L1903[17:06:16] <kenzierocks> yea, static you can't
L1904[17:06:17] <Inari> kenzierocks: static :D
L1905[17:06:20] <Inari> damn..
L1906[17:06:21] <kenzierocks> since that info belongs to the type
L1907[17:06:27] <kenzierocks> s/type/instance/
L1908[17:06:37] <Inari> but it has to be static x.x
L1909[17:06:59] <Inari> well i guess i can place it outside..
L1910[17:07:02] <Delenas> This is as simple as defining a handler on the client for these discriminator ints.
L1911[17:07:23] ⇦ Quits: DubbelD (~DubbelD@D549AB10.cm-10-1a.dynamic.ziggo.nl) ()
L1912[17:08:04] <Delenas> No matter what, that will need to be in place. I'd prefer a translator interface that I can just plunk onto my main mod class.
L1913[17:09:45] <gigaherz> I'm thinking about this
L1914[17:09:46] <HassanS6000> Hello, I'm trying to spawn an EntitySnowball from the server side, but it doesn't seem to stay spawned in. In fact, I don't see it spawn.
L1915[17:09:56] <gigaherz> and I see the whole capability less and less
L1916[17:10:12] ⇨ Joins: cpup (~cpup@32.218.114.153)
L1917[17:10:23] <Delenas> Okay, fine. Fuck it as a capability.
L1918[17:10:40] ⇨ Joins: Snapples (uid167569@2604:8300:100:200b:6667:1:2:8e91)
L1919[17:10:46] <Delenas> But the interface is still gonna be there, and the extra data is useful.
L1920[17:10:56] <gigaherz> yeah yeah
L1921[17:11:13] <Delenas> You STILL need the discriminator.
L1922[17:11:18] <Delenas> So what's the point?!
L1923[17:11:23] <gigaherz> I was thinking
L1924[17:11:33] <gigaherz> wouldn't it be nicer if it was a bit like how you register entities or network packets?
L1925[17:12:16] <gigaherz> oh maybe even using the actual registry system that forge has
L1926[17:12:25] <gigaherz> a registry for GuiProvider objects
L1927[17:12:36] <gigaherz> so that they get an internal ID synchronized with clients
L1928[17:12:47] <diesieben07> not even the objects
L1929[17:12:50] <diesieben07> i would go for types
L1930[17:12:58] <diesieben07> so TileEntity, Entity, held item, etc.
L1931[17:13:11] <gigaherz> nah
L1932[17:13:13] <gigaherz> I mean
L1933[17:13:19] <gigaherz> it's not necessary
L1934[17:13:30] <gigaherz> yo ucan just create your own GuiProvider class for block X
L1935[17:13:36] <gigaherz> that handles creating block X's GUIs
L1936[17:13:39] <gigaherz> it's a tiny instance
L1937[17:13:42] <Inari> blah, i dont even know how to word this :P I have public abstract class AbstractPacket<T extends AbstractPacket<T>> implements IMessage and public class AbstractPacketHandler<T extends AbstractPacket<T>> implements IMessageHandler<T, IMessage> ... how do i make a method that can take both calsses without getting unchecked warnings
L1938[17:13:45] <gigaherz> sortof a factory
L1939[17:13:55] <HassanS6000> The snowball seems to be set dead after about 1 second.
L1940[17:14:00] <gigaherz> it would still be possible to have a
L1941[17:14:08] <gigaherz> GuiProviderTileEntity as a baseclass
L1942[17:14:14] <gigaherz> which gives you easy-to-override methods
L1943[17:14:28] <gigaherz> and has a default implementation for encoding the TE's coords
L1944[17:14:32] ⇦ Quits: sinkillerj (~sinkiller@nc-67-232-14-224.dhcp.embarqhsd.net) (Quit: またね)
L1945[17:14:43] <gigaherz> but it would be nicer, IMO, to be able to extend them
L1946[17:14:59] <Delenas> But yet
L1947[17:15:05] <gigaherz> GameRegistry.register(new GuiProviderTileEntity() {
L1948[17:15:13] <gigaherz> implement getClient / getServer
L1949[17:15:21] <gigaherz> });
L1950[17:15:29] <Delenas> I could easily split this to separate instances so I could pick up the object from the client again.
L1951[17:15:52] <Delenas> This was designed so it could be used for anything, you just serialize it.
L1952[17:15:58] <gigaherz> yep
L1953[17:16:00] <gigaherz> the point would be
L1954[17:16:16] <gigaherz> the base GuiProvider has the writeData/readData abstract methods
L1955[17:16:23] <Delenas> The registry would STILL have a map somewhere.
L1956[17:16:27] <gigaherz> yes
L1957[17:16:29] <gigaherz> in forge.
L1958[17:16:32] <Delenas> So guess what? Right back to square one.
L1959[17:16:50] <gigaherz> no, because Forge already has ways to assign and synchronize IDs
L1960[17:17:05] <gigaherz> so the packet would just store the internal ID for the provider
L1961[17:17:11] <gigaherz> and the client would just get the registered provider for that ID
L1962[17:17:14] <Delenas> Okay.
L1963[17:17:19] <gigaherz> same as it does for entities, blocks, items, sounds, ...
L1964[17:17:28] <Delenas> Let me see if I can't figure out how the registries work.
L1965[17:17:34] <gigaherz> all you need in order to have a new registry "thing"
L1966[17:17:53] *** amadornes is now known as amadornes[OFF]
L1967[17:17:57] <gigaherz> is for the base class to implement IRegistrable...soemthing
L1968[17:18:23] <gigaherz> extends net.minecraftforge.fml.common.registry.IForgeRegistryEntry.Impl<Block>
L1969[17:18:26] <gigaherz> that
L1970[17:18:29] <gigaherz> as a base class
L1971[17:18:36] <gigaherz> just instead of <Block>
L1972[17:18:38] <gigaherz> it would be
L1973[17:18:55] <gigaherz> class GuiProvider extends IForgeRegistryEntry.Impl<GuiProvider>
L1974[17:19:05] <gigaherz> { readData / writeData }
L1975[17:19:32] <gigaherz> note tyhat all registry entries have a .setRegistryName/.getRegistryName
L1976[17:19:38] <gigaherz> which is a ResourceLocation/string
L1977[17:19:56] <gigaherz> but still, I think that would be the best approach
L1978[17:20:27] <gigaherz> the providers are global rather than instantiated on each TE/entity/item
L1979[17:20:34] <gigaherz> and the new openGui method would be able to have
L1980[17:21:03] <gigaherz> openGui(Thismod.PROVIDER_1)
L1981[17:21:05] <gigaherz> or whatever
L1982[17:21:21] ⇦ Quits: Hgrebnednav (~Hgrebnedn@d8d872a6e.access.telenet.be) (Ping timeout: 186 seconds)
L1983[17:21:35] <gigaherz> possibly with some "object... data)" for passing custom args to use during encoding?
L1984[17:22:08] <Delenas> The only extra thing I really needed was the hand.
L1985[17:22:20] <Delenas> The rest is serialized when the gui is requested.
L1986[17:22:48] <gigaherz> I mean that TEs would still need to pass the coords
L1987[17:22:52] <gigaherz> so you'd need
L1988[17:23:07] <gigaherz> openGui(Thismod.PROVIDER_1, xCoord, yCoord, zCoord)
L1989[17:23:11] <gigaherz> while an entity may need
L1990[17:23:23] <gigaherz> openGui(Thismod.PROVIDER_2, getId())
L1991[17:23:43] <HassanS6000> Can someone tell me why my snowball is getting set to dead ;-;
L1992[17:23:45] <gigaherz> since you wanted to avoid having fixed data
L1993[17:23:54] <gigaherz> HassanS6000: more context, please
L1994[17:24:11] <HassanS6000> All I'm doing is this
L1995[17:24:12] <HassanS6000> http://pastebin.com/SQFLanr7
L1996[17:24:19] <HassanS6000> Prints spawned true
L1997[17:24:34] <gigaherz> .setpositionandangles?
L1998[17:24:51] <unascribed> yeah, it's probably falling into the void
L1999[17:24:55] <unascribed> which takes about 1 second
L2000[17:24:58] <gigaherz> ah no, the snowball uses
L2001[17:25:05] <gigaherz> EntitySnowball entitysnowball = new EntitySnowball(worldIn, playerIn);
L2002[17:25:05] <gigaherz> entitysnowball.setHeadingFromThrower(playerIn, playerIn.rotationPitch, playerIn.rotationYaw, 0.0F, 1.5F, 1.0F);
L2003[17:25:05] <gigaherz> worldIn.spawnEntityInWorld(entitysnowball);
L2004[17:25:14] <gigaherz> ...
L2005[17:25:15] <unascribed> setHeadingFromThrower also works
L2006[17:25:18] <gigaherz> which is probably the same as you want to do
L2007[17:25:18] <Tazz> yay I totally fixed instance calls again XD
L2008[17:25:22] <gigaherz> since it assigns the initial speed
L2009[17:25:26] <gigaherz> on top of position and angles
L2010[17:25:38] <gigaherz> and this is from ItemSnowball#onItemUse
L2011[17:25:42] <gigaherz> which you should have looked at ;P
L2012[17:25:49] <HassanS6000> What if I don't want it to stop moving? (Also this is on 1.8.9 btw)
L2013[17:25:57] <HassanS6000> *if I don't want it to move
L2014[17:26:16] <gigaherz> .setPositionAndAngles
L2015[17:26:32] <HassanS6000> Okay, I'll go try it out
L2016[17:27:04] <Inari> is onContainerClosed called when a player just logs out/crashes?
L2017[17:28:48] ⇨ Joins: CoderPuppy (~cpup@32.218.114.187)
L2018[17:30:10] ⇦ Quits: BlueMonster (uid82864@id-82864.tooting.irccloud.com) (Quit: Connection closed for inactivity)
L2019[17:30:25] <diesieben07> doesnt seem like it from the code
L2020[17:30:30] <Inari> hm..
L2021[17:30:40] ⇦ Quits: cpup (~cpup@32.218.114.153) (Ping timeout: 190 seconds)
L2022[17:31:01] <Inari> just need the tile entity to know if someone is using the UI..
L2023[17:31:16] <diesieben07> vanilla uses onContainerClosed for that
L2024[17:31:17] ⇦ Quits: auenf (David@DC-72-89.bpb.bigpond.com) (Ping timeout: 186 seconds)
L2025[17:31:24] <diesieben07> but there are instances of chests staying open :D
L2026[17:31:28] <Inari> haha
L2027[17:31:38] <Inari> hm i guess i'd need to store a list of players rather tahn just counting up/down
L2028[17:31:46] <diesieben07> yeah you'd need a WeakHashSet
L2029[17:31:52] <diesieben07> WeakHashMap
L2030[17:32:00] <Inari> set should do, no?
L2031[17:32:05] <HassanS6000> gigaherz: did you mean setPositionAndRotation or .setLocationAndAngles?
L2032[17:32:17] <diesieben07> there is no WeakHashSet :P
L2033[17:32:20] ⇨ Joins: auenf (David@DC-72-89.bpb.bigpond.com)
L2034[17:32:32] <diesieben07> Collections.newSetFromMap(new WeakHashMap<>());
L2035[17:32:33] <gigaherz> HassanS6000: the latter.
L2036[17:33:44] <HassanS6000> Didn't work
L2037[17:33:50] <HassanS6000> Still got set dead somehow
L2038[17:34:56] * gigaherz shrugs
L2039[17:35:11] <HassanS6000> rip xD
L2040[17:35:49] <gigaherz> well someone must be calling setDead, put a breakpoint in it? ;P
L2041[17:36:06] <Inari> okay, trying that ^^ thanks
L2042[17:37:12] <Inari> now if i dont get ti the wrong way around this might actually work <.<
L2043[17:37:58] <diesieben07> Inari, actually, weakhashmap might not be ideal
L2044[17:38:29] <diesieben07> You might wanna make a ReferenceQueue and then just do new WeakRef(player, queue)
L2045[17:38:39] <diesieben07> and then in onTick poll the queue for players who have died
L2046[17:38:45] <diesieben07> or rather who have been gcd
L2047[17:38:47] <Inari> woo this part works :p
L2048[17:38:53] <Inari> :s
L2049[17:38:56] <Inari> so much work :P
L2050[17:39:28] <diesieben07> its a bit stupid that WeakHahsMap doesnt let you access the refqueue
L2051[17:39:43] ⇨ Joins: Cojo (~Cojo@cpe-2606-A000-4C46-8D00-685D-FA9C-4411-56FA.dyn6.twc.com)
L2052[17:41:23] <Inari> i thoguth the point of weak stuff was thta it autoclears
L2053[17:41:41] <Inari> or maybe in java it just doesnt prevent gcing
L2054[17:42:04] <Inari> a refque holding weakrefs?
L2055[17:42:48] <diesieben07> if you do WeakRef(thing, queue) the queue will spit out the WeakRef once it's GC'd
L2056[17:42:58] <diesieben07> its a way to get notified about someting getting gc'd
L2057[17:43:07] <Inari> how do i manually remove it then
L2058[17:43:12] <diesieben07> you don't
L2059[17:43:17] <Inari> so...
L2060[17:43:19] <diesieben07> the queue doesnt hold onto the ref
L2061[17:43:22] <diesieben07> the ref holds onto the queue
L2062[17:43:23] <Inari> if the player closes the UI, i do what?
L2063[17:43:30] <diesieben07> oh, right.
L2064[17:43:32] <diesieben07> errr
L2065[17:43:42] <diesieben07> this is getting complicated :D
L2066[17:43:48] <diesieben07> let me write you an example, one second
L2067[17:44:03] <Inari> also this error is no fun to debug :x
L2068[17:44:29] ⇨ Joins: cpup (~cpup@32.218.114.214)
L2069[17:44:51] ⇦ Quits: KGS (~KGS@h-155-4-135-249.na.cust.bahnhof.se) (Ping timeout: 198 seconds)
L2070[17:45:23] <diesieben07> acutally... this is less complicated than i thought
L2071[17:46:00] ⇦ Quits: CoderPuppy (~cpup@32.218.114.187) (Ping timeout: 190 seconds)
L2072[17:49:24] <diesieben07> Inari, here you go: https://gist.github.com/diesieben07/32c574cee4ed31db3b50382c2838e8e2
L2073[17:49:28] <diesieben07> untested :P
L2074[17:50:45] <diesieben07> maybe you should replace the "isDead" check with a check for your container
L2075[17:52:33] <Inari> seems nice :3 thanks
L2076[18:07:20] <RANKSHANK> ended up repulling my pr so I can actually get some feedback on my changes :P
L2077[18:10:04] ⇦ Quits: cpup (~cpup@32.218.114.214) (Ping timeout: 198 seconds)
L2078[18:13:25] ⇦ Parts: RANKSHANK (~Michael@ppp121-44-11-113.lns20.syd4.internode.on.net) ())
L2079[18:13:38] <HassanS6000> Still can't figure out why I can't see this snowball and it's getting set dead xD
L2080[18:13:55] <HassanS6000> unascribed: Why'd you say it's probably falling into the void
L2081[18:13:59] <HassanS6000> How is that possible?
L2082[18:14:23] <diesieben07> ok just to make sure, where is that code oyu posted located?
L2083[18:15:46] ⇨ Joins: cpup (~cpup@32.218.114.242)
L2084[18:15:49] <HassanS6000> http://pastebin.com/QYWRBkPa
L2085[18:16:01] <diesieben07> yes, thats what you posted.
L2086[18:16:04] <diesieben07> where is that located?
L2087[18:17:11] <HassanS6000> Oh right
L2088[18:17:30] <HassanS6000> I am running it from the server side when the player right clicks a chest
L2089[18:17:42] <HassanS6000> crateLocation is the location of the chest
L2090[18:17:53] <diesieben07> can you just show the damn code -_-
L2091[18:18:15] <HassanS6000> k one sec
L2092[18:19:18] <HassanS6000> https://gist.github.com/hsyyid/6cdb04a505ffaaba7939e26c650e8d22
L2093[18:19:39] <HassanS6000> Oops a line was not copied
L2094[18:20:01] <HassanS6000> There we go updated
L2095[18:20:28] <Shambling> so the crate is throwing a snowball at the player right? Is it the player or the crate that is spawning the snowball as far as java is concerned? It looks like the player is spawning it correct? I'm wondering if that is throwing off the vector
L2096[18:20:33] <unascribed> HassanS6000, entities without a position would spawn at 0,0,0
L2097[18:20:41] <unascribed> which is just below the last block
L2098[18:20:43] <diesieben07> uhhh
L2099[18:20:46] <unascribed> so it'd fall down into the void
L2100[18:20:50] <diesieben07> that is sponge code isnt it
L2101[18:20:55] <unascribed> and after reaching -64 it would despawn
L2102[18:20:58] <gabizou> ??
L2103[18:21:05] <gabizou> yes, that is
L2104[18:21:31] <HassanS6000> Yeah I'm using Sponge events to spawn a snowball with Forge lol
L2105[18:21:31] <unascribed> shouldn't you be using whatever way Sponge provides to spawn entities?
L2106[18:21:44] <HassanS6000> I could
L2107[18:21:50] <unascribed> and should
L2108[18:21:58] <gabizou> there's even launch code in sponge to do this
L2109[18:22:00] ⇦ Quits: TechnicianLP (~Technic@p4FE1C82F.dip0.t-ipconnect.de) (Ping timeout: 190 seconds)
L2110[18:22:19] <HassanS6000> But unascribed why would it not have a position? I'm spawning it after setting its pos
L2111[18:22:39] <unascribed> I said the void thing after you sent your code that had setLocation commented out
L2112[18:22:41] <gabizou> HassanS6000 you're using the wrong constructor
L2113[18:22:46] <gabizou> which is probably why it's failing
L2114[18:22:57] <gabizou> the entity constructors are really touchy, and using the wrong one is bad
L2115[18:23:17] <HassanS6000> Which one should I be usinfg
L2116[18:23:17] <HassanS6000> *using
L2117[18:23:38] <unascribed> !findallm EntitySnowball.<init>
L2118[18:23:52] <unascribed> apparently, I suck at using MCPBot
L2119[18:24:07] <diesieben07> just EntitySnowball
L2120[18:24:13] <gabizou> HassanS6000 look up the item and see which one it uses
L2121[18:24:19] ⇨ Joins: CoderPuppy (~cpup@32.218.115.7)
L2122[18:24:28] <gabizou> because there's some funky things that go on depending on the constructors
L2123[18:25:09] ⇦ Quits: Inari (~Pinkishu@p5DEC62CC.dip0.t-ipconnect.de) (Quit: 'You're amazing!' (Mei))
L2124[18:26:38] ⇦ Quits: cpup (~cpup@32.218.114.242) (Ping timeout: 201 seconds)
L2125[18:28:29] ⇦ Quits: theFlaxbeard (~theFlaxbe@65-128-149-69.mpls.qwest.net) (Ping timeout: 186 seconds)
L2126[18:31:10] ⇦ Quits: Shambling (~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com) (Quit: Leaving)
L2127[18:31:10] <gamax92> would getting a world object be safe to do in the networking thread (not calling, just retrieving), and then using addScheduledTask with that object to do the actual manipulation
L2128[18:31:27] <tterrag> depends on how you "get" the world object
L2129[18:31:38] <tterrag> but really, why not just get it the same way inside the task?
L2130[18:32:10] ⇨ Joins: Shambling (~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com)
L2131[18:32:19] <gamax92> just DimensionManager.getWorld for server and FMLClientHandler.instance().getClient().theWorld for client
L2132[18:32:30] <diesieben07> dont do DimensinoManager.getWorld
L2133[18:32:35] <tterrag> ^
L2134[18:32:42] <diesieben07> do ctx.getServerHandler().playerEntity.worldObj
L2135[18:33:10] <gamax92> ahh, so then there would be no point in storing the dimension id in the packet then?
L2136[18:33:25] <diesieben07> of course not
L2137[18:33:32] <gamax92> okay, thanks
L2138[18:34:27] <tterrag> yes, handily enough, all packets carry along data about which client they came from
L2139[18:34:45] ⇨ Joins: RANKSHANK (~Michael@ppp121-44-11-113.lns20.syd4.internode.on.net)
L2140[18:34:47] <gamax92> is there a version of that for the client side as well or just use the FMLClientHandler stuff?
L2141[18:35:16] *** Keridos|away is now known as Keridos
L2142[18:35:20] ⇦ Quits: feldim2425 (~feldim242@188-23-95-139.adsl.highway.telekom.at) (Ping timeout: 190 seconds)
L2143[18:35:45] <tterrag> clientside just use Minecraft.getMinecraft.addScheduledTask()
L2144[18:35:58] <gamax92> no I mean for getting the world
L2145[18:36:51] ⇨ Joins: Mumfrey (~Mumfrey@dedi5.eq2.co.uk)
L2146[18:37:09] <TehNut> Minecraft.getMinecraft().theWorld
L2147[18:38:51] ⇨ Joins: feldim2425 (~feldim242@93-82-87-85.adsl.highway.telekom.at)
L2148[18:43:41] ⇨ Joins: cpup (~cpup@32.218.115.35)
L2149[18:45:39] ⇨ Joins: Slind (~Slind@static.168.103.243.136.clients.your-server.de)
L2150[18:45:49] ⇦ Quits: CoderPuppy (~cpup@32.218.115.7) (Ping timeout: 192 seconds)
L2151[18:47:24] ⇦ Parts: RANKSHANK (~Michael@ppp121-44-11-113.lns20.syd4.internode.on.net) ())
L2152[18:50:14] *** kroeser|away is now known as kroeser
L2153[18:50:59] ⇨ Joins: theFlaxbeard (~theFlaxbe@184.97.182.203)
L2154[18:51:29] ⇦ Quits: theFlaxbeard (~theFlaxbe@184.97.182.203) (Killed (NickServ (GHOST command used by theFlaxbeard2!~theFlaxbe@184.97.182.253)))
L2155[18:52:34] ⇦ Quits: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net) (Ping timeout: 186 seconds)
L2156[18:53:17] ⇨ Joins: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net)
L2157[18:59:38] *** kroeser is now known as kroeser|away
L2158[19:01:01] ⇨ Joins: CoderPuppy (~cpup@32.218.115.59)
L2159[19:01:35] ⇦ Quits: Shambling (~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com) (Quit: Leaving)
L2160[19:01:41] ⇦ Quits: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net) (Ping timeout: 192 seconds)
L2161[19:01:48] ⇨ Joins: rebecca (~rebecca@60-241-180-77.static.tpgi.com.au)
L2162[19:04:23] <mezz> tterrag, god damn it haha
L2163[19:06:07] ⇦ Quits: Abastro (~Abastro@112.166.128.227) (Ping timeout: 384 seconds)
L2164[19:06:41] ⇦ Quits: cpup (~cpup@32.218.115.35) (Ping timeout: 384 seconds)
L2165[19:08:23] ⇦ Quits: rebecca (~rebecca@60-241-180-77.static.tpgi.com.au) (Ping timeout: 384 seconds)
L2166[19:09:01] <tterrag> mezz: on the upside I got it working :P https://twitter.com/tterrag1098/status/752102092781727744
L2167[19:09:03] ⇦ Quits: Upthorn (~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net) (Ping timeout: 192 seconds)
L2168[19:09:31] ⇦ Quits: Girafi (Girafi@0x555178eb.adsl.cybercity.dk) ()
L2169[19:09:48] <tterrag> but yeah I facepalmed pretty hard when I saw that
L2170[19:09:53] <tterrag> now I just check the material
L2171[19:09:58] ⇨ Joins: Doty1154 (~Doty1154@2601:648:8000:134f:6dcc:b219:3829:f47e)
L2172[19:12:46] *** minecreatr is now known as Mine|away
L2173[19:14:16] ⇦ Quits: c233 (~c233@164.40.205.83) (Ping timeout: 198 seconds)
L2174[19:14:22] ⇨ Joins: c233 (~c233@164.40.205.247)
L2175[19:19:13] ⇦ Quits: CoderPuppy (~cpup@32.218.115.59) (Ping timeout: 186 seconds)
L2176[19:20:04] <mezz> yeah...
L2177[19:25:17] ⇨ Joins: cpup (~cpup@32.218.115.80)
L2178[19:31:38] <jackmcbarn> is there a common cause/fix for "player moved wrongly" every time my mod makes someone stop moving?
L2179[19:32:52] ⇦ Quits: xEviLSpaWnx (~xEvilSpaw@cpc21-pete9-2-0-cust202.4-4.cable.virginm.net) ()
L2180[19:33:23] *** MrKickkiller is now known as MrKick|Away
L2181[19:34:42] ⇨ Joins: rebecca_ (~rebecca@209.95.50.47)
L2182[19:35:11] ⇨ Joins: killjoy (~killjoy@cpe-2606-A000-1118-C151-50C-A6B9-3534-A77C.dyn6.twc.com)
L2183[19:36:19] ⇨ Joins: CoderPuppy (~cpup@32.218.115.121)
L2184[19:39:00] ⇦ Quits: cpup (~cpup@32.218.115.80) (Ping timeout: 190 seconds)
L2185[19:41:42] ⇨ Joins: Drullkus (~Dru11kus@2601:646:8301:ead3:f0fa:e0f2:c369:41e3)
L2186[19:42:40] ⇦ Quits: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098) (Ping timeout: 190 seconds)
L2187[19:43:27] <killjoy> Is there some law that states that if you mod it enough, eventually something will break?
L2188[19:43:59] ⇨ Joins: Upthorn (~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net)
L2189[19:44:28] ⇨ Joins: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098)
L2190[19:44:52] ⇨ Joins: Vazkii (~Vazkii@a79-169-163-74.cpe.netcabo.pt)
L2191[19:48:12] ⇨ Joins: cpup (~cpup@32.218.115.149)
L2192[19:48:41] ⇦ Quits: Meow-J (uid69628@id-69628.highgate.irccloud.com) (Quit: Connection closed for inactivity)
L2193[19:48:56] ⇦ Quits: raoulvdberge (uid95673@id-95673.richmond.irccloud.com) (Quit: Connection closed for inactivity)
L2194[19:49:53] ⇦ Quits: CoderPuppy (~cpup@32.218.115.121) (Ping timeout: 201 seconds)
L2195[19:50:39] *** MrKick|Away is now known as MrKickkiller
L2196[19:50:57] *** MrKickkiller is now known as MrKick|Vacation
L2197[19:53:39] ⇨ Joins: killjoy1 (~killjoy@cpe-2606-A000-1118-C151-50C-A6B9-3534-A77C.dyn6.twc.com)
L2198[19:55:36] ⇦ Quits: killjoy (~killjoy@cpe-2606-A000-1118-C151-50C-A6B9-3534-A77C.dyn6.twc.com) (Killed (NickServ (GHOST command used by killjoy2)))
L2199[19:55:41] ⇨ Joins: Redrield (~user@sdbron9882w-047054057213.dhcp-dynamic.on.fibreop.ca)
L2200[19:55:43] <Redrield> Hello
L2201[19:55:43] ⇦ Quits: Cojo (~Cojo@cpe-2606-A000-4C46-8D00-685D-FA9C-4411-56FA.dyn6.twc.com) (Quit: If we wish to explore, if we wish to see what's over the next hill, wonders unfold before us; all we have to do is want it enough.)
L2202[19:55:56] ⇨ Joins: killjoy (~killjoy@cpe-2606-A000-1118-C151-50C-A6B9-3534-A77C.dyn6.twc.com)
L2203[19:56:03] <Redrield> Could anyone here lead me to a good series of tutorials for learning how to mod Minecraft?
L2204[19:56:37] <Redrield> I've never been able to find any good ones, and I really do want to learn how to do it. (I already know Java, and I've developed Spigot plugins in the past)
L2205[19:56:39] ⇨ Joins: sinkillerj (~sinkiller@nc-67-232-14-224.dhcp.embarqhsd.net)
L2206[19:57:07] *** Mumfrey is now known as mumfrey
L2207[19:57:13] ⇦ Quits: killjoy1 (~killjoy@cpe-2606-A000-1118-C151-50C-A6B9-3534-A77C.dyn6.twc.com) (Ping timeout: 192 seconds)
L2208[19:57:16] <killjoy> vswe has some good ones
L2209[19:57:21] <Redrield> Link?
L2210[19:57:22] <killjoy> and pahimar's let's mod
L2211[19:57:26] <mezz> try here http://modwiki.temporal-reality.com/mw/index.php/Main_Page
L2212[19:57:44] <killjoy> http://courses.vswe.se/
L2213[19:57:57] <killjoy> http://www.pahimar.com/tutorials/lets-mod/
L2214[19:57:58] <mezz> McJty is one of the most prolific modders at the moment and I recommend his tutorial
L2215[19:58:15] <killjoy> I don't look too hard at many tutorials nowadays
L2216[19:58:24] <killjoy> I'm assuming it's good
L2217[19:58:40] <killjoy> I just recommend them because others do
L2218[19:58:43] <Redrield> Were there many changes between 1.9 and 1.10?
L2219[19:58:48] <killjoy> not really
L2220[19:58:49] <mezz> almost none
L2221[19:58:55] <Redrield> Because my setup is for 1.10.2 atm
L2222[19:58:57] <Redrield> Kk
L2223[19:58:57] <killjoy> some ints turned to enums
L2224[19:59:09] <killjoy> that's what I've noticed at least
L2225[19:59:17] <killjoy> some new mobs, blocks, etc
L2226[19:59:17] <Redrield> The less magic numbers I have to learn the better :P
L2227[19:59:39] <killjoy> the one I saw was SkeletonType
L2228[19:59:54] <killjoy> because it used to be just 0: normal, 1: wither
L2229[20:00:02] <killjoy> of course it's still magic in nbt
L2230[20:03:51] <Redrield> This is a bit offtopic, but have any of you ever used https://plugins.jetbrains.com/plugin/8327?pr=
L2231[20:04:12] <SkySom> I didn't even know that was a thing.
L2232[20:04:13] <SkySom> Nice.
L2233[20:04:30] <SkySom> I probably will be downloading that.
L2234[20:04:32] <killjoy> visualstudio has something similar.
L2235[20:04:35] <killjoy> it's just some templates
L2236[20:04:43] <SkySom> Templates are nice.
L2237[20:04:51] <SkySom> Cause setting up a mod is a bit tedious at times.
L2238[20:04:57] <Redrield> I can attest to that for plugins
L2239[20:05:02] <SkySom> (I mean first time stuff)
L2240[20:05:12] <Redrield> I can spend 5 minutes copying over a pomfile before writing a line of java if I don't use this
L2241[20:05:16] <SkySom> Just copying some of the same stuff over for a new project.
L2242[20:10:34] <Redrield> Is it better to have the modid, etc, variables in a seperate class, or defined at the top of the main class?
L2243[20:10:42] <Redrield> I remember most older tutorials I watched put them in a different class
L2244[20:13:30] ⇨ Joins: netz (ntzrmtthih@Join.The.DarkSide.We.Have.Coookies.PanicBNC.us)
L2245[20:13:32] <netz> >
L2246[20:13:37] <netz> what up all o/
L2247[20:21:00] <electrolitic> Are there certain interfaces that you nearly always want to implement for a TileEntity?
L2248[20:24:19] ⇦ Quits: AndersBillLind (~anders@217-211-66-29-no23.tbcn.telia.com) (Ping timeout: 384 seconds)
L2249[20:24:48] <kenzierocks> not that I know of
L2250[20:24:52] <kenzierocks> maybe the ITickable one?
L2251[20:24:58] <killjoy> ICapability perhaps?
L2252[20:25:37] <LatvianModder> tterrag: http://pastebin.com/RgZEBb26
L2253[20:25:46] <LatvianModder> A weird crash my friend is getting
L2254[20:26:39] <LatvianModder> Nevermind, it was Optifine shaders causing that
L2255[20:27:41] <Redrield> Time to start a flame war
L2256[20:27:43] <Redrield> Vim or emacs
L2257[20:27:44] <Redrield> :>
L2258[20:27:49] <killjoy> neither
L2259[20:27:54] <killjoy> notepad++
L2260[20:27:57] <kenzierocks> minecraft
L2261[20:28:01] <killjoy> sometimes VSCode
L2262[20:28:05] <kenzierocks> i use minecraft for all code editing purposes
L2263[20:28:45] <Redrield> but
L2264[20:28:47] <Redrield> Emacs
L2265[20:29:01] <killjoy> kenzierocks, butterflies
L2266[20:29:08] <kenzierocks> lol
L2267[20:29:11] <killjoy> and a steady hand
L2268[20:29:23] <Redrield> To be fair
L2269[20:29:28] <Redrield> M-x butterfly is very effective
L2270[20:29:39] <kenzierocks> (https://xkcd.com/378/ for anyone not familiar with XKCD)
L2271[20:29:48] <killjoy> I wish my keyboard had a spacebar warmer
L2272[20:30:04] <Redrield> I wish my spacebar had a keyboard warmer
L2273[20:30:16] <kenzierocks> I wish my killjoy had a Redrield warmer
L2274[20:30:31] <killjoy> *rubs up on Redrield
L2275[20:30:47] * killjoy gives blanket
L2276[20:32:18] <netz> heh. vim+ergodox infinity
L2277[20:32:39] * Redrield resists the urge to flame
L2278[20:34:20] ⇨ Joins: agowa338 (~Thunderbi@p54919CA8.dip0.t-ipconnect.de)
L2279[20:35:23] <netz> I'm really looking forward to mine :)
L2280[20:36:37] <netz> its due in <40d
L2281[20:37:36] <killjoy> just get the vim VSCode plugin
L2282[20:40:48] <Delenas> Okay, so
L2283[20:41:01] <Delenas> What black magic is happening with Forge registries
L2284[20:41:14] <killjoy> they're really vanilla registries
L2285[20:41:40] <killjoy> register a thing with a name.
L2286[20:41:41] ⇦ Quits: RichardG (~richardg8@201.17.104.196) (Ping timeout: 201 seconds)
L2287[20:42:00] <killjoy> it automatically gets assigned a int
L2288[20:42:05] <Redrield> Jeez, just glancing inside packages shows me how different spigot and forge are
L2289[20:42:12] <killjoy> forge syncs server ids with the client
L2290[20:42:13] <Delenas> Because I'm trying to make one and I'm getting PErsistentRegistryMAnager.makeDelegate errors
L2291[20:42:26] <Redrield> net.minecraft.server in spigot is a giant clusterfu** of random classes
L2292[20:42:27] <killjoy> spigot uses different mappings
L2293[20:42:31] <Redrield> It's actually organized in this one
L2294[20:42:42] <killjoy> they're the same classes, don't doubt it
L2295[20:42:48] <killjoy> just different names
L2296[20:43:01] <Redrield> I know they're the same
L2297[20:43:16] <Redrield> But in spigot every single class is just under NMS, this one has subpackages and all that
L2298[20:43:46] <killjoy> keeps things simple
L2299[20:43:57] <killjoy> it's just like net.minecraft.src
L2300[20:44:04] <killjoy> can't reference classes in the default package
L2301[20:44:09] ⇦ Quits: yopu (~yopu@184-89-191-67.res.bhn.net) (Ping timeout: 201 seconds)
L2302[20:44:14] <kenzierocks> isn't that what NMS originally stood for
L2303[20:44:31] <killjoy> probs
L2304[20:44:43] <Redrield> In spigot NMS referenced net.minecraft.server, but it's probably suposed to be that
L2305[20:44:44] <kenzierocks> actually i don't think
L2306[20:44:45] <killjoy> Pk: . net/minecraft/src
L2307[20:44:54] <kenzierocks> i don't think that's the case
L2308[20:45:02] <kenzierocks> looks like it's only a bukkit term
L2309[20:45:38] <killjoy> and nms was considered bad
L2310[20:50:39] ⇨ Joins: BaronNox_ (~BaronNox@pd9e9805e.dip0.t-ipconnect.de)
L2311[20:52:32] ⇨ Joins: killjoy1 (~killjoy@cpe-2606-A000-1118-C151-BCB1-1446-EDE0-D413.dyn6.twc.com)
L2312[20:52:53] ⇦ Quits: BaronNox (~BaronNox@pD9E99F6F.dip0.t-ipconnect.de) (Ping timeout: 186 seconds)
L2313[20:52:53] *** BaronNox_ is now known as BaronNox
L2314[20:55:01] ⇦ Quits: killjoy (~killjoy@cpe-2606-A000-1118-C151-50C-A6B9-3534-A77C.dyn6.twc.com) (Ping timeout: 192 seconds)
L2315[20:57:27] ⇨ Joins: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net)
L2316[21:01:34] <Redrield> How can I write a message out to chat?
L2317[21:01:46] <killjoy1> player.addChatMessage
L2318[21:03:11] <Redrield> ah alright
L2319[21:03:17] <Redrield> As usual I was overcomplicating it
L2320[21:05:31] <Redrield> And how do I run my mod?
L2321[21:05:36] <Redrield> Using ForgeGradle
L2322[21:05:56] <killjoy1> if you don't have a player instance, you can always use mc.ingameGui.getChatGui().printChatMessage
L2323[21:06:16] <killjoy1> I might be wrong with getChatGui
L2324[21:06:18] <Delenas> run config, Application. Class is GradleStart, classpath is your main module
L2325[21:06:41] <Redrield> I'm playing around with blocks, my 'hello world' is going to be printing "Hello" to chat when a block gets placed
L2326[21:06:45] <Redrield> So I have the object already
L2327[21:07:15] <killjoy1> A friend of mine made a bukkit plugin that makes "plushies"
L2328[21:07:18] <killjoy1> they squeak
L2329[21:13:35] <Redrield> Hm
L2330[21:14:50] <Redrield> I feel like I broke something
L2331[21:16:48] ⇦ Quits: AforAnonymous (bitch2k@dyn-050-029.vix2.mmc.at) (Remote host closed the connection)
L2332[21:16:53] <Redrield> I managed to corrupt a whole world by holding an item
L2333[21:16:58] <Redrield> Success?
L2334[21:21:16] <Redrield> Uh, does version 1.9.4-12.17.0.1976 support leaving out the values of @SidedProxy and just making nested classes?
L2335[21:22:02] ⇨ Joins: VikeStep (~VikeStep@101.184.243.180)
L2336[21:22:54] <Ordinastie_> don't do it
L2337[21:23:02] <Ordinastie_> just specify the classes
L2338[21:23:06] <netz> Ordinastie_: howdy o/
L2339[21:23:10] <Redrield> mkahy
L2340[21:23:30] <Ordinastie_> netz, \o
L2341[21:24:04] <netz> how goes it lately?
L2342[21:24:20] <Ordinastie_> meh, not much motivation to code
L2343[21:24:42] <Ordinastie_> haven't even released for 1.9.4 yet :/
L2344[21:25:09] <netz> same here. been digging into xkeyboard-config stuffs.
L2345[21:26:02] <Ordinastie_> I have this super annoying problem
L2346[21:26:10] <Ordinastie_> I want to do so many things
L2347[21:26:19] <netz> yeah. I know the feels.
L2348[21:26:20] <Ordinastie_> I just don't want to do them right now
L2349[21:26:28] <Ordinastie_> so I pretty much do nothing
L2350[21:26:48] <Ordinastie_> I blame youtube for that
L2351[21:32:20] <Redrield> I'm gonna need some help with this
L2352[21:32:35] ⇦ Quits: Snapples (uid167569@2604:8300:100:200b:6667:1:2:8e91) (Quit: Connection closed for inactivity)
L2353[21:33:39] <Redrield> I can't even fully load into my world without the game crashing .-.
L2354[21:33:59] <killjoy1> delete player.dat
L2355[21:34:03] <Ordinastie_> good thing the log tells you why
L2356[21:35:10] ⇨ Joins: agowa339 (~Thunderbi@p54919C5E.dip0.t-ipconnect.de)
L2357[21:35:14] <Redrield> It's complaining about missing json files
L2358[21:35:16] ⇦ Quits: agowa338 (~Thunderbi@p54919CA8.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L2359[21:35:16] *** agowa339 is now known as agowa338
L2360[21:35:34] <Redrield> http://hastebin.com/jukolucepo.avrasm
L2361[21:36:23] <Ordinastie_> yup, you nitpick parts of the log, but those don't make the game crash
L2362[21:36:49] <Redrield> Those are the parts that stand out to me .-.
L2363[21:37:02] <Redrield> Let me get the crash dump which I can't make heads or tails of
L2364[21:37:33] <Redrield> http://hastebin.com/fekezomefi.tex
L2365[21:38:17] <Ordinastie_> wait, you're telling me you found a way to reliably crash the JVM ?
L2366[21:38:28] <Redrield> Apparently
L2367[21:38:50] <Redrield> Let me give you the block code
L2368[21:39:01] <Redrield> http://hastebin.com/yesorosayi.avrasm
L2369[21:39:15] <Redrield> Without that it doesn't crash, just does nothing
L2370[21:39:48] <Ordinastie_> if you comment out the registering does it still crash ?
L2371[21:39:59] <Redrield> I'll try it
L2372[21:41:20] <Redrield> Alright
L2373[21:41:22] <Redrield> I was wrong
L2374[21:41:39] <Redrield> Commenting out the line where I initialize the block still caused it to crash
L2375[21:42:27] <Ordinastie_> and you confirm it's not just MC crashing, it's the JVm
L2376[21:43:11] <Redrield> This is the crash dump when I have ModBlocks#init() commented out in CommonProxy#preInit()
L2377[21:43:11] <Redrield> http://hastebin.com/abuyasesoy.tex
L2378[21:44:21] <Ordinastie_> launch without your mod
L2379[21:44:44] <Redrield> Testing something myself, then I'll do that
L2380[21:45:20] <Ordinastie_> you shouldn't be able to crash the VM like that
L2381[21:45:29] <Ordinastie_> tbh, I don't even know how to do that
L2382[21:45:39] <Ordinastie_> so my guess is you're not responsible
L2383[21:46:11] <Ordinastie_> also, I would delete the run folder or wherever your run the game from
L2384[21:46:20] ⇦ Quits: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098) (Ping timeout: 190 seconds)
L2385[21:46:25] <Redrield> Only forge 1.9.4-12.17.0.1976 was running
L2386[21:46:27] <Redrield> Still crashed
L2387[21:46:36] <Redrield> I'm not doing anything awfully wrong \o/
L2388[21:48:13] ⇨ Joins: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098)
L2389[21:49:36] <Redrield> Just tested it in vanilla, and loading the world works fine
L2390[21:50:50] <Ordinastie_> are you running it in dev ?
L2391[21:50:59] <Redrield> What do you mean?
L2392[21:51:08] <Ordinastie_> from your IDE
L2393[21:51:11] <Redrield> No
L2394[21:51:14] <Redrield> I'm loading up MC
L2395[21:51:38] <Redrield> I package my jar and plop it in .minecraft/mods
L2396[21:51:53] ⇦ Quits: Disconsented (~core@disconsented.com) (Quit: Somthing died. Please panic.)
L2397[21:52:10] <Ordinastie_> you packaged it how ?
L2398[21:52:20] <Redrield> gradle clean build
L2399[21:52:38] <Ordinastie_> you don't need clean but ok
L2400[21:52:55] <Ordinastie_> and it's your built jar that crashes ?
L2401[21:53:02] ⇨ Joins: Disconsented (~core@disconsented.com)
L2402[21:53:59] <Redrield> I tried without it
L2403[21:54:00] <Redrield> Just plain forge
L2404[21:54:02] <Redrield> Still crashed
L2405[21:54:34] <Ordinastie_> if you delete the world, does it still crash ?
L2406[21:54:50] <Redrield> Every time I tried I made another world
L2407[21:54:53] <Redrield> Kept crashing each time
L2408[21:55:49] <Ordinastie_> well, something is broken somewhere
L2409[21:56:01] <Ordinastie_> did you run your mod in dev ?
L2410[21:56:14] <Redrield> I don't have an option to, that I know of
L2411[21:56:20] <Ordinastie_> what ?
L2412[21:56:33] <Redrield> The intellij plugin that I used to create the project only made a configuration to compile the jar
L2413[21:56:33] <Ordinastie_> what are your using ?
L2414[21:56:52] <Redrield> http://hastebin.com/vutalumiso.coffee
L2415[21:57:05] <Redrield> https://plugins.jetbrains.com/plugin/8327?pr=
L2416[21:57:08] <Ordinastie_> what IDE
L2417[21:57:12] <Redrield> IntelliJ CE
L2418[21:57:44] <Ordinastie_> don't know IntelliJ, but I know you can run your mod from the IDE directly
L2419[21:58:11] <Redrield> What's the gradle task I should be using to do that?
L2420[21:58:32] <Ordinastie_> well, there is runClient as a gradle task, but I don't even mean a gradle task
L2421[21:59:49] <Redrield> Alright
L2422[21:59:53] <Redrield> Gonna try that
L2423[22:00:23] ⇨ Joins: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L2424[22:00:26] ⇨ Joins: Naiten (Naiten@5.143.89.50)
L2425[22:00:55] <Redrield> This is promising
L2426[22:00:58] <Redrield> No crashes in dev
L2427[22:01:14] <Ordinastie_> you used runClient ?
L2428[22:02:44] <Redrield> yea
L2429[22:03:25] *** Keridos is now known as Keridos|away
L2430[22:04:05] <Ordinastie_> not even sure if it's really in dev
L2431[22:04:09] ⇦ Quits: iari (~iari___@evana.futhark24.org) (Quit: Leaving)
L2432[22:04:15] <Ordinastie_> I doubt you can debug and hotswap from it
L2433[22:07:01] <Redrield> I still have no idea why it was crashing for the actual game
L2434[22:07:38] <Redrield> They're the same version of forge so it can't be that
L2435[22:07:43] <Ordinastie_> I don't know, but I would suggest a clean reinstall of java, mc, and forge
L2436[22:08:34] <Redrield> It's something with forge, I'm almost sure of that
L2437[22:08:44] <Ordinastie_> I doubt it
L2438[22:08:44] <Redrield> It kept crashing even with no mods present, only forge
L2439[22:08:59] <Redrield> And I tried in vanilla with the same everything else, and it didn't do anything
L2440[22:09:36] <Ordinastie_> I'd blame your system over forge
L2441[22:10:01] <Redrield> When the problem couldn't be replicated without forge present?
L2442[22:17:11] ⇦ Quits: Redrield (~user@sdbron9882w-047054057213.dhcp-dynamic.on.fibreop.ca) (Quit: ERC (IRC client for Emacs 24.5.1))
L2443[22:20:01] *** DarkevilAway is now known as Darkevilmac
L2444[22:20:46] ⇦ Quits: Drullkus (~Dru11kus@2601:646:8301:ead3:f0fa:e0f2:c369:41e3) (Remote host closed the connection)
L2445[22:21:49] ⇨ Joins: Drullkus (~Dru11kus@2601:646:8301:ead3:8c3c:cba0:bb23:fa2d)
L2446[22:28:23] ⇦ Quits: KnightMiner_ (~KnightMin@68.255.0.239) (Quit: Leaving)
L2447[22:28:30] ⇦ Quits: Vazkii (~Vazkii@a79-169-163-74.cpe.netcabo.pt) (Quit: bOI)
L2448[22:30:36] ⇦ Quits: Ordinastie_ (~Ordinasti@87-231-58-94.rev.numericable.fr) (Read error: Connection reset by peer)
L2449[22:31:40] ⇨ Joins: Abastro (~Abastro@112.166.128.227)
L2450[22:39:44] ⇨ Joins: McJty (~jorrit@94-225-203-206.access.telenet.be)
L2451[22:44:52] ⇦ Quits: Lathanael|Away (~Lathanael@p54960803.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L2452[22:45:25] *** cpw is now known as cpw|out
L2453[22:45:45] ⇨ Joins: mallrat208 (~mallrat20@184-88-190-37.res.bhn.net)
L2454[22:46:03] <Delenas> @.@ Okay. I'm probably doing the registry code horribly wrong, but it works as it stands right now.
L2455[22:48:37] ⇨ Joins: abab9579 (~abab9579@112.166.128.227)
L2456[22:51:28] ⇨ Joins: Lathanael|Away (~Lathanael@p54960225.dip0.t-ipconnect.de)
L2457[22:58:33] ⇦ Quits: triangle36 (~trianglec@216.38.32.2) (Quit: Leaving)
L2458[22:58:33] ⇦ Quits: keybounce (~keybounce@adsl-108-192-88-90.dsl.bkfd14.sbcglobal.net) (Ping timeout: 192 seconds)
L2459[22:58:56] ⇨ Joins: keybounce (~keybounce@adsl-108-192-89-65.dsl.bkfd14.sbcglobal.net)
L2460[22:59:45] <Delenas> 12 commits later..
L2461[23:01:43] <Delenas> Folks mind sanity checking me at this point? https://github.com/MinecraftForge/MinecraftForge/pull/3073/files
L2462[23:06:55] ⇦ Quits: stiforr (~stiforr@ip72-216-4-156.pn.at.cox.net) (Read error: Connection reset by peer)
L2463[23:10:54] *** Darkevilmac is now known as DarkevilAway
L2464[23:14:16] ⇦ Quits: agowa338 (~Thunderbi@p54919C5E.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L2465[23:16:56] ⇨ Joins: Nitrodev (~Nitrodev@87-92-75-66.bb.dnainternet.fi)
L2466[23:22:13] ⇦ Quits: Delenas (~Delenas@2600:1016:b11a:e44b:1526:6510:f029:ac72) (Quit: Console.Write("Goodbye, world!");)
L2467[23:28:06] *** Mine|away is now known as minecreatr
L2468[23:30:35] ⇦ Quits: patrick96 (~patrick96@42.53.105.92.dynamic.wline.res.cust.swisscom.ch) (Quit: Leaving)
L2469[23:31:22] ⇨ Joins: Delenas (~Delenas@2600:1016:b11a:e44b:512a:ade8:ea8e:17df)
L2470[23:31:32] ⇨ Joins: codahq (~codahq@c-73-65-219-228.hsd1.ut.comcast.net)
L2471[23:34:20] ⇨ Joins: killjoy (~killjoy@cpe-2606-A000-1118-C151-FC7A-3ED0-8416-B12B.dyn6.twc.com)
L2472[23:34:42] ⇦ Quits: Doty1154 (~Doty1154@2601:648:8000:134f:6dcc:b219:3829:f47e) (Read error: Connection reset by peer)
L2473[23:34:49] ⇦ Quits: abab9579 (~abab9579@112.166.128.227) (Ping timeout: 192 seconds)
L2474[23:37:29] ⇨ Joins: npe|office (~NPExcepti@bps-gw.hrz.tu-chemnitz.de)
L2475[23:37:39] ⇦ Quits: killjoy1 (~killjoy@cpe-2606-A000-1118-C151-BCB1-1446-EDE0-D413.dyn6.twc.com) (Ping timeout: 198 seconds)
L2476[23:50:00] ⇦ Quits: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098) (Ping timeout: 190 seconds)
L2477[23:51:51] <mezz> Delenas, what changed exactly? why did you need a registry?
L2478[23:51:55] ⇨ Joins: alekso56 (~znc@2001:464b:c2aa:0:745d:45ff:fe3b:a098)
L2479[23:58:18] ⇦ Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout: 195 seconds)
L2480[23:59:11] ⇦ Quits: Benimatic (~Benimatic@cblmdm72-241-108-184.buckeyecom.net) (Ping timeout: 192 seconds)
L2481[23:59:15] <Delenas> To handle the gui ids.
L2482[23:59:49] ⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L2483[23:59:52] <mezz> ok. what was it doing before?
<<Prev Next>> Scroll to Top