<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:13:16] ⇨ Joins: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
L2[00:23:10] ⇦ Quits: Neal (~Neal@47.146.41.184) (Ping timeout: 204 seconds)
L3[00:31:59] ⇨ Joins: Dimmerworld (~quassel@90.252.3.123.sta.dodo.net.au)
L4[00:32:25] <Dimmerworld> How can I add a shaped recipe for a state of a block?
L5[00:33:35] <mezz> item to block and back is not an exact science
L6[00:33:50] <mezz> you can usually get the proper ItemStack from a block using pickBlock
L7[00:34:39] <mezz> getting a recipe for an item is not trivial, you probably have to iterate over all the recipes to see which one matches the output you want, and hope it has specified valid input items
L8[00:34:42] ⇦ Quits: Lathanael|Away (~Lathanael@p54960B6A.dip0.t-ipconnect.de) (Ping timeout: 198 seconds)
L9[00:36:25] ⇨ Joins: Lathanael|Away (~Lathanael@p5496047F.dip0.t-ipconnect.de)
L10[00:37:21] <Dimmerworld> by a state of a block I mean a blockstate. I have a solar panel block which has four sub thingos basic,advnaced, blah and blah. I can use registerShaped(getStack(ModBlocks.SOLAR_PANEL) to get the basic block but I am trying to add recipes for the other types.
L11[00:41:12] <Ordinastie> so you finally found out what I meant by "get your block instance statically" :)
L12[00:42:32] <Dimmerworld> I still have no idea what that means.
L13[00:44:34] <Ordinastie> that's sad :/
L14[00:46:12] ⇨ Joins: CoderPuppy (~cpup@32.218.115.82)
L15[00:49:54] <Dimmerworld> ;(
L16[00:50:22] ⇦ Quits: cpup (~cpup@32.218.115.42) (Ping timeout: 383 seconds)
L17[01:09:20] ⇦ Quits: Doty1154 (~Doty1154@2601:648:8000:134f:8125:6ebb:4d57:e5f3) (Quit: Leaving)
L18[01:09:29] ⇦ Quits: CoderPuppy (~cpup@32.218.115.82) (Ping timeout: 200 seconds)
L19[01:15:16] ⇨ Joins: cpup (~cpup@32.218.115.122)
L20[01:34:25] ⇦ Quits: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 198 seconds)
L21[01:40:04] ⇨ Joins: Cornelia (~Nel@c-75-71-231-133.hsd1.co.comcast.net)
L22[01:51:37] <MCPBot_Reborn> [TEST CSV] Pushing snapshot_20171010 mappings to Forge Maven.
L23[01:51:40] <MCPBot_Reborn> [TEST CSV] Maven upload successful for mcp_snapshot-20171010-1.12.zip (mappings = "snapshot_20171010" in build.gradle).
L24[01:51:51] <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/
L25[03:13:33] ⇨ Joins: c64cosmin (kiwiirc@79.114.100.255)
L26[03:38:19] ⇦ Quits: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a) (Quit: Leaving.)
L27[03:44:57] ⇦ Quits: c64cosmin (kiwiirc@79.114.100.255) (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
L28[04:08:32] ⇨ Joins: ben_mkiv (~ben_mkiv@p4FED5EB4.dip0.t-ipconnect.de)
L29[04:16:49] ⇦ Quits: rebecca (~rebecca@212.92.122.206) (Ping timeout: 186 seconds)
L30[04:27:48] ⇨ Joins: NexuNuke (~NexuNuke@66.240.113.87.dyn.plus.net)
L31[04:28:05] <NexuNuke> Anyone able to help me with a problem real quick?
L32[04:28:26] <ben_mkiv> depends
L33[04:28:59] <NexuNuke> https://pastebin.com/P7JjQrKs
L34[04:29:05] <NexuNuke> no idea how to fix this
L35[04:29:13] <NexuNuke> its not using jdk9
L36[04:29:29] <ben_mkiv> are you player or dev?
L37[04:29:33] <NexuNuke> dev
L38[04:29:39] <NexuNuke> well, trying to learn
L39[04:30:26] <ben_mkiv> you sure that you imported the correct libary?
L40[04:30:30] <ghz|afk> are you trying to use java9?
L41[04:30:38] ⇨ Joins: rebecca (~rebecca@212.92.124.61)
L42[04:30:39] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 383 seconds)
L43[04:30:40] <NexuNuke> not using jdk9
L44[04:30:52] <NexuNuke> ive already been told thats the cause, but apparently its not
L45[04:31:03] <ghz|afk> oh
L46[04:31:05] <ghz|afk> I see
L47[04:31:05] <NexuNuke> i changed java_home to jdk8 but i still get the issue
L48[04:31:11] <ghz|afk> I foundit weird that you mentioned it
L49[04:31:18] <ghz|afk> but I see why
L50[04:31:30] <ben_mkiv> OpenGL: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
L51[04:31:36] <ben_mkiv> are you connected by remote desktop?
L52[04:31:41] <NexuNuke> nope
L53[04:32:02] <NexuNuke> its not about opengl afaict
L54[04:32:10] <ghz|afk> shouldn't matter though
L55[04:32:10] <ghz|afk> java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;
L56[04:32:11] <NexuNuke> its to do with java not being installed properly
L57[04:32:18] <ghz|afk> the crash seems to be with mismatched classes
L58[04:32:30] <NexuNuke> should i reinstall everything from scratch?
L59[04:32:38] <ghz|afk> since you are using 1.7.10, which is very very very old
L60[04:32:42] <NexuNuke> yea i am
L61[04:32:44] <ghz|afk> maybe j8 also has issues
L62[04:33:03] <NexuNuke> was gonna try make a mod for a server im part of
L63[04:33:03] <ghz|afk> you could try setting up a jdk6 and using that one for the modding
L64[04:33:11] <NexuNuke> not 7?
L65[04:33:16] <ghz|afk> 7 is meaningless
L66[04:33:23] <NexuNuke> huh, why?
L67[04:33:24] <ghz|afk> mc was java6 up until 1.12 when it became java7
L68[04:33:25] <ben_mkiv> import io.netty.buffer.ByteBuf;
L69[04:33:29] <ben_mkiv> thats the lib i'm using
L70[04:33:32] <ghz|afk> but yo ucould try jdk7 I guess
L71[04:33:44] <ghz|afk> eh
L72[04:33:47] <ghz|afk> 1.12 java 8*
L73[04:33:57] <ben_mkiv> look like 1.7.10^^
L74[04:34:15] <NexuNuke> it is 1.7.10
L75[04:34:29] <ghz|afk> NexuNuke: so that crash is in the modding environment I guess?
L76[04:34:49] <NexuNuke> Aye, in intellij/eclipse both when i try to run the client for the first time
L77[04:36:34] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L78[04:36:51] <ghz|afk> my only suggestion was going to be to try to re-run the setupDecompWorkspace task
L79[04:37:08] <ghz|afk> besides trying with an older jdk
L80[04:37:18] <ghz|afk> I really can't help any more since I haven't touched 1.7.10 in 3 years
L81[04:37:40] <NexuNuke> i would go with 1.12, but i wanna mess around with thaumcraft addons, and since its not updated i cant really do that
L82[04:38:03] <ghz|afk> well thaumcraft made it to 1.8 but yeah it sucks
L83[04:38:51] <NexuNuke> as i said, im kinda wanting to make a tc addon for a server im on, but i might just make a new mod from scratch and hope that tc gets updated soon(tm)
L84[04:39:21] <ben_mkiv> thats some kind of own religion for now
L85[04:39:29] <NexuNuke> huh?
L86[04:39:42] <ghz|afk> I'm doubtful
L87[04:39:43] <ben_mkiv> they believe that thaumcraft reincarnates
L88[04:39:56] <ghz|afk> it didn't even update to 1.10.2, which is the next big version after 1.7.10
L89[04:40:05] <NexuNuke> Aye, but it'd be nice. Whats actually happening with az?
L90[04:40:15] <ben_mkiv> probably got a life
L91[04:40:21] <NexuNuke> lmao
L92[04:41:01] <ghz|afk> his twitter consists exclusively to "liked this video" messages, so who knows ;P
L93[04:41:05] <ghz|afk> of*
L94[04:41:14] <NexuNuke> yea, ive looked on there a bit in hope
L95[04:42:12] <NexuNuke> wait, do i set the java_home as in the bin folder or just the folder
L96[04:43:28] ⇨ Joins: TomyLobo (~TomyLobo@2a02:8109:87c0:20c:acea:836d:606b:826e)
L97[04:43:33] <ghz|afk> eh I don't use java_home myself
L98[04:43:38] <ghz|afk> I just configure the jdk in intellij
L99[04:43:59] <NexuNuke> honestly, i should do that
L100[04:45:59] <NexuNuke> its still crashing with the same error, ill try setupDecomp agail
L101[04:46:02] <NexuNuke> again*
L102[04:48:00] <NexuNuke> still the same error *sight*
L103[04:48:04] <NexuNuke> sigh*
L104[04:50:15] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 186 seconds)
L105[05:06:15] <NexuNuke> What version of forge do i download for 1.12? as in installer, or universal etc
L106[05:08:08] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L107[05:08:46] <ben_mkiv> is there something like switch in java which supports multiple entrys for same case type?
L108[05:09:00] <ben_mkiv> or do i have to write ugly if/else shizzle?! ;_;
L109[05:09:40] <ghz|afk> hm?
L110[05:09:48] <ghz|afk> you mean like
L111[05:09:51] <ghz|afk> switch(value) {
L112[05:09:52] <ghz|afk> case 1:
L113[05:09:54] <ghz|afk> case 2:
L114[05:09:55] <ghz|afk> code;
L115[05:09:57] <ghz|afk> break;
L116[05:09:58] <ghz|afk> case 3:
L117[05:09:58] <ghz|afk> ...
L118[05:09:59] <ghz|afk> ?
L119[05:10:03] <ben_mkiv> yea, but then
L120[05:10:09] <ben_mkiv> case 1:
L121[05:10:31] <ben_mkiv> case 1: doSomething();
L122[05:10:41] <ben_mkiv> case1: case2: doMore(); break;
L123[05:10:51] <ghz|afk> nope java explicitly disallows fallthrough
L124[05:10:53] <ghz|afk> iirc
L125[05:11:19] <ghz|afk> or wait does it?
L126[05:11:21] <ghz|afk> I was thinking C#
L127[05:11:22] <NexuNuke> lmao
L128[05:11:34] <ghz|afk> I may have never tried to fall-through in a java switch
L129[05:11:40] <ghz|afk> since I'm used to not doing that even in C
L130[05:11:55] <ben_mkiv> "error: duplicate case label"
L131[05:12:01] <ghz|afk> nono
L132[05:12:04] <ghz|afk> fallthrough means
L133[05:12:09] <ghz|afk> switch(a) {
L134[05:12:13] <ghz|afk> case 1: doX();
L135[05:12:13] <NexuNuke> how come mcforge uses irc still anyway, i thought that discord was the new one
L136[05:12:17] <ghz|afk> case 2: doY(); break;
L137[05:12:17] <ghz|afk> }
L138[05:12:29] <ghz|afk> since case 1 does not have a break; statement
L139[05:12:30] <ben_mkiv> so it would run case2 without a break in case1?
L140[05:12:33] <ghz|afk> it continues running from case2
L141[05:12:49] <ben_mkiv> oh, let me try that in a small testprogram
L142[05:13:13] <ghz|afk> the compiler does accept it
L143[05:13:19] <ghz|afk> so yeah java does have case fall-through
L144[05:14:33] <ben_mkiv> sweet, thank you
L145[05:15:03] <ben_mkiv> even though, i think that duplicate labels are less confusing, but meh :>
L146[05:16:13] <ghz|afk> the reason case fall-through exists
L147[05:16:17] <ghz|afk> is that when it was designed
L148[05:16:26] <ghz|afk> the case labels were hidden jump targets
L149[05:16:39] <ghz|afk> in the primitive compilers
L150[05:16:51] <ghz|afk> so switch x ... case 2
L151[05:16:55] <ghz|afk> would translate into
L152[05:17:05] <ben_mkiv> ok
L153[05:17:07] <ghz|afk> "if x == 2, goto case2"
L154[05:17:18] <ben_mkiv> then i want some "goto case 2" :P
L155[05:17:26] <ben_mkiv> back to basics :>
L156[05:17:27] <ghz|afk> and break would translate into "goto end_of_switch"
L157[05:17:43] <ghz|afk> while the rest of the code statements, would be kept in the same order
L158[05:17:53] <ghz|afk> as if the switch() wasn't there at all
L159[05:18:15] <ghz|afk> I don't know if java has a "fallthrough;" keyword
L160[05:18:17] <ghz|afk> if not
L161[05:18:25] <ghz|afk> a common thing to do is to specify explicitly with a comment
L162[05:18:27] <ghz|afk> case 1:
L163[05:18:29] <ghz|afk> doX();
L164[05:18:33] <ghz|afk> //fallthrough;
L165[05:18:37] <ghz|afk> case 2: ...
L166[05:19:00] <ben_mkiv> well, i'll go for some other solution anyways
L167[05:19:14] <NexuNuke> Oh i fixed it. Weird. Just reinstalled forge to another location
L168[05:19:15] <ghz|afk> in C, some people even define "fallthrough" to be a macro that resolves to doing nothing
L169[05:19:18] <ben_mkiv> thats a pitfall when reading the code later xD
L170[05:19:58] ⇨ Joins: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se)
L171[05:26:18] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 204 seconds)
L172[05:28:34] ⇦ Quits: NexuNuke (~NexuNuke@66.240.113.87.dyn.plus.net) (Quit: Leaving)
L173[05:29:51] ⇨ Joins: Nedelosk (~Nedelosk@ip-109-90-74-164.hsi11.unitymediagroup.de)
L174[05:35:05] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L175[05:39:39] ⇨ Joins: Cast0077 (~Cast0077@24-151-30-78.dhcp.nwtn.ct.charter.com)
L176[05:53:11] ⇦ Quits: Dimmerworld (~quassel@90.252.3.123.sta.dodo.net.au) (Remote host closed the connection)
L177[06:01:37] ⇨ Joins: Dimmerworld (~quassel@90.252.3.123.sta.dodo.net.au)
L178[06:16:48] ⇦ Quits: Chais (~Chais@62.178.210.212) (Ping timeout: 198 seconds)
L179[06:18:12] ⇨ Joins: Chais (~Chais@62.178.210.212)
L180[06:48:27] ⇦ Quits: Lunatrius (~Lunatrius@77.38.21.155) (Ping timeout: 198 seconds)
L181[06:51:15] ⇦ Quits: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se) (Ping timeout: 186 seconds)
L182[06:51:43] ⇨ Joins: NexuNuke (~NexuNuke@66.240.113.87.dyn.plus.net)
L183[06:51:56] <NexuNuke> Yo, i need some help again xd
L184[06:54:07] ⇨ Joins: Lunatrius (~Lunatrius@77.38.21.155)
L185[06:57:05] <NexuNuke> I have no idea what i've done wrong, after i added my proxy classes, my reference classes and my config handler i keep getting this error when i try to run mc https://pastebin.com/6iNcA9Kx
L186[06:58:57] <ghz|afk> that is incomplete
L187[06:59:02] <ghz|afk> you didn't even show what the actual exception is
L188[06:59:08] <ghz|afk> try to paste a more complete log
L189[07:00:28] <NexuNuke> pasted the wrong link
L190[07:00:44] <NexuNuke> https://pastebin.com/GsrEjMz9
L191[07:06:41] ⇨ Joins: KklyAq (~Umbraco@121-87-149-172f1.hyg2.eonet.ne.jp)
L192[07:10:49] ⇦ Quits: IdleGandalf (~IdleGanda@staff.harting.hosting) (Quit: Leaving)
L193[07:11:06] ⇨ Joins: IdleGandalf (~IdleGanda@staff.harting.hosting)
L194[07:14:10] <NexuNuke> Anyone?
L195[07:17:53] <barteks2x> I didn't follow it before, what is the code?
L196[07:18:10] <NexuNuke> as in the error or my code?
L197[07:18:15] <barteks2x> your code
L198[07:18:23] <barteks2x> I can't see what causes the error without the code
L199[07:18:25] <NexuNuke> in all of my classes?
L200[07:18:35] <NexuNuke> or just the main and the config handler
L201[07:18:43] <barteks2x> at least ConfigurationHandler wouldbe useful because it's in the stacktrace
L202[07:19:54] <NexuNuke> here, i put the config handler and the main class in one paste
L203[07:19:54] <NexuNuke> https://pastebin.com/ZUYDGLEQ
L204[07:21:35] <barteks2x> first at least add the logging to the catch{} part, it's likely it also throws some exception that you don't see
L205[07:22:10] <NexuNuke> the logging is the configuration.save right?
L206[07:22:37] <barteks2x> you have "//Log the configuration file" but no code to log it
L207[07:22:53] <NexuNuke> oh, yea im following pahimars reboot and theres nothing there unless i missed something
L208[07:23:34] <barteks2x> add at least e.printStackTrace(). I also think it's actually the issue that you are using the no-argument constructor of Configuration, where you should give it the configFile
L209[07:24:27] <NexuNuke> oh... which one should i use?
L210[07:25:22] <barteks2x> just give the configFile to the Configuration constructor
L211[07:25:48] <NexuNuke> how would i go about doing that? im super new to this lol
L212[07:25:58] <barteks2x> do you even know java?
L213[07:26:26] <NexuNuke> not extremely well
L214[07:27:15] <barteks2x> I don't think you will get very far without that. Anyway, you would just do this: Configuration configuration = new Configuration(configFile);
L215[07:28:07] <NexuNuke> thats what i thought you meant, but i just wanted to clarify. ive done other languages that are similar
L216[07:28:34] <barteks2x> like what? C? C++?
L217[07:28:59] <NexuNuke> C++ to an extent, a bit of javascript too
L218[07:29:06] <NexuNuke> that fixed it, thanks a lot
L219[07:33:14] ⇦ Quits: Dimmerworld (~quassel@90.252.3.123.sta.dodo.net.au) (Ping timeout: 183 seconds)
L220[07:40:29] ⇦ Quits: npe|office (~NPExcepti@bps-gw.hrz.tu-chemnitz.de) (Remote host closed the connection)
L221[08:14:51] ⇨ Joins: millerti (~millerti@cpe-66-24-91-119.stny.res.rr.com)
L222[08:17:44] ⇨ Joins: Subaraki (~Subaraki@239.ip-158-69-59.net)
L223[08:17:54] ⇨ Joins: Raqbit (~Raqbit@239.ip-158-69-59.net)
L224[08:24:09] ⇨ Joins: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L225[08:31:46] ⇨ Joins: Javaschreiber (~Thunderbi@88-209-32-73.nga.highspeed-baumann.de)
L226[08:37:04] <ben_mkiv> uhm, how would i figure out which entity a player is looking at? :>
L227[08:37:27] <ben_mkiv> clientside im using RayTraceResult Minecraft.getMinecraft().objectMouseOver;
L228[08:38:54] <barteks2x> I doubt you can actually do that serverside accurately
L229[08:39:20] <ben_mkiv> yea, me too xD
L230[08:40:04] <Dark> you can get close enough
L231[08:40:36] ⇦ Quits: ben_mkiv (~ben_mkiv@p4FED5EB4.dip0.t-ipconnect.de) (Remote host closed the connection)
L232[08:40:45] <Dark> feel free to dig through my code https://github.com/BuiltBrokenModding/Armory/blob/master/src/main/java/com/builtbroken/armory/data/ranged/GunInstance.java
L233[08:43:05] ⇨ Joins: ben_mkiv (~ben_mkiv@p4FED5EB4.dip0.t-ipconnect.de)
L234[08:43:16] <ben_mkiv> re
L235[08:48:22] <Ivorius> Wow
L236[08:48:28] <Ivorius> Haven't read that word in like 3 years
L237[09:00:30] <Raqbit> re
L238[09:00:43] <Raqbit> Now you've read it twice in one hour!
L239[09:01:11] ⇨ Joins: MonkeyTyrant (~MonkeyTyr@142.68.236.66)
L240[09:01:12] ⇦ Quits: MonkeyTyrant (~MonkeyTyr@142.68.236.66) (Remote host closed the connection)
L241[09:04:21] ⇦ Quits: millerti (~millerti@cpe-66-24-91-119.stny.res.rr.com) (Ping timeout: 204 seconds)
L242[09:05:15] ⇨ Joins: malte0811 (~malte@185.134.128.197)
L243[09:11:49] ⇦ Parts: ben_mkiv (~ben_mkiv@p4FED5EB4.dip0.t-ipconnect.de) (leave))
L244[09:11:57] ⇨ Joins: ben_mkiv (~ben_mkiv@p4FED5EB4.dip0.t-ipconnect.de)
L245[09:12:21] * ben_mkiv wonders if theres a mod that generates a ingame manual out of md.files :>
L246[09:12:39] <malte0811> I think OC does that
L247[09:13:46] <ghz|afk> my Guidebook mod isn't markdown, but I'm trying to make it html-ish ;P
L248[09:13:59] <ben_mkiv> malte0811, yea it does. but its scala x(
L249[09:14:16] <ben_mkiv> but markdown would be awesome, just export/import from github wiki xD
L250[09:15:40] <ghz|afk> I should have spare brainpower starting december so I plan on improving that mod ;P
L251[09:15:59] <barteks2x> it sucks that you can't give more memory to java while it's running...
L252[09:17:15] <ghz|afk> yeah, the default -Xmx should be "whatever can fit on the system
L253[09:17:22] <ghz|afk> and make it an opt-in quota
L254[09:17:31] <ghz|afk> like .NET does
L255[09:17:37] <ben_mkiv> actually, OC even has a API for that ingame manual :>
L256[09:17:50] <barteks2x> that would also be awful, because almost every OS will let java allocate as much as it requests
L257[09:17:55] <barteks2x> until it runs out of addresses
L258[09:18:44] ⇨ Joins: SubThread (~SubThread@185-157-160-61.pool.ovpn.com)
L259[09:18:47] <barteks2x> unless java actually limited itself only to what it actually needs instead of using whatever it wants
L260[09:19:02] <barteks2x> then I could let MC run with 4GB on my 4GB system and be fine with it
L261[09:19:13] <ybden> You know that java doesn't actually allocate all of the -Xmx on startup, right?
L262[09:19:35] <barteks2x> it doesn't but it tends to quickly eat everything you give it
L263[09:20:23] <ybden> Fair
L264[09:24:57] ⇨ Joins: Searge|Office (~Searge@h-85-24-130-18.NA.cust.bahnhof.se)
L265[09:25:35] <barteks2x> for(int h = 62; h > 0; ++h) {... guess what causes this code to be slow?
L266[09:25:40] ⇨ Joins: Searge|Work (~Searge@h-85-24-130-18.NA.cust.bahnhof.se)
L267[09:25:52] <barteks2x> (this code is in other mod)
L268[09:26:40] ⇦ Quits: Searge|Mojang (~Searge@h-85-24-130-18.NA.cust.bahnhof.se) (Ping timeout: 198 seconds)
L269[09:27:10] <ben_mkiv> its true until buffer overrun?!
L270[09:27:20] <barteks2x> *integer overflow
L271[09:27:40] <barteks2x> it iterates over 2 billion blocks...
L272[09:27:42] ⇨ Joins: Searge|Mojang (~Searge@h-85-24-130-18.NA.cust.bahnhof.se)
L273[09:28:33] <ben_mkiv> is that mekanism? :P
L274[09:28:48] <barteks2x> nope
L275[09:29:36] <barteks2x> Open Terrain Generator probably accidentally does that on the first tick
L276[09:31:05] <barteks2x> and it does that over 200 times
L277[09:31:43] ⇦ Quits: Searge|Office (~Searge@h-85-24-130-18.NA.cust.bahnhof.se) (Ping timeout: 383 seconds)
L278[09:33:09] ⇦ Quits: Searge|Work (~Searge@h-85-24-130-18.NA.cust.bahnhof.se) (Ping timeout: 383 seconds)
L279[09:44:31] ⇨ Joins: h404bi (~h404bi@119.129.131.110)
L280[10:04:48] ⇨ Joins: Brokkoli (~Brokkoli@p5B23CF92.dip0.t-ipconnect.de)
L281[10:06:56] <barteks2x> is there any way to make Minecraft render all the chunks in visible area othe rthan waiting and waiting and waiting?
L282[10:18:08] ⇦ Quits: NexuNuke (~NexuNuke@66.240.113.87.dyn.plus.net) (Quit: Leaving)
L283[10:29:34] ⇦ Quits: Dimtree (~dimtree@75-110-143-121.nbrncmtk01.res.dyn.suddenlink.net) (Ping timeout: 183 seconds)
L284[10:43:45] ⇨ Joins: Hgrebnednav (~Hgrebnedn@d8d872a6e.access.telenet.be)
L285[10:57:23] ⇦ Quits: ben_mkiv (~ben_mkiv@p4FED5EB4.dip0.t-ipconnect.de) (Remote host closed the connection)
L286[11:01:54] ⇨ Joins: Neal (~Neal@47.146.41.184)
L287[11:14:10] ⇦ Quits: Nedelosk (~Nedelosk@ip-109-90-74-164.hsi11.unitymediagroup.de) (Read error: Connection reset by peer)
L288[11:20:03] ⇨ Joins: Noppes (~Noppes@ip56530f2e.direct-adsl.nl)
L289[11:41:00] *** PaleOff is now known as PaleoCrafter
L290[11:45:16] ⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L291[11:45:21] ⇨ Joins: McJty (~jorrit@ptr-9197ufoqgv9a37ltkd1.18120a2.ip6.access.telenet.be)
L292[11:54:36] ⇨ Joins: CoderPuppy (~cpup@32.218.118.182)
L293[11:59:51] ⇦ Quits: cpup (~cpup@32.218.115.122) (Ping timeout: 383 seconds)
L294[12:10:46] ⇨ Joins: cpup (~cpup@32.218.118.196)
L295[12:13:25] ⇦ Quits: CoderPuppy (~cpup@32.218.118.182) (Ping timeout: 204 seconds)
L296[12:27:48] *** PaleoCrafter is now known as PaleOff
L297[12:45:45] ⇦ Quits: h404bi (~h404bi@119.129.131.110) (Ping timeout: 186 seconds)
L298[13:04:25] *** Santa|afk is now known as SatanicSanta
L299[13:10:16] ⇨ Joins: CoderPuppy (~cpup@32.218.119.15)
L300[13:11:35] ⇦ Quits: sham1 (jjsine@linux.utu.fi) (Ping timeout: 190 seconds)
L301[13:11:56] ⇦ Quits: mumfrey (~Mumfrey@dedi5.eq2.co.uk) (Ping timeout: 190 seconds)
L302[13:12:02] ⇦ Quits: cpup (~cpup@32.218.118.196) (Ping timeout: 183 seconds)
L303[13:12:21] ⇨ Joins: mumfrey (~Mumfrey@dedi5.eq2.co.uk)
L304[13:15:41] ⇦ Quits: manmaed[away] (~Ender@stargate.manmaed.exofire.net) (Ping timeout: 190 seconds)
L305[13:22:21] ⇦ Quits: McJty (~jorrit@ptr-9197ufoqgv9a37ltkd1.18120a2.ip6.access.telenet.be) (Quit: Leaving)
L306[13:30:14] ⇦ Parts: malte0811 (~malte@185.134.128.197) ())
L307[13:38:17] ⇦ Quits: CoderPuppy (~cpup@32.218.119.15) (Ping timeout: 186 seconds)
L308[13:44:42] ⇨ Joins: cpup (~cpup@32.218.119.57)
L309[13:45:09] ⇦ Quits: Javaschreiber (~Thunderbi@88-209-32-73.nga.highspeed-baumann.de) (Quit: Javaschreiber)
L310[13:46:40] ⇦ Parts: Cast0077 (~Cast0077@24-151-30-78.dhcp.nwtn.ct.charter.com) ())
L311[13:53:38] *** Abrar|gone is now known as AbrarSyed
L312[13:56:19] ⇨ Joins: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se)
L313[13:58:12] ⇨ Joins: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L314[13:58:44] ⇨ Joins: arehman (~arehman@39.50.131.69)
L315[14:00:38] <arehman> hi guys i need some help in one of my plugin that i am trying to do. the thing is i wanted to get spawn rates of EntityPixelmon but can't find it yet. anyone has any idea how to get it?
L316[14:11:08] ⇦ Quits: immibis (~chatzilla@122-59-207-30.jetstream.xtra.co.nz) (Ping timeout: 383 seconds)
L317[14:12:07] *** AbrarSyed is now known as Abrar|gone
L318[14:13:27] ⇨ Joins: MiningMark48 (~MiningMar@h187.58.187.173.dynamic.ip.windstream.net)
L319[14:19:34] ⇨ Joins: CoderPuppy (~cpup@32.218.119.106)
L320[14:22:36] ⇨ Joins: Cast0077 (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com)
L321[14:24:07] ⇦ Quits: cpup (~cpup@32.218.119.57) (Ping timeout: 383 seconds)
L322[14:24:24] ⇨ Joins: Nedelosk (~Nedelosk@ip-109-90-74-164.hsi11.unitymediagroup.de)
L323[14:30:21] <tterrag> hm...how could I apply a transformation to an already baked model?
L324[14:30:31] <tterrag> I need to display a scaled-down version of another model
L325[14:34:08] <ghz|afk> if it's already baked, you'd have to get the bytes that represent the position
L326[14:34:22] <ghz|afk> turn them into floats, apply the transform matrix to the xyz vector
L327[14:34:28] <ghz|afk> then encode them back into the int[]
L328[14:34:56] <ghz|afk> (this is how the LightUtil applies color multipliers to quads)
L329[14:35:05] <ghz|afk> (xcept with color values instead of position vector)
L330[14:43:03] ⇦ Quits: Cast0077 (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com) (Quit: Poof)
L331[14:46:20] ⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Read error: Connection reset by peer)
L332[14:50:46] ⇨ Joins: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L333[14:53:47] ⇨ Joins: Dimtree (~dimtree@75.110.143.121)
L334[14:55:22] <tterrag> ghz|afk: I think I'm gonna hack around it by getting the IModel instead
L335[14:56:59] ⇦ Quits: Dimtree (~dimtree@75.110.143.121) (Client Quit)
L336[15:00:01] ⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 186 seconds)
L337[15:02:45] ⇨ Joins: Dimtree (~dimtree@75-110-143-121.nbrncmtk01.res.dyn.suddenlink.net)
L338[15:11:32] ⇨ Joins: cpup (~cpup@32.218.119.211)
L339[15:14:08] ⇦ Quits: CoderPuppy (~cpup@32.218.119.106) (Ping timeout: 198 seconds)
L340[15:16:32] ⇦ Quits: Hunterz (~hunterz@62.182.234.189) (Quit: Leaving.)
L341[15:16:52] ⇨ Joins: PitchBright (~PitchBrig@CPE00fc8d8a3ce3-CM00fc8d8a3ce0.cpe.net.cable.rogers.com)
L342[15:23:14] ⇦ Quits: Hgrebnednav (~Hgrebnedn@d8d872a6e.access.telenet.be) (Ping timeout: 200 seconds)
L343[15:26:10] ⇦ Quits: mikeprimm (~mikeprimm@2a01:7e00::f03c:91ff:fe70:44b7) (Quit: ZNC - http://znc.in)
L344[15:38:20] ⇨ Joins: Lunatrius` (~Lunatrius@77.38.21.155)
L345[15:38:56] ⇦ Quits: arehman (~arehman@39.50.131.69) (Ping timeout: 200 seconds)
L346[15:41:00] ⇦ Quits: Lunatrius (~Lunatrius@77.38.21.155) (Ping timeout: 198 seconds)
L347[15:41:00] *** Lunatrius` is now known as Lunatrius
L348[15:41:11] ⇦ Quits: SubThread (~SubThread@185-157-160-61.pool.ovpn.com) (Quit: I'm busy)
L349[15:49:25] ⇨ Joins: bms_ (~bms_@cpe-76-188-199-137.neo.res.rr.com)
L350[15:50:09] ⇦ Quits: bms_ (~bms_@cpe-76-188-199-137.neo.res.rr.com) (Client Quit)
L351[15:54:43] ⇨ Joins: killjoy (~killjoy@2606:a000:1118:8030:d12c:45cd:5a06:e79f)
L352[15:54:53] ⇦ Quits: An_Angry_Brit (~AngryBrit@90.252.223.201) (Quit: ZNC - http://znc.in)
L353[15:56:46] ⇨ Joins: CoderPuppy (~cpup@32.218.112.36)
L354[15:58:36] ⇦ Quits: cpup (~cpup@32.218.119.211) (Ping timeout: 183 seconds)
L355[16:12:55] ⇦ Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Read error: Connection reset by peer)
L356[16:27:40] ⇨ Joins: mikeprimm (~mikeprimm@2a01:7e00::f03c:91ff:fe70:44b7)
L357[16:32:51] ⇨ Joins: cpup (~cpup@32.218.112.70)
L358[16:38:18] ⇦ Quits: CoderPuppy (~cpup@32.218.112.36) (Ping timeout: 383 seconds)
L359[16:50:10] ⇦ Quits: heldplayer (heldplayer@mrwhite.specialattack.net) (Ping timeout: 190 seconds)
L360[16:50:46] ⇨ Joins: heldplayer (heldplayer@mrwhite.specialattack.net)
L361[16:51:50] ⇦ Quits: IoP (jikuja@irc.ioppi.info) (*.net *.split)
L362[16:52:55] ⇨ Joins: IoP (jikuja@irc.ioppi.info)
L363[16:53:09] ⇦ Quits: IoP (jikuja@irc.ioppi.info) (Ping timeout: 190 seconds)
L364[16:53:17] ⇨ Joins: IoP (jikuja@irc.ioppi.info)
L365[16:55:25] ⇨ Joins: bms_ (~bms_@cpe-76-188-199-137.neo.res.rr.com)
L366[16:55:59] ⇦ Parts: bms_ (~bms_@cpe-76-188-199-137.neo.res.rr.com) ())
L367[17:05:24] ⇨ Joins: c64cosmin (kiwiirc@86.125.236.221)
L368[17:21:54] ⇦ Quits: TomyLobo (~TomyLobo@2a02:8109:87c0:20c:acea:836d:606b:826e) (Ping timeout: 198 seconds)
L369[17:23:32] *** diesieben07 is now known as diesieben|away
L370[17:37:08] ⇦ Quits: cpup (~cpup@32.218.112.70) (Ping timeout: 200 seconds)
L371[17:42:41] ⇨ Joins: cpup (~cpup@32.218.112.187)
L372[17:44:37] ⇨ Joins: TomyLobo (~TomyLobo@2a02:8109:87c0:20c:18ec:e4c8:ebc4:36c0)
L373[17:52:28] ⇦ Quits: cpup (~cpup@32.218.112.187) (Ping timeout: 200 seconds)
L374[17:56:51] ⇨ Joins: cpup (~cpup@32.218.112.221)
L375[18:03:12] ⇦ Quits: killjoy (~killjoy@2606:a000:1118:8030:d12c:45cd:5a06:e79f) (Read error: Connection reset by peer)
L376[18:12:56] *** SatanicSanta is now known as Santa|afk
L377[19:33:05] ⇦ Quits: c64cosmin (kiwiirc@86.125.236.221) (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
L378[19:33:13] ⇦ Quits: mezz (~mezz@24.6.28.151) (Read error: Connection reset by peer)
L379[19:34:55] ⇦ Quits: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se) (Ping timeout: 186 seconds)
L380[19:36:32] ⇨ Joins: mezz (~mezz@24.6.28.151)
L381[19:36:32] MineBot sets mode: +v on mezz
L382[19:50:53] ⇦ Quits: Nedelosk (~Nedelosk@ip-109-90-74-164.hsi11.unitymediagroup.de) (Read error: Connection reset by peer)
L383[20:00:17] ⇦ Quits: Searge (~Searge@c83-250-150-134.bredband.comhem.se) (Read error: -0x1: UNKNOWN ERROR CODE (0001))
L384[20:20:20] ⇨ Joins: sinkillerj (~sinkiller@nc-67-238-187-157.dhcp.embarqhsd.net)
L385[20:22:09] ⇦ Quits: Neal (~Neal@47.146.41.184) (Ping timeout: 186 seconds)
L386[20:23:53] ⇦ Quits: sinkillerj (~sinkiller@nc-67-238-187-157.dhcp.embarqhsd.net) (Ping timeout: 183 seconds)
L387[20:26:51] ⇦ Quits: Chais (~Chais@62.178.210.212) (Read error: Connection reset by peer)
L388[20:29:57] ⇨ Joins: Chais (~Chais@62.178.210.212)
L389[20:38:44] ⇨ Joins: sinkillerj (~sinkiller@nc-67-238-187-157.dhcp.embarqhsd.net)
L390[20:48:48] ⇨ Joins: Wastl2_ (~Wastl2@x4e341760.dyn.telefonica.de)
L391[20:49:21] ⇦ Quits: Wastl2 (~Wastl2@x4e34c242.dyn.telefonica.de) (Ping timeout: 383 seconds)
L392[20:51:47] ⇦ Quits: airbreather (~airbreath@d149-67-99-43.nap.wideopenwest.com) (Read error: -0x1: UNKNOWN ERROR CODE (0001))
L393[21:01:18] ⇦ Quits: Lain|log (~Aphrael@baka.khobbits.co.uk) (Remote host closed the connection)
L394[21:01:18] ⇦ Quits: Hobbits|away (~khm@2600:3c03::21:1001) (Remote host closed the connection)
L395[21:11:08] ⇨ Joins: Ununoctium118 (~Ununoctiu@c-73-109-4-24.hsd1.wa.comcast.net)
L396[21:11:25] <Ununoctium118> Is this an appropriate place to ask about using the forge api?
L397[21:12:20] <Ununoctium118> I'd like to store some transient data on the player entities. It only needs to be stored on the server, and never needs to be persisted to disk or anywhere else. I think Capabilities are a bit overkill for that.
L398[21:14:08] ⇨ Joins: Lain|log (~Aphrael@baka.khobbits.co.uk)
L399[21:15:09] <masa> butthey are exactly for that type of thing though
L400[21:18:59] <Ununoctium118> Ok, great, I'll use them then.
L401[21:19:26] <Ununoctium118> Are there javadocs hosted anywhere? That would be incredibly useful and I haven't been able to find any.
L402[21:20:20] <masa> not sure, I don't think there are official/up-to-date ones anyway
L403[21:24:20] <Ununoctium118> Oh, I just saw there's a gradle task to generate them locally
L404[21:25:48] <Ununoctium118> RIP, that just does it for your mod, not for its dependencies (ie forge)
L405[21:27:31] <Ununoctium118> Well, I guess I have another question then: is there a way to get the actual tick rate of the server (other than assuming it's 20 tps)?
L406[21:27:57] ⇦ Quits: Kaelten (~Kaelten@2600:3c00::f03c:91ff:fedb:9160) (Ping timeout: 186 seconds)
L407[21:28:29] ⇦ Quits: BBSplat (bbsplat@tab.completion.provided.by.rcfreak0.com) (Ping timeout: 186 seconds)
L408[21:28:29] ⇦ Quits: Aedda (~aedda@2600:3c00::19:cace) (Ping timeout: 186 seconds)
L409[21:30:09] <masa> check how the /forge tps command works?
L410[21:30:26] <Ununoctium118> Ah great, thanks
L411[21:30:37] <masa> probably just ServerTickHandler for pre and post and checking the time it took or something like that?
L412[21:30:50] <masa> eh, ServerTickEvent I mean
L413[21:32:09] ⇨ Joins: Aedda (~aedda@2600:3c00::19:cace)
L414[21:34:43] ⇨ Joins: Kaelten (~Kaelten@2600:3c00::f03c:91ff:fedb:9160)
L415[21:48:13] ⇨ Joins: McJty (~jorrit@ptr-9197ufnmvqm1yixgu43.18120a2.ip6.access.telenet.be)
L416[22:03:54] <Ununoctium118> Is item metadata automatically synchronized by the minecraft engine, or should I send packets when I update it?
L417[22:04:11] <Ordinastie> ItemStack are automatically synced
L418[22:04:49] <Ununoctium118> Do you know if the sync packet get sent before or after TickEvent.ServerTickEvent's are fired?
L419[22:05:22] <Ununoctium118> ie if I update the item's metadata during the handler for that event, will the update occur immediately, or 1/20th of a second later?
L420[22:07:18] <Ordinastie> I don't know, you should check the code
L421[22:10:04] <Ununoctium118> I guess it probably doesn't matter too much, 50ms is just below what most people will notice in terms of delay
L422[22:10:37] ⇦ Quits: sinkillerj (~sinkiller@nc-67-238-187-157.dhcp.embarqhsd.net) (Quit: またね)
L423[22:13:03] ⇦ Quits: Lathanael|Away (~Lathanael@p5496047F.dip0.t-ipconnect.de) (Ping timeout: 186 seconds)
L424[22:19:54] ⇨ Joins: Lathanael|Away (~Lathanael@p549603A0.dip0.t-ipconnect.de)
L425[22:25:55] ⇨ Joins: TriTUSK (~3TUSK@169.235.233.107)
L426[22:28:03] ⇨ Joins: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au)
L427[22:28:03] ⇦ Quits: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au) (Client Quit)
L428[22:28:58] ⇨ Joins: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au)
L429[22:31:37] ⇦ Quits: MiningMark48 (~MiningMar@h187.58.187.173.dynamic.ip.windstream.net) (Quit: Leaving)
L430[22:34:55] ⇦ Quits: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au) (Quit: Leaving)
L431[22:35:15] ⇨ Joins: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au)
L432[22:41:31] ⇦ Quits: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au) (Quit: Leaving)
L433[22:42:03] ⇨ Joins: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au)
L434[22:54:47] <ghz|afk> [05:24] (Ununoctium118): I guess it probably doesn't matter too much, 50ms is just below what most people will notice in terms of delay
L435[22:54:51] <ghz|afk> you assume there's no network delay ;P
L436[22:55:25] <ghz|afk> chances are, the lag between the server and client is going to be bigger on average than the delay from processing it 1 tick later
L437[22:55:42] <Ununoctium118> Actually as I keep working, turns out in order to properly handle user input, I only need to read there.
L438[22:55:49] <Ununoctium118> *in the ServerTickEvent handler
L439[22:56:05] <ghz|afk> hm? user input would happen on the client, no?
L440[22:58:31] <Ununoctium118> Yeah, but in this case all the input does is send a packet to the server
L441[22:58:50] <Ununoctium118> And the server has to make it seem "instant" to the client that their action happened
L442[22:59:24] <Ununoctium118> Which is why I'd like to keep the time between "user does thing" and "user sees result" as close to one RTT as possible
L443[23:00:25] <Ununoctium118> In what init step do you register capabilities? And do you attach them in the common proxy or the server-only proxy?
L444[23:00:49] ⇦ Quits: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net) (Ping timeout: 186 seconds)
L445[23:04:36] <ghz|afk> ah
L446[23:04:40] <ghz|afk> if you want to pretend there's no lag
L447[23:04:45] <ghz|afk> predict the result on the client
L448[23:04:56] <ghz|afk> then correct mis-predictions when the reply from the server comes back
L449[23:05:57] <Ununoctium118> Yeah, that's my plan... one issue then becomes I have to sync config between server and client as well
L450[23:06:00] <ghz|afk> as for capabilities
L451[23:06:05] <ghz|afk> preinit is where I register them
L452[23:06:07] <Ununoctium118> So the client can predict accurately
L453[23:06:38] <ghz|afk> heh if that is a concern (you could just assume the client gets the same config)
L454[23:06:50] <ghz|afk> you can just send a custom packet from the user login event
L455[23:07:09] <Ununoctium118> Yeah, probably will just send a giant "THIS IS ALL THE CONFIGURATION" packet haha
L456[23:07:26] <ghz|afk> is the config THAT big?
L457[23:08:25] ⇦ Quits: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au) (Quit: Leaving)
L458[23:08:43] ⇨ Joins: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au)
L459[23:08:44] <Ununoctium118> Uh... what's the limit on a packet size?
L460[23:09:55] <Ununoctium118> It's just a bunch of doubles now, so it should be 19 entries * 3 doubles per entry * 8 bytes per double is still less than half a KiB
L461[23:10:26] <ghz|afk> something like 1mb per packet, but forge splits them up if bigger
L462[23:10:51] <ghz|afk> up to like 256mb
L463[23:10:52] <McJty> On recent versions of forge
L464[23:11:00] <McJty> There was a bug with that which was fixed recently
L465[23:11:10] <ghz|afk> right
L466[23:12:52] <Ununoctium118> Another noob question, sorry: how do I attach a new capability to Players? AttachCapabilitiesEvent::addCapability needs an ICapabilityProvider, which would normally be... an instance of EntityPlayer?
L467[23:14:37] <ghz|afk> nono
L468[23:14:48] <ghz|afk> what you attach are custom ICapabilityProviders
L469[23:14:56] <ghz|afk> that implement their own getCapability/hasCapability
L470[23:15:06] <ghz|afk> if you want to store data within the object
L471[23:15:19] <ghz|afk> then you can use ICapabilitySerializable<nbttype>
L472[23:15:28] ⇦ Quits: McJty (~jorrit@ptr-9197ufnmvqm1yixgu43.18120a2.ip6.access.telenet.be) (Quit: Leaving)
L473[23:15:33] <ghz|afk> which is ICapabilityProvider + INBTSerializable<nbttype>
L474[23:17:02] <ghz|afk> see: https://github.com/gigaherz/ElementsOfPower/blob/master/src/main/java/gigaherz/elementsofpower/spells/SpellcastEntityData.java#L211
L475[23:20:53] ⇦ Quits: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au) (Quit: Leaving)
L476[23:21:01] ⇨ Joins: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au)
L477[23:23:51] <Ununoctium118> That's a useful example, thanks for sharing your work
L478[23:24:23] <Ununoctium118> Is there a reason behind setting the data's EntityPlayer in a static initializer vs in the constructor?
L479[23:24:53] <ghz|afk> that's actually an anonymous constructor
L480[23:25:52] <ghz|afk> but yeah, in my pc, that has changed
L481[23:26:00] <ghz|afk> it's now: final SpellcastEntityData cap = new SpellcastEntityData(entity);
L482[23:26:12] <ghz|afk> I just haven't commited those changes yet
L483[23:26:15] <Ordinastie> you know, at this point you might as well make a static class
L484[23:26:34] <Ununoctium118> Oh geez it's been too long since I wrote Java, I forgot anonymous classes could even have members
L485[23:26:39] <Ununoctium118> Let alone constructors
L486[23:29:11] <Ununoctium118> So you just give a no-op IStorage to capability registration, and handle it all by providing an ICapabilitySerializable to the attacher thing?
L487[23:29:20] <Ununoctium118> *attach event
L488[23:29:28] <ghz|afk> well that code is quite old
L489[23:29:42] <ghz|afk> my tastes have changed a bit since capabilities were introduced
L490[23:29:46] <ghz|afk> originally
L491[23:29:56] <ghz|afk> that code was a straight port of an IExtendedEntityProperties
L492[23:30:06] <ghz|afk> so I tried very hard to make it FEEL like the old IEEE
L493[23:30:09] <ghz|afk> IEEP*
L494[23:30:33] <ghz|afk> but since then, I have been refining my use of capabilities in other mods and such
L495[23:30:44] <ghz|afk> that said, IStorage is a weird case
L496[23:30:51] <ghz|afk> the "official" way to handle it
L497[23:31:01] <ghz|afk> is that a capability should provide "default instances"
L498[23:31:15] <ghz|afk> that is, instances of the capability interface, that can be used as a reference/base implementation
L499[23:31:35] <ghz|afk> and in order to be able to save/load those default instances, which may be opaque types
L500[23:31:39] <ghz|afk> you would use
L501[23:31:44] <ghz|afk> CAP.writeNBT and CAP.readNBT
L502[23:32:00] <ghz|afk> which are equivalent of CAP.getStorage().readNBT(CAP, ...)
L503[23:32:06] <ghz|afk> (they are wrappers)
L504[23:32:18] <ghz|afk> anyhow,
L505[23:32:27] <Ununoctium118> Ah, so that IStorage is just for the default impl if you have one?
L506[23:32:34] <ghz|afk> that's the thing
L507[23:32:41] <ghz|afk> officially, default instances are not an optional feature
L508[23:33:08] <ghz|afk> regardless of the fact that they are meaningless for capabilities used internally for adding data to entities
L509[23:33:10] <Ununoctium118> Well, if you have one that doesn't just no-op everything I suppose
L510[23:33:16] <ghz|afk> so
L511[23:33:25] <ghz|afk> if you choose NOT to provide default instances
L512[23:33:30] <ghz|afk> then IStorage is just... meaningless
L513[23:33:44] <ghz|afk> and you may as well bypass that system and just write/read directly from the provider
L514[23:33:58] <ghz|afk> it's just not how it's supposed to be done
L515[23:34:21] <Ununoctium118> Then what's the point of ICapabilitySerializable?
L516[23:34:44] <ghz|afk> well that's needed regardless
L517[23:34:51] ⇦ Quits: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au) (Read error: Connection reset by peer)
L518[23:34:55] <ghz|afk> since serializeNBT is called when the entity saves
L519[23:35:00] <ghz|afk> and deserializeNBT when the entity loads
L520[23:35:12] <ghz|afk> so regardless of if you will call there, CAP.readNBT(the provided tag)
L521[23:35:33] ⇨ Joins: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au)
L522[23:35:40] <ghz|afk> or you implement it directly in there
L523[23:35:52] <ghz|afk> you still need your provider to be serializable
L524[23:37:20] ⇦ Quits: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au) (Client Quit)
L525[23:37:27] <Ununoctium118> So I guess I'm still a bit confused about the overall structure of capabilities. There's an interface which defines the API for it, and at least one implementation. There's also a provider, which has a reference to the EntityPlayer or whatever
L526[23:37:37] ⇨ Joins: Dimmerworld (~Dimmerwo@105.81.3.123.sta.dodo.net.au)
L527[23:37:49] <Ununoctium118> So it can pass the reference to whatever implementation of that interface you want
L528[23:38:06] <ghz|afk> did you read http://mcforge.readthedocs.io/en/latest/datastorage/capabilities/ ?
L529[23:38:25] <Ununoctium118> Yeah
L530[23:38:52] <ghz|afk> well then
L531[23:38:58] <ghz|afk> capabilities have two sides, sortof
L532[23:38:59] <Ununoctium118> Oh, I guess what I was missing was that the provider would have a reference to whatever's got the capability
L533[23:39:04] <ghz|afk> one thing are the capabilities themselves
L534[23:39:11] <ghz|afk> the other are the things that contain capabilities
L535[23:39:14] <ghz|afk> that is, the providers
L536[23:39:25] <Ununoctium118> So the implementation of the capabilities can see that owner
L537[23:39:36] <ghz|afk> when you attach capabilities, you are given which object you are attaching to
L538[23:39:40] <ghz|afk> but you have to keep that somewhere
L539[23:39:45] <ghz|afk> if you need to reference the object later
L540[23:40:48] <Ununoctium118> Yeah, I'm so used to thinking in C++/Rust land that keeping that reference didn't seem kosher to me
L541[23:41:09] <Ununoctium118> Garbage Collectors are truly magical
L542[23:46:27] <Ununoctium118> Thanks for putting up with my dumb questions
L543[23:50:40] <ghz|afk> np, I woke up in the middle of the night with a fever and a very painful headache, and when the ibuprofen started to do it's thing, I had to get out of bed XD
L544[23:52:08] ⇨ Joins: Neal (~Neal@47.146.41.184)
L545[23:57:11] ⇨ Joins: Hunterz (~hunterz@2001:af0:8000:1c01:6af7:28ff:fe37:5d6a)
<<Prev Next>> Scroll to Top