<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:04:35] ⇨ Joins: KklyAq (~Umbraco@121-87-222-159f1.nar1.eonet.ne.jp)
L2[00:17:03] ⇨ Joins: McJty (~jorrit@ptr-9197ufqfhkhckujumid.18120a2.ip6.access.telenet.be)
L3[00:17:05] ⇨ Joins: moony (~moony@tx-76-4-60-39.dhcp.embarqhsd.net)
L4[00:39:02] ⇦ Quits: Doty1154 (~Doty1154@2601:648:8000:134f:4cab:6362:7f13:c248) (Quit: Leaving)
L5[01:07:12] ⇦ Quits: Unh0ly_Tigg (~Unh0ly_Ti@c-24-21-196-226.hsd1.or.comcast.net) (Quit: Leaving)
L6[01:22:27] ⇦ Quits: McJty (~jorrit@ptr-9197ufqfhkhckujumid.18120a2.ip6.access.telenet.be) (Quit: Leaving)
L7[01:29:28] ⇦ Quits: Neal (~Neal@47.146.41.184) (Ping timeout: 383 seconds)
L8[01:41:58] ⇦ Quits: Darkhax (~darkhax@d205-206-157-117.abhsia.telus.net) (Ping timeout: 186 seconds)
L9[01:50:23] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 200 seconds)
L10[01:50:59] ⇨ Joins: Darkhax (~darkhax@d205-206-157-117.abhsia.telus.net)
L11[02:00:03] <MCPBot_Reborn> [TEST CSV] Pushing snapshot_20171216 mappings to Forge Maven.
L12[02:00:07] <MCPBot_Reborn> [TEST CSV] Maven upload successful for mcp_snapshot-20171216-1.12.zip (mappings = "snapshot_20171216" in build.gradle).
L13[02:00:17] <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/
L14[02:02:20] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L15[02:49:22] ⇦ Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 198 seconds)
L16[03:02:46] ⇨ Joins: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L17[03:20:44] <ben_mkiv> repost... anyone got some resources about rendering a entity from a wavefront object? or is there any vanilla way to make a biped model out of a wavefront object?
L18[03:22:48] ⇨ Joins: Noppes (~Noppes@ip56530f2e.direct-adsl.nl)
L19[03:35:14] ⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L20[04:04:06] ⇨ Joins: MalkContent (~MalkConte@p4FDCC665.dip0.t-ipconnect.de)
L21[04:51:30] ⇦ Quits: immibis (~chatzilla@122-59-205-83.jetstream.xtra.co.nz) (Ping timeout: 383 seconds)
L22[04:53:18] <ghz|afk> ben_mkiv: you can literally draw anything you want as an entity renderer
L23[04:53:30] <ghz|afk> the question is how to load the model and how to make use of it
L24[04:53:35] <ghz|afk> for thatç
L25[04:53:45] <ghz|afk> forge has a model loading "plugin" system
L26[04:53:51] <ghz|afk> and includes .b3d and .obj
L27[04:54:00] <ghz|afk> alongside vanilla json
L28[04:54:14] <ghz|afk> so you can load any json model, and bake it
L29[04:54:46] <ghz|afk> however as for using a single json as a biped model, that would be a whole other story
L30[04:55:03] <ghz|afk> eh obj*
L31[04:55:09] <ghz|afk> if you have the body, head, legs and arms as separate obj files, thne yes, that's relatively easy
L32[04:55:56] <ghz|afk> if not, then you would need to pass group visibility information to the model and bake it multiple times with different visibility settings, and I have no idea how to do that
L33[05:19:46] <LexMobile> Json isn’t meant for animations
L34[05:20:03] ⇦ Quits: IoP (jikuja@kapsi.fi) (Ping timeout: 207 seconds)
L35[05:20:17] <LexMobile> Vanilla hasn’t gotten that far yet Forge has a. Hack system on top that works fairly good tho
L36[05:20:19] <ben_mkiv> so i guess the best way is seperate objects, load them with your modelhandle class, and assign them to a bipedmodel?
L37[05:20:26] <ben_mkiv> and then render that biped model
L38[05:21:33] <billy> with this json system, would it be feasible for a mod to load in entities the way bedrock edition does?
L39[05:23:38] ⇨ Joins: IoP (jikuja@kapsi.fi)
L40[05:30:42] <LexMobile> no
L41[05:30:57] <LexMobile> weeeeellllllll
L42[05:31:22] <LexMobile> Technically yes you can, but there isn't any built in system for management. You'd just be loading a model. You
L43[05:31:27] <LexMobile> 're on your own for what you do with it.
L44[05:33:19] <billy> hmm. i'm tempted. i really am. ^_^
L45[05:35:12] <billy> knowing my luck, as soon as I'm finished mojang will release theirs it in vanilla
L46[05:45:31] <ben_mkiv> :D
L47[05:46:11] <ben_mkiv> well i already got kinda some armature code with parent boning.... but not sure if i want to adapt it to playerlike entities -.-
L48[05:52:09] <ben_mkiv> does mojang use wavefront object at all for anything related to entities yet?
L49[06:10:14] ⇨ Joins: Nedelosk (~Nedelosk@ip-37-201-253-118.hsi13.unitymediagroup.de)
L50[06:12:27] ⇨ Joins: SuperTurk (kiwiirc@nsg93-h01-31-34-69-121.dsl.sta.abo.bbox.fr)
L51[06:24:16] <ghz|afk> back
L52[06:24:30] <ghz|afk> [12:20] (ben_mkiv): so i guess the best way is seperate objects, load them with your modelhandle class, and assign them to a bipedmodel?
L53[06:25:05] <ben_mkiv> i'm "listening"
L54[06:25:07] <ben_mkiv> :>
L55[06:25:08] <ghz|afk> well i don't know that it's so easy
L56[06:25:23] <ghz|afk> I mean "assign" probably implies writing some custom rendering class
L57[06:25:38] <ben_mkiv> well the fields for the bodyparts are public in ModelBiped
L58[06:25:50] <ghz|afk> yes but they aren't IBakedModel
L59[06:25:52] <ghz|afk> :P
L60[06:26:17] <ben_mkiv> oh, right
L61[06:26:38] <ghz|afk> the ModelBase stuff is designed for hardcoded java models
L62[06:26:51] <ghz|afk> technically it would be possible to deserialize a custom json format into ModelBase
L63[06:26:59] <ghz|afk> loading the quads, rotations, textures
L64[06:27:07] <ben_mkiv> json is based on wavefront, too?
L65[06:27:12] <ghz|afk> no
L66[06:27:15] <ghz|afk> not at all
L67[06:27:22] <ben_mkiv> well, i want wavefront
L68[06:27:37] <ghz|afk> yeah if it has to be wavefront and only wavefront
L69[06:27:46] <ben_mkiv> so i guess i'll use some of the rendercode from ModelBiped in a custom class
L70[06:27:56] <ghz|afk> then you'll have to write a custom class extending ModelRenderer
L71[06:28:07] <ghz|afk> and replace the biped parts with your custom instances
L72[06:28:21] <ben_mkiv> yea but that seems to hacked for me
L73[06:29:18] <ben_mkiv> guess i'll stick with a custom renderer
L74[06:29:26] <ben_mkiv> for the whole model
L75[06:29:33] <ghz|afk> well you'll need custom code regardless :P
L76[06:29:34] <ben_mkiv> instead of messing with ModelBiped
L77[06:29:38] <ghz|afk> youcan choose at which model you do it
L78[06:29:44] <ghz|afk> at which level*^
L79[06:31:03] ⇨ Joins: Zoss (~Zoss@173.208.95.77)
L80[06:37:41] <ben_mkiv> wonder how other mods did it, but most probably use java models
L81[06:47:10] *** Zoss is now known as Guest82114
L82[06:49:42] ⇦ Quits: Guest82114 (~Zoss@173.208.95.77) (Ping timeout: 186 seconds)
L83[06:52:02] ⇨ Joins: Zoss (~Zoss@ppp121-45-127-193.bras2.adl6.internode.on.net)
L84[06:59:32] ⇦ Quits: ssblur (~Thunderbi@cpe-65-184-138-23.ec.res.rr.com) (Quit: ssblur)
L85[07:07:43] ⇨ Joins: Koward (~Koward@2a02:2788:296:345:a518:a25e:b0f2:2d31)
L86[07:17:40] <Koward> I wonder why there are so few total conversions for Minecraft. The game is heavily moddable but very few mods actually scraps vanilla content to build something totally new.
L87[07:19:17] ⇨ Joins: nallar (~nallar@81.187.229.141)
L88[07:28:07] <Ordinastie> am I the only one to get crashes because the block at the position of TE doesn't match the expected one ?
L89[07:31:07] ⇨ Joins: Javaschreiber (~Thunderbi@88-209-32-73.nga.highspeed-baumann.de)
L90[07:33:20] <Ordinastie> !gm 73660
L91[07:33:52] <Ordinastie> during update() I might add, not rendering
L92[07:47:25] ⇦ Quits: johni0702 (johni0702@johni0702.de) (Ping timeout: 190 seconds)
L93[07:49:57] ⇨ Joins: johni0702 (johni0702@johni0702.de)
L94[07:51:24] <ghz|afk> Koward: it's not easy
L95[07:51:38] <ghz|afk> Ordinastie: no, it's a known thing, you have to handle it
L96[07:51:50] <Ordinastie> since when ?
L97[07:51:56] <ghz|afk> since like 1.8, at least
L98[07:52:07] <Ordinastie> I'm not talking in TESR
L99[07:52:32] <ghz|afk> yes, using getBlockState from a tickable TE's update
L100[07:52:35] <ghz|afk> when the block breaks
L101[07:52:39] <ghz|afk> there's one tick in which update can be called
L102[07:52:47] <ghz|afk> but getBlockState returns the new block / air
L103[07:53:03] <Ordinastie> well, that's bullshit :/
L104[07:53:38] <ghz|afk> I believe it's a side-effect of how forge handles TE destruction
L105[07:53:54] <ghz|afk> but I don't remember the details
L106[07:54:55] <Ordinastie> shouldn't the TE set as invalid as when the block breaks ?
L107[07:55:45] <ghz|afk> I haven't personally needed to call getBlockState from the update method
L108[07:56:07] <ghz|afk> (I don't recall any machine where the blockstate matters)
L109[07:56:08] <Ordinastie> for the doors, I need to know the direction
L110[07:56:24] <ghz|afk> yeah you may want to cache that actively
L111[07:56:35] <ghz|afk> when the state changes in the block, assign it to the TE
L112[07:57:26] <ghz|afk> or like
L113[07:57:33] <ghz|afk> in shouldRefresh
L114[07:57:47] <ghz|afk> if you return false, save the new state
L115[07:59:01] <Ordinastie> ah, I think I understand what happens
L116[07:59:21] <Ordinastie> invalidate() is only called if processingLoadedTiles is true
L117[07:59:29] <Ordinastie> which doesn't sound right
L118[07:59:54] <Ordinastie> although
L119[07:59:54] <Ordinastie> no
L120[08:00:12] <Ordinastie> if not processing they are directly removed from the maps
L121[08:00:36] <Ordinastie> yeah, I don't get it
L122[08:02:57] <ghz|afk> there's always the possibility that I completely brainfarted
L123[08:03:04] <ghz|afk> but I could swear :P
L124[08:03:38] ⇦ Quits: SuperTurk (kiwiirc@nsg93-h01-31-34-69-121.dsl.sta.abo.bbox.fr) (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
L125[08:04:38] ⇦ Quits: Zoss (~Zoss@ppp121-45-127-193.bras2.adl6.internode.on.net) (Quit: Leaving)
L126[08:12:42] ⇨ Joins: Cast0077 (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com)
L127[08:19:22] ⇦ Quits: Javaschreiber (~Thunderbi@88-209-32-73.nga.highspeed-baumann.de) (Ping timeout: 198 seconds)
L128[08:23:08] ⇨ Joins: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se)
L129[08:29:34] ⇦ Quits: Koward (~Koward@2a02:2788:296:345:a518:a25e:b0f2:2d31) (Ping timeout: 198 seconds)
L130[08:39:16] ⇨ Joins: Zethalion (~Zethalion@095-097-058-227.static.chello.nl)
L131[08:41:45] <Ordinastie> to check if a key is pressed globally, where would it be apropriate to do that ?
L132[08:47:51] <Ordinastie> apparently, there is a InputEvent
L133[09:02:21] ⇦ Quits: johni0702 (johni0702@johni0702.de) (Ping timeout: 207 seconds)
L134[09:03:15] ⇨ Joins: johni0702 (johni0702@johni0702.de)
L135[09:04:52] <ben_mkiv> yea, onKeyInput
L136[09:06:07] <ben_mkiv> and you can check with Keyboard.isKeyDown() if its still pressed
L137[09:08:49] ⇨ Joins: treborx555 (~quassel@109.228.96.70)
L138[09:09:32] <treborx555> is there a range limit config option, for example say i want config to have min value of 1 and max value of 5?
L139[09:14:03] ⇦ Quits: KklyAq (~Umbraco@121-87-222-159f1.nar1.eonet.ne.jp) (Ping timeout: 207 seconds)
L140[09:18:47] <ghz|afk> treborx555: yes
L141[09:19:15] <treborx555> whats the name?
L142[09:19:50] <ghz|afk> if you use the old-style config system, you can do this:
L143[09:19:50] <ghz|afk> https://github.com/gigaherz/InventorySpam/blob/master/src/main/java/gigaherz/inventoryspam/config/Config.java#L98,L101
L144[09:20:10] <ghz|afk> if you use the newer annotation-based config
L145[09:20:15] <treborx555> hm i use the new annot
L146[09:20:16] <ghz|afk> there's @Config.RangeInt
L147[09:20:20] <treborx555> oh
L148[09:20:30] <ghz|afk> and @Config.RangeDouble
L149[09:20:55] <treborx555> ty that should work
L150[09:24:07] <treborx555> nice it works
L151[09:24:26] ⇨ Joins: moony_ (~moony@tx-76-4-60-39.dhcp.embarqhsd.net)
L152[09:25:25] ⇦ Quits: moony (~moony@tx-76-4-60-39.dhcp.embarqhsd.net) (Ping timeout: 200 seconds)
L153[09:31:04] <treborx555> i really like the new config system, when i was new i accidentally tried using the old one and it was 10 times harder and took more space
L154[09:31:21] ⇦ Quits: phroa (~phroa@173.254.236.155) (Ping timeout: 383 seconds)
L155[09:31:33] <Ordinastie> gotta love when you start a simple mod, and mid-way you realise that probably won't be as easy :x
L156[09:33:29] <ben_mkiv> ^^
L157[09:33:49] <ben_mkiv> was like... let's replace java models by object models and thought it would be simple -.-
L158[09:34:13] <treborx555> i thought adding a gear slot to inventory would be easy lol
L159[09:34:38] <treborx555> i checked out a few examples.. none were shorter than a 3 long classes
L160[09:34:57] <treborx555> so now im doing everything else before i try to tackle that xD
L161[09:35:00] <Ordinastie> !gm rightClickMouse
L162[09:35:37] <ben_mkiv> Ordinastie, https://github.com/ben-mkiv/OCGlasses/blob/MC1.12.1/src/main/java/com/bymarcin/openglasses/event/ClientEventHandler.java
L163[09:35:47] <ben_mkiv> uses click + keyboard events
L164[09:36:11] <Ordinastie> yeah, no, that's not what's causing problems
L165[09:36:38] <ghz|afk> treborx555: heh
L166[09:36:48] <ghz|afk> I have thought of adding baubles-like slots in one of my mods
L167[09:37:01] <ghz|afk> but I did know in advance, it isn't THAT easy :P
L168[09:37:21] ⇨ Joins: phroa (~phroa@173.254.236.155)
L169[09:37:31] <ghz|afk> so I never got around to it
L170[09:37:56] <Ordinastie> ok, first run of the mod
L171[09:38:29] <treborx555> i tried but then figured i'll rather understand it better instead of copy pasting and hoping it works
L172[09:38:45] <treborx555> first gotta try and make a keybind xD
L173[09:39:04] <ben_mkiv> ghz|afk, for your toolbelt?
L174[09:40:29] <Ordinastie> and I forgot to register for the event -_-
L175[09:46:23] <Ordinastie> and here I hoped to make a client only mod :(
L176[09:47:16] ⇨ Joins: Javaschreiber (~Thunderbi@88-209-32-73.nga.highspeed-baumann.de)
L177[09:49:25] <ghz|afk> ben_mkiv: no, for my WIP magic mod
L178[09:49:35] <ghz|afk> although the toolbelt would also be a good target
L179[09:50:22] <Ordinastie> on that subject, your toolbelt, it swaps tools with the hotbar right ?
L180[09:50:29] <ghz|afk> yes
L181[09:50:40] <Ordinastie> you send a packet to the server I assume
L182[09:50:51] <ghz|afk> I send a "swap with slot X in the belt" packet
L183[09:50:58] <ghz|afk> the target is alwys the current hotbar slot
L184[09:51:17] <Ordinastie> yeah, I'll have to do that too :/
L185[09:51:53] <ghz|afk> https://github.com/gigaherz/ToolBelt/blob/master/src/main/java/gigaherz/toolbelt/network/SwapItems.java#L58
L186[09:51:54] <ghz|afk> :P
L187[09:52:49] <Ordinastie> oh, you do it on the server and notify clients
L188[09:53:06] <ghz|afk> yes
L189[09:53:24] ⇦ Quits: Cast0077 (~Cast0077@24-151-68-108.dhcp.nwtn.ct.charter.com) (Quit: Poof)
L190[09:53:52] <Ordinastie> wait, why do you need to notify clients ?
L191[09:54:00] <Ordinastie> oh, right, you render stuff
L192[09:54:13] <ghz|afk> yup
L193[09:58:04] <ghz|afk> I think I was having some issue with baubles not synchronizing all the itemstack data with the client, even thought I had requested it to keep the item in sync
L194[09:59:12] <ben_mkiv> i had that issue, too. but somehow solved it
L195[09:59:21] <ben_mkiv> but cant recall what did the job atm
L196[10:01:26] <ben_mkiv> ah i had to call the update event of my item in the onWornTick() method of the baubles api
L197[10:01:59] <ben_mkiv> and willAutoSync() set to return true
L198[10:02:03] <ben_mkiv> and do the sync on my own
L199[10:03:55] <ghz|afk> that last sentence pretty much puts you in the same place as me :p
L200[10:05:41] <Ordinastie> ok, let's try again then
L201[10:07:02] <Ordinastie> ok, let's try again, again, this time without forgetting the annotation :x
L202[10:08:01] <ghz|afk> XD
L203[10:08:56] ⇨ Joins: quadraxis (~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L204[10:09:47] ⇦ Quits: phroa (~phroa@173.254.236.155) (Ping timeout: 200 seconds)
L205[10:09:47] <Ordinastie> I'm trying to place item in world with shortcuts
L206[10:21:41] <Ordinastie> wtf
L207[10:21:53] <Ordinastie> cobblestone unloc name is stonebrik -_-
L208[10:22:21] <Ordinastie> and of course, the itemStack toString uses the unloc name instead of the registry resloc :x
L209[10:22:52] ⇨ Joins: Brokkoli (~Brokkoli@p2E5B1B3F.dip0.t-ipconnect.de)
L210[10:31:01] ⇨ Joins: KklyAq (~Umbraco@121-87-222-159f1.nar1.eonet.ne.jp)
L211[10:32:26] <billy> anyone know of a way to retexture the universal bucket item (in inventory)? example being some custom fluids use the normal iron looking bucket, but some special custom fluids will use a new texture that looks like a gold bucket
L212[10:34:43] ⇦ Quits: KklyAq (~Umbraco@121-87-222-159f1.nar1.eonet.ne.jp) (Ping timeout: 200 seconds)
L213[10:35:25] <Ordinastie> ohh, it works
L214[10:45:01] *** PaleOff is now known as PaleoCrafter
L215[10:54:33] *** PaleoCrafter is now known as PaleOff
L216[11:01:20] ⇨ Joins: malte0811 (~malte@p4FDE5CBD.dip0.t-ipconnect.de)
L217[11:19:34] ⇦ Quits: malte0811 (~malte@p4FDE5CBD.dip0.t-ipconnect.de) (Ping timeout: 186 seconds)
L218[11:33:30] ⇨ Joins: malte0811 (~malte@p4FDE5CBD.dip0.t-ipconnect.de)
L219[11:39:26] ⇦ Quits: ben_mkiv (~ben_mkiv@p4FED476D.dip0.t-ipconnect.de) (Ping timeout: 383 seconds)
L220[11:52:33] ⇦ Quits: Nedelosk (~Nedelosk@ip-37-201-253-118.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
L221[11:53:40] ⇨ Joins: Nedelosk (~Nedelosk@ip-37-201-253-118.hsi13.unitymediagroup.de)
L222[11:58:18] ⇨ Joins: Raycoms (~Raycoms@2804:14d:baa0:9612:211:f974:13b9:be92)
L223[11:58:24] ⇨ Joins: Commoble (~Commoble@mnpl-04-3331.dsl.iowatelecom.net)
L224[11:58:50] <Raycoms> Hi, when I want a block rightclick to work I need to expand the collisionbox right and not only the boundingbox?
L225[11:58:54] ⇨ Joins: moony (~moony@tx-76-4-60-239.dhcp.embarqhsd.net)
L226[12:00:11] <Ordinastie> you need the rayTrace bounding box
L227[12:00:46] ⇦ Quits: moony_ (~moony@tx-76-4-60-39.dhcp.embarqhsd.net) (Ping timeout: 198 seconds)
L228[12:01:08] <Raycoms> Which method do I have to override for this?
L229[12:01:19] <Ordinastie> can't you look ?
L230[12:01:41] <Ordinastie> there shouldn't be many methods with rayTrace in them
L231[12:02:11] <Raycoms> Actually 2
L232[12:02:27] <Raycoms> rayTrace and collisionRayTrace but the second is deprecated
L233[12:02:47] <Raycoms> but both get a RayTraceResult
L234[12:06:30] ⇨ Joins: Alaura (~Alaura@ip68-14-164-59.ok.ok.cox.net)
L235[12:09:23] <Raycoms> That's not the problem, that's calculated correctly, the bounding box is also the correct size
L236[12:09:30] <Raycoms> but it also only appears if I look at the feet
L237[12:09:51] <Commoble> at YOUR feet?
L238[12:09:54] <Commoble> or somebody else's feet?
L239[12:10:12] <Raycoms> The bottom part of the block
L240[12:10:33] <Commoble> sounds like an offset somewhere got goobered up
L241[12:10:51] ⇦ Quits: malte0811 (~malte@p4FDE5CBD.dip0.t-ipconnect.de) (Ping timeout: 383 seconds)
L242[12:10:58] <Commoble> or do you mean looking directly at the bottom face of the block, and it doesn't work for the other faces
L243[12:11:42] <Raycoms> Actually my blockModel is 2 blocks high
L244[12:12:02] <Commoble> and it works when you're looking at the bottom half, but not the top half?
L245[12:12:15] <Raycoms> Yes
L246[12:12:29] <Raycoms> but the bounding box it shows me is over the whole block
L247[12:13:57] <barteks2x> how to make IDEA belive that my SidedProxy instance is not going to be null at runtime?
L248[12:14:00] <Ordinastie> you can't have blocks bigger than their 1x1x1 space
L249[12:14:18] <Ordinastie> well, I can, but not in vanilla
L250[12:14:18] <Commoble> right, like doors are actually made of two different blocks IIRC
L251[12:14:47] <ghz|afk> [17:22] (Ordinastie): and of course, the itemStack toString uses the unloc name instead of the registry resloc :x
L252[12:14:54] <ghz|afk> yeah toString is from old times
L253[12:14:59] <ghz|afk> back when there wasn't registry names :P
L254[12:15:12] <ghz|afk> I don't think mojang use it for anything other than debugging :P
L255[12:16:24] <ghz|afk> blocks can be slightly bigger than their 1x1x1 but the lighting information won't be fully correct, so the more it extends, the worse it will get
L256[12:17:03] <treborx555> hm how should i name my mod
L257[12:17:30] <Raycoms> Hmm, so in the future I'll have to make 2 blocks out of it
L258[12:17:31] <Commoble> what's in the mod
L259[12:17:32] <treborx555> its about turning minecraft into a diablo like hack and slash
L260[12:17:46] <ghz|afk> Craft&Slash ?
L261[12:17:47] <Commoble> Thwack N' Stash
L262[12:17:54] <treborx555> i wanted to name it diablo like minecraft but curseforge says no "minecraft" in name allowed
L263[12:17:59] <treborx555> xD
L264[12:18:10] <treborx555> hm idk if there will be a lot of crafting
L265[12:18:17] <Raycoms> diablo like craftmine
L266[12:18:17] <treborx555> mine and slash could do
L267[12:18:47] <Raycoms> I played a modpack a few years ago with a similar name and goal
L268[12:19:11] <treborx555> Mine&Slash it is
L269[12:23:15] ⇦ Quits: Darkhax (~darkhax@d205-206-157-117.abhsia.telus.net) (Ping timeout: 200 seconds)
L270[12:25:17] ⇨ Joins: SanAndreasP (~SanAndrea@i577b0bcf.versanet.de)
L271[12:28:15] ⇦ Quits: johni0702 (johni0702@johni0702.de) (Ping timeout: 383 seconds)
L272[12:30:48] ⇨ Joins: johni0702 (johni0702@johni0702.de)
L273[12:31:38] <Raycoms> What is currently the best way to make a block with a lot of variants and orientations?
L274[12:31:58] ⇨ Joins: Darkhax (~darkhax@d205-206-157-117.abhsia.telus.net)
L275[12:32:41] <Commoble> That's an interesting question
L276[12:33:14] <Commoble> Make a list of all the ways you know how to make a block with lots of variants and orientations, and figure out what the WORST one is
L277[12:33:41] <Commoble> and throw that one out, etc
L278[12:34:05] <ghz|afk> Raycoms: what kind of variants?
L279[12:34:25] ⇦ Quits: johni0702 (johni0702@johni0702.de) (Ping timeout: 190 seconds)
L280[12:34:38] <ghz|afk> or really, in short:
L281[12:34:46] <ghz|afk> place the most important proeprties in the metadata
L282[12:34:50] <ghz|afk> and the rest in the tileentity
L283[12:35:03] ⇨ Joins: johni0702 (johni0702@johni0702.de)
L284[12:35:14] <ghz|afk> which ones go in the metadata depend on what is most important to gave "at a glance"
L285[12:35:22] <ghz|afk> such as by someone using getBlockState without getActualState
L286[12:35:29] <Raycoms> So there is no okay way to do it without having to rewrite it in 1.13?
L287[12:35:45] <ghz|afk> well
L288[12:35:50] <Commoble> There's no way to do anything without having to rewrite it in 1.13
L289[12:35:50] <ghz|afk> you won't REALLY have to rewrite that much
L290[12:35:51] <ghz|afk> just
L291[12:35:58] <Raycoms> And my block is kinda like stairs, but has 5 variants
L292[12:36:00] <ghz|afk> currently
L293[12:36:06] <ghz|afk> we get 4 bits of metadata
L294[12:36:10] <Commoble> that's some interesting stairs there
L295[12:36:42] <ghz|afk> that means if we have more than 16 combinations of properties, we have to rely on a tileentity or neughbours
L296[12:36:46] <ghz|afk> but 1.13 will not require that
L297[12:36:51] <Commoble> or make more blocks
L298[12:36:51] <ghz|afk> meaning in MANY cases (not all)
L299[12:37:14] <Raycoms> Yeah guess, multiple blocks will be the only way
L300[12:37:15] <ghz|afk> we'll just be able to get rid of getStateFromMeta, getMetaFromState, getActualState, and the TE values, and it would still work
L301[12:37:26] <ghz|afk> so rather than rewrite
L302[12:37:32] <ghz|afk> for most people it will be "remove code"
L303[12:37:49] <Raycoms> oh, that sounds like the first good news I heard about 1.13 =P
L304[12:38:28] <ghz|afk> ofc due to the "block id limit", some mods had like, a TYPE or VARIANT property
L305[12:38:39] <ghz|afk> those will be bad practice in 1.13
L306[12:38:55] <ghz|afk> good practice will be to use different registry names for each subtype
L307[12:39:42] <Commoble> In 1.12 (and for a long time now), each block tile in the world stores a 16-bit integer, with 12 of those bits referring to the block id and the other 4 being the metadata (which is generally used to represent different variants of the same block)
L308[12:40:13] <Commoble> This means that if you're not using metadata in the current version, you're wasting quite a lot of informational space
L309[12:40:18] <billy> i'm still curious to whats replacing the metadata
L310[12:40:29] <barteks2x> actually, it's not done anymore in memory. only on disk
L311[12:40:33] <Commoble> Probably a full 16-bit bumber with no metadata, meaning all blocks will be equally efficient
L312[12:40:48] <ghz|afk> Commoble: yes, that's why 1.13 will be awesome
L313[12:40:55] <Commoble> I know, so good
L314[12:41:00] <barteks2x> actually, it will probably be enchanced version of what they already do in memory: a per-chunk blockstate to ID maps
L315[12:41:04] <ghz|afk> I refuse to "pack" things together just to save block ids
L316[12:41:05] <ghz|afk> :P
L317[12:41:32] <billy> i mean, like for an oak stairs block. where is the rotation and half properties stored? i dont think theyve flattened it so much that theres 6 block ids for oak stairs
L318[12:41:37] <barteks2x> even now almost empty chunks use probably something like 2 or 4 bits per block
L319[12:41:57] <barteks2x> there probably won't be global IDs
L320[12:42:15] <barteks2x> I havent seen the code
L321[12:42:16] <Commoble> There are already six block IDs for oak stairs, it's just that they share the same first 12 bits
L322[12:42:29] <barteks2x> also that^
L323[12:42:50] <billy> i understand binary. how is this going to work in an api, though?
L324[12:42:52] <treborx555> weird, my iron shovel suddenly lost texture while playing my mod
L325[12:43:56] <Commoble> If you get rid of metadata and expand block IDs to use all 16 bits, then the six oak stairs will still each have different ID numbers, but they won't share the first 12 bits anymore, they'll just be some numbers
L326[12:44:19] <barteks2x> you just won't have IDs easily accessible probably. I think you will still have blockstates same as now, just that internally each chunk will just have internal blockstate to id mapping
L327[12:44:39] <Commoble> and on the other side, if you had, say, 3 blocks that weren't using metadata, then each of those blocks were wasting 15 potential block IDs each
L328[12:44:55] <billy> i'm not talking about the variants. i'm talking about the shape and half properties (straight, corner_outer, corner_inner, upper, lower, etc)
L329[12:45:02] <barteks2x> I say one thing, Commoble says other thing. Now I mysalf am not sure which is right
L330[12:45:32] <Commoble> Billy: Corner_outer and corner_inner are "fake" states, determined solely by which blocks are next to them
L331[12:45:37] <billy> then theres north, south, east, west
L332[12:46:33] <ghz|afk> billy: they got rid of block IDs and meta
L333[12:47:00] <ghz|afk> they now list the blocks+properties on a palette table
L334[12:47:09] <ghz|afk> and then that chunk uses the palette index to reference the block
L335[12:47:22] <barteks2x> isn't that pallette per chunk?
L336[12:47:27] <ghz|afk> yes
L337[12:47:30] <ghz|afk> so far as I understand
L338[12:47:39] <barteks2x> in memory, you already have exactly that
L339[12:47:44] <billy> ok, so you're telling me that _literally_ an oak stairs outer corner facing east on the upper half is a completely different block than an oak stairs inner corner facing north on the lower half now?
L340[12:48:02] <ghz|afk> no, it's a completely different BLOCKSTATE
L341[12:48:22] <ghz|afk> minecraft:oak_stairs{facing=east,blah blah}
L342[12:48:28] <Commoble> The north/south/west/east variants and upper/lower variants are "true" blockstates (4*2 = eight variants in total)
L343[12:48:42] <billy> ok. but where is that data stored?
L344[12:48:48] <Commoble> Each of these is represented by a specific metadata number that is stored in worldspace on the disk somewhere
L345[12:48:49] <ghz|afk> on a palette, per chunk
L346[12:49:10] <billy> idk. this doesnt make any sense to me. i guess i'll just have to wait and see when its released
L347[12:49:18] <Commoble> I'm talking about the current version, mind you
L348[12:49:32] <ghz|afk> billy:
L349[12:49:33] <ghz|afk> look
L350[12:49:53] <billy> Commoble, i know how 1.12 works, man. i'm wondering whats going to happen for 1.13, its unclear
L351[12:49:54] <ghz|afk> suppose each chunk is a graph
L352[12:49:58] <ghz|afk> on the legend it says
L353[12:50:01] <ghz|afk> [1] = minecraft:oak_stairs{facing=east,blah blah}
L354[12:50:11] <ghz|afk> [2] = minecraft:stone
L355[12:50:17] <ghz|afk> [3] = minecraft:dirt
L356[12:50:21] <ghz|afk> [4] = ...
L357[12:50:28] <ghz|afk> then the graph is a grid with
L358[12:50:34] <ghz|afk> [1][2][1][3][4]...
L359[12:50:54] <ghz|afk> in memory
L360[12:51:01] <Commoble> The very short answer is that instead of blocks being represented by 12 bits of "block ID" and 4 bits of metadata, blocks will be represented by 16 bits of just block IDs and each block that was previously a metadata variant will have its own separate block ID
L361[12:51:19] <billy> let me rephrase my words, ghz|afk. you said earlier "removing methods" but nothing about adding replacement methods. in my class that extends Block, where is my data stored in 1.13? or am I now going to have to flatten all my blockstate json files or something?
L362[12:51:32] <ghz|afk> billy: in the IBlockState!
L363[12:51:36] <barteks2x> I don't think thjat's what will happen... I'm pretty sure there won't be global ID anymore, be it 12 bits + meta or 16 bits
L364[12:51:52] <ghz|afk> the idea is that
L365[12:51:57] <Commoble> Everything is numbers, numbers have to be stored somewhere even if you can't actually see them
L366[12:52:04] <ghz|afk> setBlockState(myBlock.withProperty(FACING,east));
L367[12:52:19] <ghz|afk> will NOT call getMetaFromState
L368[12:52:29] <barteks2x> Commoble, you will have just blockstate registry, they won'tbe globally mapped to numbers. Each chunk will have as it does now it's own pallette
L369[12:52:36] <ghz|afk> it will convert each separate IBlockState to a number
L370[12:52:54] <barteks2x> And will attempt to use as few bits as possible, with max of 12 because max 4096 blocks per 16x16x16 section
L371[12:53:09] <Commoble> *max of 16
L372[12:53:29] <barteks2x> log2(4096) = 12
L373[12:53:33] <Commoble> nvm I read that wrong
L374[12:53:46] <barteks2x> At some point I guess it will be better to just store raw references to iblockstates probably
L375[12:54:01] <barteks2x> (with enough distinct blocks in small area)
L376[12:54:27] <barteks2x> currently, in that case, MC falls back to using raw IDs
L377[12:54:47] <billy> ghz|afk, so if I understand you, its basically just hiding the bitwork behind the api now
L378[12:57:51] <ghz|afk> yes... except the bitwork is different and doesn't have the same limitations
L379[12:58:10] <ghz|afk> for starters, we won't be limited to 4096 global block IDs
L380[12:58:16] ⇨ Joins: Neal (~Neal@47.146.41.184)
L381[12:58:24] <ghz|afk> meaning HUGE PACKS will be easier to create
L382[12:58:25] <Commoble> which is great because I'm using like
L383[12:58:30] <Commoble> at least 400 in the rock mod
L384[12:58:39] <ghz|afk> then, a block will be able to have more than 16 variants
L385[12:58:47] <ghz|afk> without having to resort to tileentities
L386[12:58:56] <Commoble> because I can't for the life of me get itemblock rendering for different variants to work
L387[12:59:10] <Commoble> so I'm just gonna sit on that one until 1.13 rolls out
L388[12:59:14] <Commoble> problem solved
L389[12:59:25] <barteks2x> and it may make world save files slightly smaller
L390[12:59:33] <Commoble> Sorcery!
L391[12:59:39] <billy> ok, this makes more sense now. now i can stop worrying about my stairs mod i just release (170+ stairs added)
L392[12:59:47] <Commoble> dang yo
L393[12:59:57] <Commoble> I thought my 32 stairs was a lot
L394[13:00:04] <billy> the way you were talking i thought i would hav eto split each one of those up into multiple blocks :S
L395[13:00:06] <Raycoms> Are there any benchmarks on it yet, how does it compared to the existing one?
L396[13:00:28] <ghz|afk> let me check
L397[13:04:54] <ghz|afk> snapshot: 17.4mb for a new world with render distance 32
L398[13:05:29] <ghz|afk> 1.12.2: 17.1mb for the same exact seed and same render distance
L399[13:06:20] <ghz|afk> I would have to try with a bigger world, I guess
L400[13:06:36] <ghz|afk> but I have no idea if the chunks are ALL upgraded at once
L401[13:06:42] <ghz|afk> or dynamically as they are first encountered
L402[13:07:15] <Raycoms> Wow at render distance 32, my laptop would be on fire for a while already =P
L403[13:07:20] <Commoble> that's less than a 2% increase, it's statistically meaningless in either direction
L404[13:08:36] <Raycoms> You can only say it's statistically meaningless if you know the variance =P
L405[13:08:39] <ghz|afk> Raycoms: I had three minecrafts running at the same time :P
L406[13:08:44] <ghz|afk> OS: Unsupported Windows 10.0 (Build #16299) CPU: Intel Core i7-6700K,  4.01 GHz, 0 KB Video: NVIDIA GeForce GTX 1070 (2560x1440x32bpp 59Hz) Sound: Speakers (Realtek High Definiti Memory: Used: 14233/32708MB Uptime: 1w 6d 23h 20m 59s HD Space: Free: 5481.67 GB/8382.28 GB Connection: Intel(R) Ethernet Connection (2) I219-V @ 1000.0 Mbps (Rec: 3384.81MB
L407[13:08:44] <ghz|afk> Sent: 994.30MB)
L408[13:08:58] <Commoble> I can say it's statistically meaningless if it's a sample size of one =P
L409[13:09:44] <Raycoms> That's a different argumen
L410[13:09:48] <Commoble> fair point
L411[13:10:04] <Raycoms> Oh, I can't wait to buy a new laptop...
L412[13:10:37] <Raycoms> Still have to investigate if I can get my mSata working in a m.2 or sata3 slot at fair speed =P
L413[13:12:36] <Commoble> oh man I had an idea
L414[13:13:55] <Commoble> long long time ago I tried to make a mod that added randomly generated dimensions but I gave up because it was too complicated for me at the time and the forge API wasn't robust enough yet
L415[13:14:35] <Commoble> then later I came back and there were new hooks that were super useful but they were put there for Mystcraft and Mystcraft did a better job of it than I could so I scrapped the idea again
L416[13:14:53] <Commoble> now I had a new thought:
L417[13:14:57] <Commoble> DUNGEON DIMENSIONS
L418[13:15:29] <Raycoms> Btw, is anyone interested in joining our dev team? =D
L419[13:15:36] <Commoble> whose dev team
L420[13:15:43] <Raycoms> Minecolonies =D
L421[13:15:48] <Commoble> never heard, lemme google
L422[13:16:03] <Raycoms> http://www.minecolonies.com/
L423[13:16:07] <Commoble> found it first
L424[13:16:59] <Raycoms> We actually have tasks concerning almost any concern of minecraft modding =D
L425[13:17:09] <Commoble> NPCs that make villages, you say?
L426[13:17:24] <Raycoms> Yeah
L427[13:17:38] <Commoble> hmm https://www.youtube.com/watch?v=uxuPm6Uoi3c
L428[13:18:47] <Raycoms> Basically colonies with a lot of micromanagement and the possibility to make it a huge city
L429[13:18:56] <Raycoms> We're constantly expanding on it
L430[13:19:49] <Commoble> eh, doesn't sound like my kinda thing
L431[13:20:23] <Commoble> I'm more interested in making colonies that manage themselves and antagonize you
L432[13:20:35] <Raycoms> That's the long term plan
L433[13:21:02] <Commoble> like an evil Dwarf Fortress AI
L434[13:21:03] <Raycoms> We're planning on trading, warfare etc pvp, pve
L435[13:21:58] <Commoble> gnomes of stone building vast underground empires, building their numbers, excavating mountain halls, stealing your stuff
L436[13:22:29] <Raycoms> Yeah ours are more over the earth =
L437[13:22:33] <Commoble> some day I'll get back to that
L438[13:22:36] <IoP> underpants?
L439[13:23:27] <Commoble> underpants gnomes confirmed https://www.youtube.com/watch?v=MNTD8seCALc
L440[13:31:27] ⇦ Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping timeout: 207 seconds)
L441[13:41:17] ⇨ Joins: Hanii (~textual@2a00:23c4:484:d100:d59c:3cb0:1ea:739e)
L442[13:59:51] ⇨ Joins: phroa (~phroa@173.254.236.155)
L443[14:01:10] ⇦ Quits: Raycoms (~Raycoms@2804:14d:baa0:9612:211:f974:13b9:be92) (Quit: Leaving)
L444[14:11:18] <barteks2x> now that's new... I timed out in singleplayer
L445[14:11:45] ⇦ Quits: nallar (~nallar@81.187.229.141) (Ping timeout: 207 seconds)
L446[14:12:50] ⇨ Joins: nallar (~nallar@81.187.229.141)
L447[14:18:18] <Commoble> That'll be fun to debug
L448[14:21:32] <barteks2x> not really a bug... my system was just so slow because of swapping that it timed out when loading world
L449[14:22:22] ⇦ Quits: nallar (~nallar@81.187.229.141) (Ping timeout: 198 seconds)
L450[14:22:51] ⇨ Joins: nallar (~nallar@cpc134854-cani4-2-0-cust141.know.cable.virginm.net)
L451[14:44:54] ⇦ Quits: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se) (Ping timeout: 186 seconds)
L452[14:45:11] <treborx555> i just realeased my mod, didnt expect someone would make a video with a bug xD i would have never found this bug otherwise lol
L453[14:45:48] <ghz|afk> heh
L454[14:46:03] <ghz|afk> I saw someone make a spotlight of one of my mods, and encounter a bug during it :P
L455[14:46:19] <ghz|afk> and no, they didn't report the bug
L456[14:46:29] <ghz|afk> I had to find out by watching it one day randomly ¬¬
L457[14:46:54] <Ordinastie> the firs spotlight I got, they were half buggy, half the guy didn't have a clue how to make stuff work ><
L458[14:50:31] <ghz|afk> it's funny how like 70% of the spotlights for my tool belt mod
L459[14:50:32] <ghz|afk> are in spanish
L460[14:51:13] <treborx555> yeah im panicking right now because i see how hard it is to understand my mod lol
L461[14:51:20] <ghz|afk> XD
L462[14:51:46] <treborx555> also items for some reason become textureless purple blocks for no apparent reason..
L463[15:06:11] <TechnicianLP> did you tell the modelloader which model to use for them?
L464[15:06:26] <TechnicianLP> items and blocks need seperate registrations for models
L465[15:11:45] ⇨ Joins: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se)
L466[15:30:40] <treborx555> its the vanilla minecraft items that suddenly randomly lose texture
L467[15:31:03] <Commoble> yeah that's no good
L468[15:31:41] <treborx555> i set their damage to -1 maybe thats it, some1 said that makes them last forever and it seems to work.. usually
L469[15:32:27] <treborx555> item.getItem().setMaxDamage(-1)
L470[15:32:37] <Commoble> What, for every item?
L471[15:32:39] <barteks2x> are you doing that on *all* items?
L472[15:32:58] <Commoble> For some items, the damage value is used like block metadata
L473[15:33:01] <treborx555> all the gear that drops from mobs
L474[15:33:19] <Commoble> and it'll look up that value in the process of determining which texture to use
L475[15:33:39] <Commoble> Any item that can drop from any mob, like wool?
L476[15:34:03] <treborx555> no, just armor and weapon pieces
L477[15:34:39] <treborx555> heres my github but the mod got big https://github.com/RobertSkalko/Mine-and-Slash
L478[15:36:40] <treborx555> dont be too harsh on me xD
L479[15:40:58] ⇦ Quits: moony (~moony@tx-76-4-60-239.dhcp.embarqhsd.net) (Ping timeout: 198 seconds)
L480[15:40:58] ⇦ Quits: Commoble (~Commoble@mnpl-04-3331.dsl.iowatelecom.net) (Read error: Connection reset by peer)
L481[15:43:08] <Ordinastie> your IGeneral interface...
L482[15:43:22] ⇦ Quits: Alaura (~Alaura@ip68-14-164-59.ok.ok.cox.net) (Ping timeout: 198 seconds)
L483[15:44:05] <treborx555> please be specific
L484[15:44:39] <Ordinastie> it should be static methods in a util class, not an interface you slap on random classes
L485[15:48:54] <treborx555> hmm..oh i see, that allows me to use the interface methods both in static and non static methods?
L486[15:49:29] ⇨ Joins: Commoble (~Commoble@mnpl-04-3331.dsl.iowatelecom.net)
L487[15:49:56] <Ordinastie> static method can be accessed statically yes, that means, they don't need context
L488[15:50:05] <Ordinastie> but that's not the purpose of interfaces
L489[15:50:56] <treborx555> so should i change the interface methods to static or im doing interfaces wrong?
L490[15:51:07] <Ordinastie> you're doing interfaces wrong
L491[15:51:11] <Ordinastie> well, that one at least
L492[15:51:20] <Ordinastie> that should be an interface at all
L493[15:51:47] <Ordinastie> interfaces are use as contracts for the classes that implement them, to say to the class they have to implement those methods
L494[15:52:14] <treborx555> ah, i just use them as methods that can be shared
L495[15:52:37] <Commoble> Your own internal code will almost never need to use interfaces, they're mostly useful for APIs
L496[15:53:14] <treborx555> but if i didnt use interfaces i'd have to copy paste the methods a ton
L497[15:53:20] <Ordinastie> no
L498[15:53:25] <Ordinastie> you make them static
L499[15:53:31] <Ordinastie> you call them statically
L500[15:53:45] <treborx555> like class.method? that seems too verbose
L501[15:53:58] <Commoble> it's less verbose than copy-pasting them
L502[15:54:29] <Ordinastie> better than to have some random methods in every classes that are not relevant to them
L503[15:54:36] <treborx555> but using static interfaces methods seems better
L504[15:54:41] <Commoble> it's not
L505[15:54:58] <Ordinastie> and if you *really* don't want to have SomeClass.method()
L506[15:55:04] <Ordinastie> you can alway have static imports
L507[15:55:15] <treborx555> oh
L508[15:55:37] <Commoble> (I always use "this.method()" for local methods anyway so in my case it's no more verbose than anything else)
L509[15:55:50] <treborx555> so i should just change my interfaces into classes and make the methods static, then import them?
L510[15:55:55] <Commoble> er
L511[15:56:04] <Ordinastie> yes
L512[15:56:13] <Ordinastie> the import part is not really necessary
L513[15:56:30] <Ordinastie> it's to adress the verbose part
L514[15:56:33] <treborx555> ok thanks, it is to me, i dislike big code
L515[15:56:57] <Commoble> "SomeClass.method" compared to "method" isn't really "more verbose"
L516[15:57:34] <treborx555> welp
L517[15:57:48] <Ordinastie> consider that if you omit the class, you will need the method to have really explicit naming
L518[15:57:48] <treborx555> is that the biggest issue or just the first issue you saw? xD
L519[15:57:59] <treborx555> ah i see
L520[15:58:09] <Ordinastie> most of the time, you can have utility method regrouped in different classes
L521[15:58:18] <Ordinastie> and there, the class name give some context and meaning
L522[15:58:46] <Ordinastie> like
L523[15:58:48] <Commoble> if your method doesn't actually read or write to any local fields, you should probably make it a static method
L524[15:58:49] <treborx555> oh i see
L525[15:58:59] <treborx555> instead of isgear() i can do is.gear()
L526[15:59:17] <Commoble> that just gave me like five headaches
L527[15:59:21] <Ordinastie> no not really :p
L528[15:59:24] <treborx555> fk
L529[15:59:29] <Commoble> like, here's a vanilla example
L530[15:59:29] <billy> more like instead of registerBlocks() use ModBlocks.register()
L531[16:00:05] <Commoble> you look at the MathHelper class, that's full of static utility functions
L532[16:00:10] <Commoble> and you can call it from anywhere
L533[16:00:23] <Commoble> (because that's what you use static functions for)
L534[16:00:31] <Commoble> like MathHelper.abs()
L535[16:00:36] <ghz|afk> also java supports static imports, so
L536[16:00:40] <Ordinastie> one of my util classes : https://github.com/Ordinastie/MalisisCore/blob/1.12/src/main/java/net/malisis/core/util/AABBUtils.java
L537[16:00:50] <ghz|afk> import static yourpackage.GearUtils.isGear;
L538[16:00:58] <ghz|afk> woudl let you call isGear without the class name :P
L539[16:01:24] <Commoble> you'd want to be careful with that so you don't confuse yourself though
L540[16:01:28] <ghz|afk> yup
L541[16:01:32] <barteks2x> and most of the time youb can get the IDE to do the static import for you
L542[16:02:25] <ghz|afk> best case is NOT to use static import
L543[16:02:37] ⇨ Joins: Doty1154 (~Doty1154@2601:648:8000:134f:b544:3d26:f10a:f878)
L544[16:02:48] <ghz|afk> but if it bothers you enoguh that you'd use default methods on an interface, as a means to avoid writing a class name a couple times
L545[16:02:54] <ghz|afk> in that case, static imports are a valid tool
L546[16:03:04] <ghz|afk> we'd still recommend getting used to having nice verbose code
L547[16:03:20] <Ordinastie> I use static imports for google's Preconditions class
L548[16:03:21] <TechnicianLP> it makes readinf for 3rd parties easier
L549[16:03:36] <treborx555> i see, and here i thought i tidied up my code nicely
L550[16:03:55] <ghz|afk> i knew someone who was so paranoid about compacting code
L551[16:04:00] <ghz|afk> he'd write multiple statements in one line
L552[16:04:13] <Commoble> to be fair I'll do that if they're like
L553[16:04:16] <Commoble> really really short ones
L554[16:04:25] <ghz|afk> yes but you don't do like
L555[16:04:28] <Ordinastie> just don't
L556[16:04:31] <ghz|afk> if (cond) { code; more code;
L557[16:04:36] <ghz|afk> some more code; some other code;
L558[16:04:41] <ghz|afk> } next code; etc;
L559[16:04:50] <billy> i'm completely opposite, everything has to have its own line, and everything must have brackets (even 1 liners)
L560[16:04:52] <ghz|afk> he did stuff like that.
L561[16:05:17] <Ordinastie> the only place where multiple statements fit on one line is for for()
L562[16:05:47] <Ordinastie> the tempvar one, not the foreach
L563[16:06:03] <billy> biggest pest peeve: if (true) return; all on same line, no brackets. i die on the inside every time i see it
L564[16:06:40] <Ordinastie> I don't do brackets for 1 line ifs though
L565[16:06:46] <ghz|afk> billy: I once wrote "if (condition) <newline> return;" at work
L566[16:06:54] <Ordinastie> that's why I can't stand egyptian style brackets
L567[16:06:56] <ghz|afk> and I was told to either make it "if (cond) return;" or add the brackets
L568[16:07:24] <ghz|afk> I died a little inside, because "if (cond) return;" is horrible to me :P
L569[16:07:38] <ghz|afk> so I added brackets.
L570[16:07:57] <billy> gcc shaped me to use brackets for everything
L571[16:08:05] <barteks2x> the only reason it's "horrible" for me is because all known formatters automatically add the newline
L572[16:08:10] <billy> used to be a time it would throw warnings during compiling about missing brackets
L573[16:08:31] <barteks2x> so there is no sane way to keep it that way
L574[16:08:33] * Commoble googles Egyptian Brackets
L575[16:08:42] <Ordinastie> it's K&R style
L576[16:08:42] <Commoble> Oh, THAT'S what those are called, yeah, heck those
L577[16:09:02] <ghz|afk> oh also, I once saw someone write code like:
L578[16:09:05] <ghz|afk> if ( long ..... condition ) {
L579[16:09:05] <ghz|afk> ....code indented around here
L580[16:09:05] <ghz|afk> ....more code
L581[16:09:05] <ghz|afk> ............................}
L582[16:09:21] * Commoble facepalms
L583[16:09:48] <treborx555> oh btw
L584[16:10:02] <billy> wow, thats bad
L585[16:10:05] <Ordinastie> funny thing is, you can have the weirdest formatting, that's not the worst
L586[16:10:09] <billy> worse than { on a newline
L587[16:10:12] <Ordinastie> the worst, it's when it's not consistent
L588[16:10:17] <ghz|afk> billy: { on a new line is GOOD
L589[16:10:28] <treborx555> i do if (con return to reduce the amount of brackets so it doesnt look like if ( if ( if ( if ( if, is that good?
L590[16:10:29] <ghz|afk> I'd dare say, it's the only truly good way to write it :P
L591[16:10:37] <billy> i cant bring myself to use it. i've been doing { on same line for over 20 years now
L592[16:11:20] <ghz|afk> I grew up with varied programming languages
L593[16:11:43] <ghz|afk> visualbasic, pascal, C, java, C#, php, javascript, even touched some actionscript at one point
L594[16:11:57] <ghz|afk> and the C part, was on msvc style
L595[16:12:02] <ghz|afk> so it used { in its own lines
L596[16:12:12] <Ordinastie> treborx555, that's called returning early, and imo, it's better
L597[16:12:22] <billy> first time i ever saw it was C#
L598[16:12:24] <Ordinastie> I don't really like when you have code indented 6 times
L599[16:12:26] <treborx555> thanks, at least one thing i figure out is good
L600[16:12:33] <treborx555> me neither
L601[16:12:42] <ghz|afk> treborx555: the only downside to using early-exit constructs
L602[16:12:45] <barteks2x> I think almost everyone would start using brackets on same line when forced to write code on smal,l resolution for longer amount of time
L603[16:12:50] <ghz|afk> is that you can forget to release resources
L604[16:13:02] <ghz|afk> java lets you fix that by using try{}finally{}
L605[16:13:11] <ghz|afk> (and putting the deinitialization in the finally block
L606[16:13:12] <treborx555> what does release resources mean
L607[16:13:18] <ghz|afk> it means like
L608[16:13:21] <ghz|afk> you oppen a file for reading
L609[16:13:25] <ghz|afk> and forget to call .close on it
L610[16:13:26] <treborx555> oh
L611[16:13:32] <ghz|afk> suppose this code:
L612[16:13:35] <ghz|afk> open file stream
L613[16:13:36] <ghz|afk> read bytes
L614[16:13:42] <ghz|afk> if (header != MAGIC_NUMBER) return;
L615[16:13:45] <ghz|afk> read contents;
L616[16:13:55] <ghz|afk> oops! you never called close on that if
L617[16:14:26] <ghz|afk> that's why c# has using() and java has try-with-resources
L618[16:14:27] <Ordinastie> but only if you don't use using() or try-finally, which you should anyway
L619[16:14:46] <treborx555> seems like a minor problem
L620[16:14:49] <Ordinastie> oh, right, using is not java ><
L621[16:15:01] <ghz|afk> yeah
L622[16:15:10] <ghz|afk> they didn't want to add more keywords, I guess
L623[16:15:50] <billy> its minor until your OS stalls because "too many files open" spams dmesg
L624[16:16:18] <treborx555> stalling? better than a bugged while loop
L625[16:16:32] <billy> stalling/halting/crashing
L626[16:16:42] <treborx555> oh ye thats bad
L627[16:16:50] <treborx555> i have to wait 10 minutes for pc to restart
L628[16:17:15] <treborx555> i wonder why windows doesnt save a tiny bit of memory to allow me to kill the process
L629[16:17:48] <ghz|afk> that's not the issue
L630[16:17:55] <ghz|afk> if you run out of ram, it starts using swap (pagefile)
L631[16:18:03] <ghz|afk> which means it has to constantly write and read from disk
L632[16:18:07] <ghz|afk> which is very very slow
L633[16:18:25] <treborx555> oh so thats why it freezes
L634[16:18:26] <ghz|afk> so the entire system ends up waiting for disk, and so you have trouble even running cmd to kill the process
L635[16:18:31] * billy doesnt have a swap partition :3
L636[16:18:43] <treborx555> "trouble" is undererestimating
L637[16:19:00] <barteks2x> a question about forge dependency extraction: if I update my mod that contains dependency to extract, will it overwrtite the old extracted file?
L638[16:19:13] <ghz|afk> billy: good luck if any program uses a lot of ram and everything else crashes with out of memory
L639[16:19:14] <ghz|afk> :P
L640[16:19:21] <treborx555> anyway im still trying to figure out how to rename my interface methods
L641[16:19:23] <ghz|afk> it's WAY safer to have swap
L642[16:19:25] <billy> happens at least once a week, ghz|afk ^_^
L643[16:19:26] <billy> https://gyazo.com/9491ade42a66d7a9eca418a761bc1534
L644[16:19:26] <ghz|afk> even if you have plenty of ram
L645[16:19:48] <treborx555> bragger xD
L646[16:19:57] <barteks2x> I actually would prefer to not have swap, because otherwise one runaway program and everything is slow for the next hour
L647[16:19:59] <treborx555> 4gb ram here :/
L648[16:20:04] <TechnicianLP> my linux boots with 0.5 gb of swap used - probably some rarely used stuff
L649[16:20:04] <ghz|afk> RAM: Used: 15105/32708MB (46% Load)
L650[16:20:14] <barteks2x> and it's just more productive to restart that stuff anyway
L651[16:20:32] <ghz|afk> barteks2x: the issue is that, if you do have some swap, stuff slows down
L652[16:20:43] <ghz|afk> if you don't, unrelated programs start crashing
L653[16:20:51] <ghz|afk> and those programs might contain important data
L654[16:21:06] <ghz|afk> hence why it's recommended to always have some swap
L655[16:21:21] <billy> sometimes i forget how many debug minecraft instance i have running, and will crash from opening too many
L656[16:21:34] <barteks2x> or disable memory overtcommit
L657[16:22:29] <treborx555> oh yeah, is there like a debug mode where the IDE automatically generates system out prints for every variable during the process of firing?
L658[16:22:51] <ghz|afk> what
L659[16:22:52] <ghz|afk> XD
L660[16:22:53] <barteks2x> for *all* variables?
L661[16:23:03] <barteks2x> you can do that for one variable using breakpoiint
L662[16:23:05] <Ordinastie> sure, that wouldn't kill your setup...
L663[16:23:13] <ghz|afk> you know how many variables exist in the enterity of the loaded classpath? :P
L664[16:23:14] <treborx555> yea
L665[16:23:21] <treborx555> hm..
L666[16:23:35] <ghz|afk> also just to consider how this would have to work
L667[16:23:38] <treborx555> i have this class that calculates dmg, it has like 30 variables that i need to check
L668[16:23:50] <barteks2x> add a breakpoint
L669[16:23:50] <ghz|afk> the IDE would have to put a breakpoint on EVERY SINGLE LINE that modifies a variable
L670[16:23:54] <Ordinastie> that's the purpose of the debugger
L671[16:23:55] <barteks2x> and it will show you values of them
L672[16:24:00] <ghz|afk> then when that breakpoint triggers
L673[16:24:03] <ghz|afk> it would have to print out the value
L674[16:24:04] <ghz|afk> and resume
L675[16:24:10] <treborx555> breakpoints, ill have to learn that
L676[16:24:11] <ghz|afk> halt! print out, resume.
L677[16:24:12] <ghz|afk> halt! print out, resume.
L678[16:24:13] <ghz|afk> halt! print out, resume.
L679[16:24:17] <ghz|afk> it wouldn't be slow
L680[16:24:18] <treborx555> i see, so its resource intensive
L681[16:24:23] <ghz|afk> it would be stop motion
L682[16:24:24] <billy> 1 frame per hour
L683[16:24:33] <barteks2x> it would run at something like a few lines of code per second
L684[16:24:40] <treborx555> o_o
L685[16:24:59] <barteks2x> well maybe a few hundred
L686[16:25:01] <ghz|afk> treborx555: try enabling a conditional breakpoint, on a "hot" function
L687[16:25:07] <ghz|afk> the program crawls
L688[16:25:12] <ghz|afk> and that's just ONE conditional breakpoint
L689[16:25:15] <barteks2x> ^I tried that
L690[16:25:24] <ghz|afk> imagine with thousands :P
L691[16:25:25] <treborx555> even on your monster pcs? then mine would crash probably lol
L692[16:25:26] <barteks2x> was faster to write a coremod that injects print statements with if()
L693[16:25:45] <ghz|afk> so yeah
L694[16:25:49] <ghz|afk> if you want to check step by step
L695[16:25:51] <ghz|afk> use the debugger
L696[16:25:53] <ghz|afk> that's what it's for
L697[16:25:58] <ghz|afk> put a breakpoint at the beginning of the code
L698[16:26:00] <Ordinastie> few years back I couldn't even have conditional breakpoint
L699[16:26:05] <ghz|afk> and use the "step over" and "step into"
L700[16:26:09] <treborx555> ill need a few minutes to figure this out
L701[16:26:16] <Ordinastie> whatever the location, it would slow the process way too much
L702[16:26:26] <ghz|afk> the sooner you learn how to use step-by-step debugging, the nicer your life will be
L703[16:26:32] <barteks2x> also I'm really wondering why IDEs can't use hotswap to do conditional breakpoints...
L704[16:27:04] <treborx555> well i can always debug step by step but sometimes i just hate writing 10 print statements
L705[16:27:12] <ghz|afk> maybe they don't want to do code injection for breakpoints, dunno
L706[16:27:28] <ghz|afk> treborx555: don't write print statements, then
L707[16:27:34] <ghz|afk> use the variable inspector in the IDE
L708[16:27:46] <Commoble> or instead of printing to the console you could have the screen flash in morse code
L709[16:28:01] <barteks2x> no, it would pause the execution, and it would list all the variables
L710[16:28:05] <treborx555> i never used any of these things
L711[16:28:13] <ghz|afk> as I said, learn, it's really nice.
L712[16:28:24] <ghz|afk> sec I'll show you a screenshot :P
L713[16:28:33] <treborx555> it seems nice, ill have to learn it
L714[16:28:41] <Ordinastie> tbh, to code properly, it's mandatory
L715[16:28:55] <Ordinastie> I have a friend learning how to code
L716[16:28:57] <Ordinastie> at uni
L717[16:29:02] <billy> https://gyazo.com/7dac1a19e120bcd4cda03b02ce9af64e
L718[16:29:08] <Ordinastie> 6 months in, they still don't know what a debugger is
L719[16:29:09] <ghz|afk> treborx555: https://i.imgur.com/LXjLsFd.png
L720[16:29:13] <ghz|afk> notice 3 things
L721[16:29:26] <ghz|afk> 1. idea shows the "most notable" variables on the right of each line
L722[16:29:35] <ghz|afk> 2. on the cursor tooltip, there's the value for the hovered variable
L723[16:29:47] <ghz|afk> 3. at the bottom left, the call stack where the brakpoint stopped
L724[16:29:59] <ghz|afk> 4. at the bottom right, the variable inspector with the values of the current scope
L725[16:30:02] <Ordinastie> (I wish eclipse did the in-editor output too :()
L726[16:30:11] <Ordinastie> that's the only thing I envy IDEA for
L727[16:30:19] <barteks2x> so switch to IDEA :D
L728[16:30:26] <Ordinastie> yeah, no thanks
L729[16:30:38] <billy> join the dark side
L730[16:30:40] <Ordinastie> emphasis on "only" :p
L731[16:30:56] <treborx555> i see, yeah thats what i want
L732[16:30:56] <Ordinastie> billy, your cookies don't tempt me!
L733[16:30:59] <barteks2x> the MInecraftDev plugin is also really nice
L734[16:31:01] <billy> ^_^
L735[16:32:10] <billy> i used to be an eclipse fanboy too. i waited like 3 years after google switched to idea for android, and i kick myself for waiting so long
L736[16:33:06] <barteks2x> I actually first used eclipse, then found it too annoying and used netbeans (aven for minecraft dev) and then found IDEA
L737[16:34:19] <treborx555> i got intelij just because nightmode
L738[16:34:53] <ghz|afk> yeah these days, I can't rate an app as "good" if it doesn't have a dark theme/skin
L739[16:35:15] <treborx555> i cant believe i got used to darkmode in just like a day
L740[16:35:24] <treborx555> i thought it was really weird at first
L741[16:35:30] <ghz|afk> "dark theme" was an evolution for me
L742[16:35:58] <ghz|afk> I don't remember what was the very first program I used with a dark theme
L743[16:36:03] <billy> everything is dark theme on my os cause i am nocturnal and the white hurts my eyes in the dark lol
L744[16:36:08] <ghz|afk> but a notable "early" program was visual studiop 2010
L745[16:36:14] <ghz|afk> -p
L746[16:36:17] <ghz|afk> it wasn't truly dark
L747[16:36:20] <ghz|afk> but dark blue
L748[16:36:44] <Ordinastie> when I first started coding at school and saw other use dark theme for their IDE, I thought they were just doing that to look 'cool' :p
L749[16:36:58] <treborx555> holy shit my game froze as soon as i activated the breakpoint
L750[16:37:10] <Ordinastie> yeah, that's the poiçnt
L751[16:37:11] <billy> thats what a breakpoint does
L752[16:37:12] <Ordinastie> *point
L753[16:37:49] <treborx555> its supposed to freeze the game?
L754[16:38:05] <ghz|afk> well
L755[16:38:06] <Ordinastie> it stops the execution of the thread when it reaches it, so yes
L756[16:38:08] <ghz|afk> when the breakpoint hits
L757[16:38:11] <ghz|afk> the entire program stops
L758[16:38:13] <treborx555> ooh
L759[16:38:14] <ghz|afk> waiting for input on the IDE
L760[16:38:14] <billy> you can step through to the next breakpoint. and yes, its so you can examine the current state before stepping forward
L761[16:38:24] <ghz|afk> then you can choose to step through the lines of code
L762[16:38:29] <ghz|afk> or continue running
L763[16:38:31] <ghz|afk> or stop
L764[16:38:34] <treborx555> sounds like code dungeon crawling
L765[16:38:59] <ghz|afk> yes it's like a "choose your own adventure" book
L766[16:39:01] <billy> i like to think of it like the matrix, freezing time so I can look around at everything while time holds still for me
L767[16:39:04] <billy> but i'm weird
L768[16:39:44] <ghz|afk> "if you want to continue, press Fx" "if you want to take one step forward, press Fy" "if you want to enter the next function, press Fz"
L769[16:40:18] <Ordinastie> I don't have that Fx key
L770[16:40:49] <billy> "keyboard not found, press any key to continue"
L771[16:41:11] <ghz|afk> I use VS key bindings, so if I had said what it is for me, it would probably not match your setup :P
L772[16:41:36] <billy> "windows has detected that your mouse has moved. please reboot your computer for changes to take effect"
L773[16:41:37] <ghz|afk> F10 = step over, F11 = step into, shift-F11 = step out, F5 = continue
L774[16:42:23] <Ordinastie> yeah, I don't really like those
L775[16:42:27] <Ordinastie> prefer eclipse logic
L776[16:42:31] <Commoble> "It is pitch black. You are likely to be eaten by a null pointer exception"
L777[16:42:36] <ghz|afk> once upon a time, they felt wrong to me
L778[16:42:45] <ghz|afk> I was used to the visualbasic choices
L779[16:42:58] <ghz|afk> but I got used to them
L780[16:44:38] <barteks2x> hm... for me IDEA has F7 = step into, F8 = step over (next line), not sure which one is continue
L781[16:44:59] <billy> f9 (resume program)
L782[16:48:44] ⇦ Quits: MalkContent (~MalkConte@p4FDCC665.dip0.t-ipconnect.de) (Quit: Leaving)
L783[16:57:28] ⇨ Joins: immibis (~chatzilla@122-59-205-83.jetstream.xtra.co.nz)
L784[17:05:49] <ghz|afk> so I ended up falling to my temptation
L785[17:05:52] <ghz|afk> reactivated my wow account
L786[17:06:01] <ghz|afk> and installed the twitch app (ugh!)
L787[17:06:38] <ghz|afk> anyone knows if it's possible to configure the twitch app to open on the "mods" tab?
L788[17:06:52] <ghz|afk> (I have no use for the twitch streaming tabs)
L789[17:16:57] ⇨ Joins: KklyAq (~Umbraco@121-87-222-159f1.nar1.eonet.ne.jp)
L790[17:19:36] ⇦ Quits: treborx555 (~quassel@109.228.96.70) (Read error: Connection reset by peer)
L791[17:29:40] <ghz|afk> foundit :D
L792[17:30:10] <ghz|afk> I wish the twitch app would remember the wow addons I had before I uninstalled last time :P
L793[17:39:18] ⇦ Quits: KklyAq (~Umbraco@121-87-222-159f1.nar1.eonet.ne.jp) (Ping timeout: 186 seconds)
L794[17:42:57] ⇦ Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Read error: Connection reset by peer)
L795[17:49:30] ⇦ Quits: Zethalion (~Zethalion@095-097-058-227.static.chello.nl) (Ping timeout: 207 seconds)
L796[17:51:18] ⇨ Joins: Zethalion (~Zethalion@095-097-058-227.static.chello.nl)
L797[17:57:57] ⇦ Quits: Zethalion (~Zethalion@095-097-058-227.static.chello.nl) (Ping timeout: 207 seconds)
L798[18:12:20] ⇦ Quits: Javaschreiber (~Thunderbi@88-209-32-73.nga.highspeed-baumann.de) (Quit: Javaschreiber)
L799[18:23:48] <ghz|afk> I hate myself a little bit right now :/
L800[18:23:57] <ghz|afk> I wiped my wow addons config and such >_<
L801[18:25:04] ⇦ Quits: Michiyo (~Michiyo@mail.pc-logix.com) (Read error: Connection reset by peer)
L802[18:25:11] ⇨ Joins: Michiyo_ (~Michiyo@mail.pc-logix.com)
L803[18:26:46] ⇦ Quits: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se) (Ping timeout: 186 seconds)
L804[18:27:18] ⇦ Quits: mallrat208 (~mallrat20@107.145.144.41) (Ping timeout: 186 seconds)
L805[18:27:34] ⇨ Joins: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se)
L806[18:34:02] <LexMobile> diesieben07: There is a new 'Installer Download Failed' action you should have access to for the download issues.
L807[18:37:14] ⇨ Joins: sinkillerj (~sinkiller@nc-67-238-186-225.dhcp.embarqhsd.net)
L808[18:39:52] ⇨ Joins: Tao (~Tao@62-178-179-89.cable.dynamic.surfer.at)
L809[18:41:59] <Tao> Hey mezz, are you around?
L810[18:52:39] ⇦ Quits: Nedelosk (~Nedelosk@ip-37-201-253-118.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
L811[18:58:42] ⇨ Joins: Zoss (~Zoss@ppp121-45-127-193.bras2.adl6.internode.on.net)
L812[19:07:34] ⇦ Quits: auenf (~David@120.154.64.171) (Read error: Connection reset by peer)
L813[19:10:16] ⇨ Joins: auenf (~David@120.154.64.171)
L814[19:26:23] ⇦ Quits: SanAndreasP (~SanAndrea@i577b0bcf.versanet.de) (Ping timeout: 200 seconds)
L815[19:47:55] ⇦ Quits: Tao (~Tao@62-178-179-89.cable.dynamic.surfer.at) (Quit: Leaving)
L816[20:32:34] ⇦ Quits: airbreather (~airbreath@d149-67-99-43.nap.wideopenwest.com) (Ping timeout: 198 seconds)
L817[20:48:06] ⇦ Quits: KGS (~KGS@h-158-174-9-50.NA.cust.bahnhof.se) (Ping timeout: 186 seconds)
L818[20:49:06] ⇨ Joins: Unh0ly_Tigg (~Unh0ly_Ti@c-24-21-196-226.hsd1.or.comcast.net)
L819[21:22:49] ⇨ Joins: Zethalion (~Zethalion@095-097-058-227.static.chello.nl)
L820[21:24:37] * Commoble trying to get TESR rendering to work: https://image.prntscr.com/image/HQgqVqC7T46LYj_uTVTE5g.png
L821[21:24:48] <Commoble> well, they're the right size this time
L822[21:24:59] <Commoble> And properly aligned on one out of three axes!
L823[21:41:14] ⇦ Quits: Commoble (~Commoble@mnpl-04-3331.dsl.iowatelecom.net) (Quit: Leaving)
L824[22:05:56] ⇨ Joins: airbreather (~airbreath@d149-67-99-43.nap.wideopenwest.com)
L825[22:06:48] ⇨ Joins: ben_mkiv (~ben_mkiv@p4FED5871.dip0.t-ipconnect.de)
L826[22:10:46] ⇦ Quits: Lathanael|Away (~Lathanael@p54960393.dip0.t-ipconnect.de) (Ping timeout: 186 seconds)
L827[22:16:57] ⇨ Joins: Lathanael|Away (~Lathanael@p54960C94.dip0.t-ipconnect.de)
L828[22:36:24] ⇨ Joins: moony (~moony@tx-76-4-60-239.dhcp.embarqhsd.net)
L829[23:17:41] ⇨ Joins: McJty (~jorrit@ptr-9197ufqqs1ei6rkkt4s.18120a2.ip6.access.telenet.be)
L830[23:31:14] ⇦ Quits: Zoss (~Zoss@ppp121-45-127-193.bras2.adl6.internode.on.net) (Quit: Leaving)
L831[23:42:36] ⇦ Quits: sinkillerj (~sinkiller@nc-67-238-186-225.dhcp.embarqhsd.net) (Quit: またね)
L832[23:53:42] ⇦ Quits: Doty1154 (~Doty1154@2601:648:8000:134f:b544:3d26:f10a:f878) (Ping timeout: 186 seconds)
L833[23:54:30] ⇨ Joins: Doty1154 (~Doty1154@67.215.244.186)
L834[23:56:54] ⇦ Quits: Darkhax (~darkhax@d205-206-157-117.abhsia.telus.net) (Ping timeout: 186 seconds)
L835[23:58:42] ⇦ Quits: Doty1154 (~Doty1154@67.215.244.186) (Ping timeout: 207 seconds)
L836[23:59:24] ⇨ Joins: Doty1154 (~Doty1154@2601:648:8000:134f:9c10:be41:9400:e766)
<<Prev Next>> Scroll to Top