<<Prev
Next>>
Scroll to Bottom
Stuff goes here
L1[00:00:12] <TheUnknownFew> sounds like
it.
L2[00:00:28] <killjoy> Anyway, take
mc.getResourceManager(), cast to IReloadableResourceManager
L3[00:00:45] <killjoy> then call
registerReloadListener
L4[00:00:56] <killjoy> If forge ATs
resourceManager, you shouldn't need to cast
L5[00:01:33] <killjoy> examples of this are
the SoundManager
L6[00:01:41] <TheUnknownFew>
registerReloadListener? Do you mean onResourceManagerReload ?
L7[00:01:45] <killjoy> e.g.
sounds.json
L8[00:01:57] <killjoy> no, register
L9[00:02:03] <TheUnknownFew> where is that
method?
L10[00:02:08] <TheUnknownFew> I am not
seeing it
L11[00:02:21] <killjoy>
IReloadableResourceManager::registerReloadListener
L12[00:02:41] <TheUnknownFew> ahh, there it
is
L13[00:03:20] <TheUnknownFew> Where would
these merged resources be stored?
L14[00:04:01] <TheUnknownFew> or is that up
to me to decide?
L15[00:04:05] <killjoy> yes
L16[00:04:49] <killjoy> you create a
dynamic resource based on what's provided
L17[00:04:55] <killjoy> you shouldn't need
to store it back in the resources
L18[00:05:00] <killjoy> nor can you
L19[00:05:08] <killjoy> create a field and
put it there.
L20[00:05:49] <TheUnknownFew> The only
kinds of resources i'm storing/merging are jsons and .langs
L21[00:06:01] <killjoy> .langs should be
done automatically
L22[00:06:27] <killjoy> See SoundHandler
for .json example
L23[00:06:32] <TheUnknownFew> Alright
L24[00:06:48] <TheUnknownFew> Thanks. I'll
copy this for later. It is 1am so I'm going to get going to
bed
L25[00:11:13] ***
TTFTCUTS is now known as TTFT|Away
L26[00:20:58] ⇦
Quits: TheUnknownFew
(~TheUnknow@2601:547:c400:78b6:4dcd:66e3:e79a:8fc) (Quit:
Leaving)
L27[00:21:06] ⇨
Joins: Ashindigo_
(uid202308@id-202308.hathersage.irccloud.com)
L30[00:24:43] <McJty> Looks like you forgot
to set one of the GLStates correctly
L31[00:25:30] <McJty> Probably
blending
L32[00:25:48] <SatanicSanta> I'm curious
why that would only impact non-peaceful mode
L33[00:25:51] <Falconerd> yay more steam
powered stuff!
L34[00:26:07] <McJty> Perhaps because in
non-peaceful a mob sets a GL state differently. Not sure
L35[00:26:14] <SatanicSanta> hm
L36[00:33:13] <SatanicSanta> McJty: Thanks.
Had to disableBlend
L37[00:33:48] ***
fry|sleep is now known as fry
L38[00:39:12] <Denyol> what happened to
addCraftingToCrafters in Container
L39[00:41:34] <SatanicSanta> its now the
listener shit iirc
L40[00:41:44] <SatanicSanta>
addListeners
L41[00:41:51] <SatanicSanta> could be wrong
but im pretty sure thats what it is
L42[00:42:03] <Denyol> i have no clue what
it does, but a guide im following uses it...
L44[00:43:12] <McJty> Hmm that ticket
doesn't seem to have anything to do with The One Probe
L45[00:43:34] <Denyol> do I need to do
listener.sendAllWindowProperties(); on my Container?
L46[00:43:42] <SatanicSanta> McJty: It only
happens when using a probe
L47[00:44:11] <SatanicSanta> Denyol: In my
one container I don't do anything with listeners
L48[00:44:12] <Barteks2x> I realized I have
a problem with cubic chunks... the world save will be about 2x
bigger than in vanilla. 2MB minimum just for heightmap information
for new world, and it has to be separate and uncompressed. So my
uqestion is: would 2x bigger world saves be acceptable?
L49[00:44:14] <McJty> Ah there are multiple
unrelated crashes in that log
L50[00:45:05] <Denyol> what do listeners
do? SatanicSanta
L51[00:46:39] <SatanicSanta> listens to
changes in the container? idk, i havent had to use them :P
L52[00:47:05] ⇨
Joins: Toluene (~Genuine@104.156.228.112)
L53[00:47:28] <Denyol> hm ok
L54[00:49:42] ⇦
Quits: Genuine (~Genuine@104.156.228.112) (Ping timeout: 206
seconds)
L55[00:54:58] <McJty> SatanicSanta, that's
a very confusing stacktrace. I'm still not convinced it is The One
Probe. What's about this: at
net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:780)
~[ForgeHooks.class:?]
L56[00:55:07] <McJty> The crash seems to
occur when an item is placed in the world
L57[00:55:13] <McJty> And then it is
crashing in esteemedinnovation
L58[00:55:14] <SatanicSanta> no thats
unrelated
L59[00:55:18] ⇦
Quits: bjorguv (~reidboyce@c-73-83-133-41.hsd1.wa.comcast.net)
(Quit: bjorguv)
L60[00:55:23] <SatanicSanta> at least i
think it is
L61[00:55:30] <McJty> Are you sure? Because
TOP crashes *right* after that
L62[00:55:42] <SatanicSanta> i can throw
the one probe into my dev environment and get you a cleaner log if
you want
L63[00:55:49] <McJty> yes that would be
great
L64[00:57:34] ⇦
Quits: ouTPhaze (~ouTWork@wsip-68-15-100-185.ok.ok.cox.net) (Ping
timeout: 194 seconds)
L66[01:00:10] <Denyol> hmm my container is
eating up my items...
L67[01:01:14] <McJty> SatanicSanta, again:
ForgeHooks.onPlaceItemIntoWorld
L68[01:01:18] <McJty> What item are you
placing?
L69[01:01:26] <SatanicSanta> spawn
villager
L70[01:01:44] <McJty> Any villager?
L71[01:01:48] <McJty> Or just a specific
one
L72[01:02:02] <SatanicSanta> the villager
spawn egg from vanilla
L73[01:02:05] <SatanicSanta> so yeah any
villager
L74[01:02:36] <McJty> hmm, that's weird
because I know villagers work fine for top
L75[01:02:42] <McJty> I mean I look at them
all the time in my LP
L76[01:03:17] <McJty> Let me see what
happens in my TOP dev env
L77[01:03:23] <McJty> Switching it to 1.10
right now
L78[01:04:35] <SatanicSanta> I'm pretty
sure it's because I return null from writeNBT in
VillagerDataStorage
L79[01:04:43] <SatanicSanta> as i mentioned
in the issue comment i linked earlier
L80[01:04:48] ⇨
Joins: bjorguv
(~reidboyce@c-73-83-133-41.hsd1.wa.comcast.net)
L81[01:05:08] <McJty> hmm
L82[01:05:20] <SatanicSanta> it doesn't
happen if I return an empty NBTTagCompound
L83[01:05:21] <McJty> Problem is that I
don't see what I can do about that.
L84[01:05:34] <SatanicSanta> expect
null?
L85[01:05:41] <McJty> The code is not my
code
L86[01:05:45] <SatanicSanta> welp
L87[01:05:46] <McJty> I'm just persisting
NBT of the entity
L88[01:06:49] <McJty> What is that
VillagerDataStorage exactly?
L89[01:06:54] <McJty> What kind of
thing?
L90[01:07:50] <McJty> SatanicSanta, what
TOP does to get the entity info is to call: entityNBT =
entity.serializeNBT();
L91[01:08:00] <McJty> So it is
entity.serializeNBT() that seems to do the wrong thing there
L92[01:08:06] <McJty> But I have no control
over that
L94[01:08:27] <McJty> Are you sure you are
using that 'VillagerDataStorage' (whatever that is) correct?
L96[01:08:37] <SatanicSanta> McJty:
According to its docs, yes.
L97[01:09:05] ⇦
Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
(Ping timeout: 384 seconds)
L98[01:09:07] <SatanicSanta> The writeNBT
docs say that it should return null if no data should be
stored
L99[01:09:40] <McJty> I never used that but
I'm not convinced that that comment is right here
L100[01:09:45] <McJty> Especially not in
this particular case
L101[01:10:02] <McJty> And seems I cannot
do anything about it really so ...
L102[01:10:22] <SatanicSanta> Okay so it's
a forge issue
L103[01:10:44] <mezz> what calls
writeNBT?
L104[01:11:10] <McJty> TOP calls
entity.serializeNBT()
L105[01:11:18] <McJty> I suppose something
in there will call that writeNBT
L107[01:11:54] <mezz> serializeNBT has no
comment saying it can return null
L108[01:12:17] <SatanicSanta> serializeNBT
has no documentation
L109[01:12:35] <SatanicSanta> most usages
I've seen just call writeNBT
L110[01:12:44] <SatanicSanta> so I think
it's logical to assume it can return whatever writeNBT can
return
L111[01:12:51] <SatanicSanta> if not idk
what to do
L112[01:13:01] <mezz> return an empty nbt
and see what happens
L114[01:13:12] ⇦
Quits: Brokkoli (~Brokkoli@p5B23C6BC.dip0.t-ipconnect.de) (Quit:
Die Sprache der Politik ist daf�r gemacht, dass L�gen wahr klingen
und das T�ten angemessen wirkt. (George Orwell))
L115[01:13:36] <mezz> yeah looking at
usages of serializeNBT here, it absolutely cannot be null
L116[01:13:50] <mezz> look at
CapabilityDispatcher.areCompatible
L117[01:14:04] <mezz> it treats them as
nonnull there
L118[01:14:12] <mezz> I think it's
reasonable to assume it's nonnull
L119[01:14:46] ⇦
Quits: Toluene (~Genuine@104.156.228.112) (Read error: Connection
reset by peer)
L120[01:15:26]
⇨ Joins: Genuine (~Genuine@104.156.228.112)
L121[01:16:55] ⇦
Quits: Doty1154 (~Doty1154@2601:648:8000:134f:cdb3:c2e8:7ee8:76df)
(Quit: Leaving)
L122[01:19:21] <SatanicSanta> yeah so that
prevented the crash
L123[01:19:34] <SatanicSanta> but im not
sure if functionally itll be the same
L124[01:23:39] <SatanicSanta> I'm not
actually sure the feature this is for even works yet, but since
this prevents the crash I suppose I'll consider it fixed
L125[01:24:17] <McJty> ok thanks
L126[01:25:05] ⇦
Quits: bjorguv (~reidboyce@c-73-83-133-41.hsd1.wa.comcast.net)
(Quit: bjorguv)
L127[01:25:31] <Barteks2x> ByteBuffer
toString is so unhelpful... java.lang.AssertionError: Reading array
0 after writing 0 expected:
java.nio.HeapByteBuffer<java.nio.HeapByteBuffer[pos=0 lim=1130
cap=1130]> but was:
java.nio.HeapByteBuffer<java.nio.HeapByteBuffer[pos=0 lim=1130
cap=1130]>
L128[01:34:37] <Denyol> all of my
containers have for whatever reason stopped showing the contents of
their items in the slots, when you add them it just goes in and
dissapears
L129[01:37:13] <Barteks2x> why
Integer.SIZE isn't named Integer.BITS...
L130[01:38:30] <killjoy> that would be
confusing
L131[01:39:16] <Barteks2x> Integer.SIZE is
32, and I used it when I wanted to use Intger.BYTES, and got very
confusing results
L132[01:48:22] ⇦
Quits: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
()
L133[01:52:10] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 194
seconds)
L134[01:55:24] <Kasran> So I'm feeling
really stupid right now - Do I have to make a new copy of the Forge
MDK every time I want to make a new mod project? None of the
tutorials make that clear.
L135[01:57:46] ⇦
Quits: kinggoesgaming (uid23106@id-23106.tooting.irccloud.com)
(Quit: Connection closed for inactivity)
L136[01:58:25]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L137[01:59:06] <Kasran> oh I see
L138[01:59:08] <Kasran> never mind
L139[02:00:03] <MCPBot_Reborn> [TEST CSV]
Pushing snapshot_20170122 mappings to Forge Maven.
L140[02:00:27] <MCPBot_Reborn> [TEST CSV]
Maven upload successful for mcp_snapshot-20170122-1.11.zip
(mappings = "snapshot_20170122" in build.gradle).
L141[02:00:38] <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/
L142[02:09:34] ***
Darkevilmac is now known as DarkevilAway
L143[02:10:25]
⇨ Joins: Hunterz (~hunterz@62.182.234.189)
L144[02:18:38] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 206
seconds)
L145[02:20:34]
⇨ Joins: TechnicianLP
(~Technicia@p4FE5614B.dip0.t-ipconnect.de)
L146[02:21:45]
⇨ Joins: Naiten (Naiten@5.143.38.44)
L147[02:31:07] ⇦
Quits: Ashindigo_ (uid202308@id-202308.hathersage.irccloud.com)
(Quit: Connection closed for inactivity)
L148[02:31:50]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L149[02:39:40] ⇦
Quits: McJty (~jorrit@94-224-154-146.access.telenet.be) (Quit:
Leaving)
L150[02:41:56] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 180
seconds)
L151[02:44:21] <Naiten> So, how do I run
dev environment with side mods?
L152[02:44:41] <Naiten> just putting them
into mods folder crashes the game
L153[02:45:13] <Naiten> since fields in
side mod are obfuscated, but not in my mod/env
L154[02:46:33] <Barteks2x> either find dev
version of the mod, or use BON2
L155[02:48:11] <Denyol> whats BON2?
L157[02:48:56] <Barteks2x> it can
deobfuscate mods from srg names to readable mcp names
L158[02:49:08] <Barteks2x> (and maybe
other things)
L159[02:49:10]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L160[02:49:51] <killjoy> latest forge
should automatically deobfuscate srg named mods
L161[02:50:17] <Elec0> what's srg
mean?
L162[02:50:22] <killjoy> searge
names
L163[02:50:24] <Denyol> Yeh I could't get
mods to run in my mods folder either
L164[02:50:25] <Barteks2x> all mods I
tried just worked
L165[02:50:28] <killjoy> e.g.
func_123456_a
L166[02:50:36] <Barteks2x> \but some mods
apparently don't work
L167[02:50:43] <killjoy> it's the default
mappings used for mods
L168[02:50:53] <Kasran> How would one go
about modifying how the difficulty settings affect health and
hunger? Namely, I'm trying to affect how fast your hunger bar
depletes.
L169[02:51:06] <killjoy> probably
saturation
L170[02:51:55]
⇨ Joins: iari (~iari___@tyaralin.shadowdrake.eu)
L171[02:52:57] <Kasran> The specific thing
I want to do is make it so that your hunger bar depletes in
Peaceful mode. There was a mod for 1.7 and 1.8, Harder Peaceful,
that did this, but it hasn't gotten updated for years.
L172[02:53:15] <Naiten> Y U ppl NO write
not just the mod version, but which MC is it for...
L173[02:53:25] <Kasran> (If someone knows
of a mod that already implements this, let me know.)
L174[02:53:29] <killjoy> I have a fix for
that.
L175[02:53:46] <killjoy> in your
buildscript: jar.appendix = minecraft.version
L176[02:54:15] <killjoy> or maybe
preferably, jar.classifier = "mc$minecraft.version"
L177[02:54:34]
⇨ Joins: Ipsis
(~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L178[02:55:11] <killjoy> Naiten, I think
one of the reasons not everybody includes that is because it may
work on other versions.
L179[02:55:35] <Barteks2x> then the
solution is to include a version range in name
L180[02:55:42] <Naiten> killjoy, mods
don't usually work on more than one version
L181[02:55:47] <killjoy> they can
L182[02:55:49] <Naiten> and idk if BON
does that
L183[02:55:59] <Naiten> it stated
nowhere
L184[02:56:23] <killjoy> it's just that
major mc versions are more likely to break than minor
L185[02:56:30] <killjoy> but not all the
time
L186[02:57:50] <Barteks2x> urgh... I hate
java. Is it compiler that is wrong or IDE when IDE doesn't show
type inference error but compiler shows error?
L187[02:58:06] <killjoy> using java
6?
L188[02:58:10] <Barteks2x> java 8
L189[02:58:14] <killjoy> show code
L190[02:58:16] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 206
seconds)
L191[02:59:27] <killjoy> (intellij
supports quick gists)
L192[03:00:02] ***
MrKick|Away is now known as MrKickkiller
L194[03:00:41] <Kasran> grah >:I
someone else made a mod that does what I want... but hasn't updated
it to 1.11 yet!
L195[03:00:53] <killjoy> open source,
Kasran ?
L196[03:01:17] <Kasran> Indeed
L197[03:01:29] <Kasran> It's called Hunger
in Peace and it's based on AppleCore
L198[03:01:31] <killjoy> Barteks2x, is it
the builder you're having a problem with?
L199[03:01:38] <Kasran> but because
AppleCore hasn't been updated, neither has it
L200[03:01:48] <Barteks2x> this like shows
error: return new
CachedRegionProvider<>(SimpleRegionProvider.createDefault(directory,
sectorSize), maxSize);
L201[03:02:15] <killjoy> builders have
problems with implying types sometimes
L202[03:02:41]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L204[03:03:19] <Barteks2x> so is it IDE
bug that it doesn't show the error?
L205[03:03:23] <killjoy> it's java
L206[03:03:35] <killjoy> error?
L207[03:03:45] <killjoy> so your ide sees
it fine?
L208[03:03:49] <Barteks2x> yes
L209[03:03:49]
⇨ Joins: Kaiyouka
(~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L210[03:03:54] <killjoy> using?
L211[03:03:59] <shadekiller666> is the
maven down again?
L212[03:04:03] <Barteks2x> version? or
what?
L213[03:04:08] <shadekiller666>
1.10.2
L214[03:04:10] <killjoy> intellij or
eclipse
L215[03:04:14] <Barteks2x> intellij
L216[03:05:19]
⇨ Joins: Noppes
(~Noppes@ip56530f2e.direct-adsl.nl)
L217[03:06:47] <Barteks2x> it's also not
the first time I see this kind of thing and usually some
refactoring makes the error go away
L218[03:08:37] <killjoy> I have to do the
same thing using ImmutableMap
L219[03:09:00] <Barteks2x> but no idea how
to make it go away O.o
L220[03:09:03] <Barteks2x> nothing
helps
L221[03:09:10] <killjoy> Add types
L222[03:09:21] <Barteks2x> nevermind,
fixed it
L223[03:09:32] <Barteks2x> but now IDE
complains that my type arguments are unnecessary
L224[03:09:37] <killjoy> before the (),
add <R, L>
L225[03:10:21] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 206
seconds)
L226[03:11:59] <Kasran> man, all the cool
mods are for 1.10
L227[03:12:19] <Kasran> makes me feel like
the time I spent setting up a 1.11 Forge instance was wasted
:'D
L228[03:12:35] <killjoy> not wasted
L229[03:12:43] <killjoy> everyone else is
wasting their time on 1.10
L230[03:13:07] <killjoy> Though it's
literally just the time it takes to run setupDecompWorkspace
L231[03:14:57] ⇦
Quits: SatanicSanta
(~SatanicSa@c-76-115-175-15.hsd1.or.comcast.net) (Quit:
sleep)
L232[03:17:51] <Kasran> I meant a Forge
instance for the Minecraft client, with which to play with mods
others have made
L233[03:18:02] <killjoy> even easier
L234[03:18:12] <killjoy> literally press a
button
L235[03:18:25] <Kasran> still gotta
download all the mods
L236[03:18:52] <killjoy> And you'll never
get that time back
L237[03:29:11] <Denyol> Is there a way to
get the player who just placed an item in my container?
L238[03:31:37] ⇦
Quits: killjoy (~killjoy@cpe-76-182-16-229.nc.res.rr.com) (Ping
timeout: 206 seconds)
L239[03:38:52]
⇨ Joins: founderio
(~Thunderbi@p200300C4E3DDD6006B673193F32E9B83.dip0.t-ipconnect.de)
L240[03:41:59] <shadekiller666> does
anyone know why eclipse is showing every code error twice? one from
the actual path and one from
.org.eclipse.jdt.core.external.folders
L241[03:46:35] <Naiten> Uh, my IDE
suddlenly began stopping building mod at :sourceMainJava
UP-TO-DATE
L242[03:46:44] <Naiten> What can I do
about it?
L243[03:47:23] <Denyol> what is p_75220_1_
reffering to in onSlotChange() in Slot?
L244[03:48:00] <Barteks2x> I haven't see
how vanilla world for so long time... how does it only use
200-300MB ran with 15 chunks view distance?
L245[03:48:32] <shadekiller666> !gp
p_75220_1_
L246[03:48:55] <shadekiller666> !!gp
p_75220_1_
L247[03:48:55] <MCPBot_Reborn> === MC
1.11: net/minecraft/inventory/Slot.onSlotChange.p_75220_1_ UNLOCKED
===
L248[03:48:56] <MCPBot_Reborn> Name :
p_75220_1_
L249[03:48:57] <MCPBot_Reborn> Method :
adk.a => Slot.func_75220_a => Slot.onSlotChange
L250[03:48:57] <MCPBot_Reborn> Descriptor
: (Lafi;Lafi;)V =>
(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V
L251[03:48:58] <MCPBot_Reborn> Comment :
None
L252[03:48:59] <MCPBot_Reborn> Last
Change: 2016-11-17 22:22:46.941150-05:00
L253[03:49:13] <shadekiller666> Denyol
^^^
L254[03:49:23] <Denyol> what does that
mean tho...
L255[03:49:53] <shadekiller666> look at
the method implementation, what is it used for
L256[03:50:12] <Denyol> "/**
L257[03:50:12] <Denyol> * if par2 has more
items than par1, onCrafting(item,countIncrease) is called
L258[03:50:12] <Denyol> */"
L259[03:50:33] <Denyol> for
onSlotChange(ItemStack p_75220_1_, ItemStack p_75220_2_)
L260[03:51:38] <shadekiller666> no
idea
L261[03:51:44] <Denyol> neither
L263[03:57:28] <Naiten> pls halp
L264[03:58:50] <Naiten> oh wait
L265[03:58:55] <Naiten> i'm an idiot
L266[03:59:31] ⇦
Quits: shadekiller666
(~shadekill@adsl-108-71-39-199.dsl.lsan03.sbcglobal.net) (Quit:
Leaving)
L267[04:01:37] ***
PaleOff is now known as PaleoCrafter
L268[04:02:58] ⇦
Quits: Kasran (~Kasran@204.85.181.197) (Quit: Leaving)
L269[04:04:48]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L270[04:09:55] <Falconerd> so
setupDecompWorkspace doesn't have to be camelCase?
L271[04:10:32] <Falconerd> i could have
saved so many keystrokes
L272[04:10:47] <SparkVGX> o.o
L273[04:11:38] <Barteks2x> 2 keystrokes
per run?
L275[04:14:19] <SparkVGX> Im getting the
same error trying to clean a project folder
L276[04:14:20]
⇨ Joins: ThePsionic
(~Psi@ip5457f909.direct-adsl.nl)
L277[04:14:43] <SparkVGX> "FAILURE:
Build failed with an exception."
L278[04:14:52] <SparkVGX> Time for a break
I think ^_^
L279[04:27:53] <Denyol> odd, container has
a method canAddItemToSlot, but IDEA wont let me overide it
L280[04:31:37] <Barteks2x> is it
final?
L281[04:31:58] <Denyol> nope
L282[04:32:02] <Barteks2x> it\s
static
L283[04:32:13] <Denyol> yep
L284[04:32:22] <Barteks2x> you can't
override static methods
L285[04:32:23] <Denyol> seems like I
missed that
L286[04:34:27] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 206
seconds)
L287[04:36:56] <Shawn|i7-Q720M> I have
just built an rj45 null modem adapter :D
L288[04:39:25]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L289[04:40:18] <Falconerd> transfer files
without a network connection?
L290[04:40:23] <Falconerd> is that what
it's for?
L291[04:42:19]
⇨ Joins: KGS
(~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L292[04:43:13] <Shawn|i7-Q720M> its a
crossover cable adapter
L293[04:46:03] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 206
seconds)
L294[04:52:32]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L295[04:57:03]
⇨ Joins: BlueMonster
(~BlueMonst@cpc23-telf11-2-0-cust237.16-1.cable.virginm.net)
L296[04:57:07] ⇦
Quits: BlueMonster
(~BlueMonst@cpc23-telf11-2-0-cust237.16-1.cable.virginm.net)
(Remote host closed the connection)
L297[04:58:26] ⇦
Quits: Naiten (Naiten@5.143.38.44) (Read error: Connection reset by
peer)
L298[05:07:30]
⇨ Joins: Naiten (Naiten@77.35.175.198)
L299[05:17:51] ⇦
Quits: immibis (~chatzilla@125-237-220-104.jetstream.xtra.co.nz)
(Ping timeout: 384 seconds)
L300[05:19:11] <Denyol> is there a way to
find all the players that have logged on, or alternatively get a
player name from a uuid?
L301[05:20:41] ⇦
Quits: turmfalke
(~turmfalke@p20030056CF6033E93366915F27FF8197.dip0.t-ipconnect.de)
(Ping timeout: 384 seconds)
L302[05:28:56] ⇦
Quits: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
(Ping timeout: 180 seconds)
L303[05:31:09]
⇨ Joins: turmfalke
(~turmfalke@p20030056CF6033AF6E68D093F2472303.dip0.t-ipconnect.de)
L304[05:40:02] ⇦
Quits: founderio
(~Thunderbi@p200300C4E3DDD6006B673193F32E9B83.dip0.t-ipconnect.de)
(Remote host closed the connection)
L305[05:40:51] <SparkVGX> Is there a gui
creation assist tool of some description?
L306[05:41:27]
⇨ Joins: founderio
(~Thunderbi@p200300C4E3DDD6006B673193F32E9B83.dip0.t-ipconnect.de)
L307[05:42:37] <Barteks2x> what? oDo I
understand it right that you want a GUI for creating GUIs in
minecraft?
L309[05:45:09] <Falconerd> i think there's
still some problem with it
L310[05:45:31] <Denyol> did you use a
program to generate that Falconerd?
L311[05:45:52] <Falconerd> I used
Creately, it's a webapp
L312[05:45:59] <Denyol> thx
L313[05:49:20] *
ghz|afk yawns
L314[05:49:23] ***
ghz|afk is now known as gigaherz
L315[05:49:33] <gigaherz> [12:19]
(Denyol): is there a way to find all the players that have logged
on, or alternatively get a player name from a uuid?
L316[05:49:47] <gigaherz> only while they
are online
L317[05:49:54] <gigaherz> or they have
been online recently
L318[05:50:04] <Denyol> how recent?
L319[05:52:20] <SparkVGX> Is forge having
issues with gradle?
L320[05:53:02] <gigaherz> Denyol: forge
has a UsernameCache
L321[05:53:12] <gigaherz> you can do
getLastKnownUsername(UUID)
L322[05:53:49] <Denyol> Because ive saved
a player's uuid to an item upon creation, later I want to get the
name, inside a Container
L323[05:54:01] <gigaherz> the name gets
updated whenever the playr logs in
L324[05:54:12] <gigaherz> and you can
query it for anyone that has ever logged into the server
L325[05:54:33] <gigaherz> unless someone
calls removeUsername from it
L326[05:55:26] <Denyol> ok thx, ill try
that
L327[06:02:53] <Aroma1997> where does
forge store the idmap?
L328[06:03:01] <Aroma1997> in the
level.dat?
L329[06:05:14]
⇨ Joins: Ashindigo_
(uid202308@id-202308.hathersage.irccloud.com)
L330[06:05:56] <Barteks2x> it may depend
on what you need it for, chunks may have BlockStatePalette but I'm
not sure exactly, last time I looked into that code was >1 year
ago
L332[06:11:18] <gigaherz> Aroma1997: you
can easily see it with NBTExplorer ;P
L333[06:11:27] <gigaherz> it's
level.dat/FML/Registries/*
L334[06:11:30] <Aroma1997> but but
but
L335[06:11:32] <gigaherz> in 1.10.2+
L336[06:11:37] <Aroma1997> then I need to
download nbtexplorer
L337[06:11:50] <Aroma1997> ok thanks
L338[06:12:28] <gigaherz> but why do you
need to access the saved idmap? :/
L339[06:13:29] <SparkVGX> I can't seem to
make my gradle do anything, in any of my projects. Can't clean,
setupDecompWorkspace or anything
L340[06:13:57] <Aroma1997> I don't
L341[06:14:13] <Aroma1997> it's broken on
our server and I need to know which file to restore from the
backup
L343[06:23:27] <gigaherz> yay, what was
it?
L344[06:23:57] ⇦
Quits: rebecca (~rebecca@60-241-180-77.static.tpgi.com.au) (Remote
host closed the connection)
L345[06:24:44] <Naiten> custom
collisions
L346[06:25:21] <gigaherz> ewh, but I guess
if it works...
L348[06:25:50] <Naiten> it works perfect
-___-
L349[06:25:57] <Denyol> noice, did you
texture it?
L350[06:26:15] <Denyol> I mostly cant be
bothered to texture my models, they are black and purple
squares
L351[06:26:20] <SparkVGX> dang dude. looks
awesome
L352[06:26:55] <Naiten> Nope, I stole
DAYdiecast from Traincraft and now he models and textures for
me
L353[06:27:13] <SparkVGX> I recognise this
music from somewhere
L354[06:27:20] <SparkVGX> Harry
something
L355[06:28:14] <Denyol> how do the
collisions work for that?
L356[06:28:49] <g> that music is from
portal
L357[06:28:56] <Denyol> ^ thought so
L358[06:29:13] <g> really odd choice
L360[06:29:18] <SparkVGX> yeah, but isn't
it a remix done by someone?
L361[06:29:28] <g> yes it is
L362[06:30:34] <Naiten> Denyol, what do
you mean 'how do the collisions work for that?'?
L363[06:31:05] <Denyol> you said they were
broken, what was broke, how was it fixed, just curious
L364[06:31:34] <gigaherz> this is so
weird...
L365[06:31:34] <Naiten> ah
L367[06:31:45] <g> ah, no, it's not a
remix
L368[06:31:51] <gigaherz> whenever I draw
"books.json" I get a double-dot drawn
L370[06:31:55] <g> it's from the
trailer
L371[06:32:00] <gigaherz> even though
there's clearly only 1 '.' in the file
L372[06:32:02] <SparkVGX> ty g
L373[06:32:03] <Naiten> it's just hat I
made a map of all stock in the world
L374[06:32:06] <gigaherz> and other '.'s
work fine
L376[06:32:12] <g> going to work now
L378[06:32:13] <Naiten> but initially it
was only server-wise
L379[06:32:18] <Naiten> bye
L380[06:32:21] <Ordinastie> gigaherz, it's
the J
L381[06:32:27] <SparkVGX> \o
L382[06:32:34] <gigaherz> Ordinastie: is
it?
L383[06:32:42] <gigaherz> I guess it may
be
L384[06:32:52] <gigaherz> it still looks
like "books..json" to my eyes
L385[06:32:53] <Naiten> then I did it for
both client and server, but forgot one piece of code and client map
was always empty
L386[06:34:09] <Naiten> thus the client
was not running collision physics at all
L387[06:34:23] <Naiten> Denyol, that
answers your question?
L388[06:35:01] <Denyol> oh
L389[06:40:11] <Naiten> anyway
L390[06:40:14] <Naiten> i like
trains
L391[06:43:24] <TechnicianLP> dont say
that too loud ... xD
L393[06:43:56] <Denyol> i think im won
over by IDEA
L394[06:44:06] <gigaherz> :)
L395[06:44:17] <Denyol> its less
ugly
L397[06:45:40] <gigaherz> yes I know
L398[06:45:44] <gigaherz> but that was the
first result in google
L399[06:45:45] <gigaherz> ;P
L400[06:48:30] <Barteks2x> which dimension
is DIM1 and which is DIM-1?
L401[06:49:00] <TechnicianLP> 1=nether
-1=end
L402[06:49:09] <TechnicianLP> couldbe the
other way round
L403[06:50:10] <gigaherz> other way
around
L404[06:50:16] <gigaherz> -1 is the
"underworld"
L405[06:50:23] <gigaherz> ;P
L406[06:50:46] <gigaherz> 1 was going to
be the sky dimension, before it became the end
L407[06:50:49] <gigaherz> so
"aboveworld"
L409[06:59:27]
⇨ Joins: rebecca
(~rebecca@60-241-180-77.static.tpgi.com.au)
L410[06:59:54] <Barteks2x> I was almost
sure 1 is nether and -1 is the end, but maybe I was wrong
L411[07:07:36]
⇨ Joins: Jezza (~Jezza@92.206.161.17)
L412[07:10:35] <gigaherz> I can be wrong
too!
L413[07:10:53] <gigaherz> it seems to
happen a lot lately
L414[07:10:59] <gigaherz> I think I
remember something clearly
L415[07:11:02] <gigaherz> and it's all
backwards
L417[07:12:01] <gigaherz> :3
L418[07:12:03] <gigaherz>
"%appdata%\.minecraft\saves\worldname\DIM-1"
L419[07:20:00] <SparkVGX> My GradleStart
class has gone missing O.o I can't run a minecraft client to
test
L420[07:20:43] <gigaherz> idea?
L421[07:20:56] ⇦
Quits: Upthorn
(~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net) (Ping
timeout: 180 seconds)
L422[07:21:10] <SparkVGX> yeah
L423[07:21:13] <gigaherz> if so, open the
"edit configuration" dialog from the run config
selection
L424[07:21:21] <Barteks2x> if it's idea,
set "use classpath of module" to
"projectname_main"
L425[07:21:23] <gigaherz> and make sure
"use classpath of module" is set to
"blahblah_man"
L426[07:21:32] <gigaherz> main*
L428[07:22:37] <SparkVGX> it doesn't have
main attached to it, but im sure its the right one
L429[07:22:39] <SparkVGX> im having all
sorts of problems with gradle
L430[07:22:51] <SparkVGX> I can't run
clean or anything
L431[07:23:05]
⇨ Joins: Samario
(~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L432[07:23:14] <Barteks2x> set "Use
classpath of module" to SLA_main
L433[07:23:32] <SparkVGX> there is not
SLA_main, just SLA
L434[07:23:36] <SparkVGX> and it was
working before
L435[07:23:48] <Barteks2x> maybe
"refresh gradle project" first?
L436[07:23:52] ***
Denyol is now known as Denyol[Away]
L437[07:24:01] <gigaherz> if you used IDEA
15, itwould have worked
L438[07:24:09] <gigaherz> maybe if you
didn't refresh the workspace after upgrading idea
L439[07:24:12] <gigaherz> it would keep
working
L440[07:24:20] <gigaherz> but if you
setupDecompWorkspace and refresh the gradle project
L441[07:24:23] <gigaherz> it would stop
working
L442[07:24:28] <gigaherz> and the fix is
to change it to the _main
L443[07:24:48] <SparkVGX> Like, I haven't
even closed idea, nothing has changed inside the IDE
L444[07:24:53] <SparkVGX> nothing should
have updated
L445[07:24:59] <gigaherz> well it
did
L446[07:25:00] <gigaherz> ;P
L447[07:25:08] <gigaherz> stop worrying
about it
L448[07:25:24] <gigaherz> wait
L449[07:25:29] <gigaherz> [14:23]
(SparkVGX): there is not SLA_main, just SLA
L450[07:25:35] <gigaherz> what version of
idea are you using?
L451[07:26:02] <SparkVGX> IntelliJ IDEA
Community Edition 2016.1.3
L452[07:26:05] <Barteks2x> why git always
opens help in browser...
L453[07:26:11] <gigaherz> yeah then it
shouldn't be working
L454[07:26:24] <gigaherz> rerun
setupdecompWorkspace, and click on the blue refresh icon in the
gradle panel
L455[07:26:30] <gigaherz> (NOT the one in
the main toolbar)
L456[07:26:54] <kashike> though 2016.1.3
is old, you should update to latest (2016.3.3)
L457[07:26:59] <gigaherz> also update to
IDEA 2016.3.x
L458[07:27:32] <Barteks2x> I'm already
testing 2017.1 :D
L459[07:27:51] <kashike> 2016.1.3 is from
Jun 06, 2016 apparently
L460[07:27:53] <kashike> so yeah,
old
L461[07:28:27] <gigaherz> 2016.3.3 is
probably going to be the last 2016.x release, if you are worried
about those things
L462[07:28:38] <gigaherz> not that the
year-version matters much
L463[07:28:58] <gigaherz> if it was still
2016, next release would be 2016.4.x
L464[07:29:05] <gigaherz> but since we are
2017, next release will be 2017.1.x
L465[07:38:08] ⇦
Quits: Smack (~Pepe@563412ad.rev.stofanet.dk) (Read error:
Connection reset by peer)
L466[07:51:24] <SparkVGX> welp, fixed
gradle, though I still don't have the _main thing you were talking
about
L467[07:51:30] <SparkVGX> runs fine now
though ^_^
L468[07:52:37] ⇦
Quits: Falconerd
(~falconerd@ppp118-209-74-141.bras1.mel11.internode.on.net) (Quit:
Leaving)
L469[07:52:55] *
gigaherz shrugs
L470[07:54:03] <SparkVGX> how would you
suggest I add an inventory to an item?
L471[07:54:26] <gigaherz> capabilities,
IItemHandler
L472[08:04:55] <SparkVGX> I don't suppose
you have an example of that?
L473[08:05:26] <gigaherz> not in any of my
mods
L474[08:05:32] <gigaherz> but it's mostly
just
L475[08:05:41] <gigaherz> override
Item#initCapabilities on your item
L476[08:05:48] <gigaherz> or use
AttachCapabilitiesEvent.Item
L477[08:06:05] <gigaherz> (if it's someone
else's item)
L478[08:06:16] <gigaherz> then on tiem
use, you show a GUI as usual
L479[08:06:32] <gigaherz> passin in the
slot number as the x, y or z coord
L480[08:06:42] <gigaherz> so that the gui
can tell which itemstack to look for
L481[08:06:46] <gigaherz> passing*
L482[08:24:30] <SparkVGX> I'm having
trouble figuring out how to attach the capability to the item. I
think I'll have to do some searching for examples later
>,<
L483[08:25:06] <gigaherz> you don't attach
"the capability"
L484[08:25:10] <gigaherz> you attach an
ICapabilityProvider
L485[08:25:18] <gigaherz> and then
implement hasCapability/getCapability on it
L486[08:25:22] <gigaherz> like you would
on a TE
L487[08:25:40]
⇨ Joins: GeoDoX
(~GeoDoX@bas1-cornwall24-76-64-18-64.dsl.bell.ca)
L489[08:29:07] <Barteks2x> did you try a
few times? that looks like network issue
L490[08:29:21] <Barteks2x> the link it
couldn't get loads finr for me
L491[08:29:39]
⇨ Joins: IceDragon (~ThatGuy@63.143.96.21)
L492[08:29:55] <GeoDoX> Yeah, I just tried
it again
L493[08:30:14] <Barteks2x> did it
work?
L494[08:30:23] <GeoDoX> No, same
thing
L495[08:31:13] <GeoDoX> I can access it
from chrome, which is odd
L496[08:32:36] <GeoDoX> Got it, for some
reason it couldn't access it through command
L497[08:32:55] <Barteks2x> so how did you
do it?
L498[08:33:47] <GeoDoX> opened command
from start instead of ctrl + shift + right click menu
L499[08:34:29] <Barteks2x> that probably
has nothing to do with it, you just got lucky this time it was able
to connect
L500[08:35:01] <Barteks2x> I'm getting the
same error when I do ./gradlew setupDecompWorkspace
--refresh-dependencies, so it's not only you
L501[08:35:31] <GeoDoX> could have
requested administrative privileges through start
L502[08:35:52] <Barteks2x> this is
unrelated
L503[08:36:19] <Barteks2x> you should
never need to run gradle as administrator
L504[08:36:40] <gigaherz> unless there's a
bug with gradle or something
L505[08:36:55] <gigaherz> although we
still use 2.7 for 1.10.2, and 2.14 for 1.11
L506[08:36:58] <Barteks2x> or you deny
network access to gradle
L507[08:37:21] <GeoDoX> either way, it
worked when I used command through start xD
L508[08:37:38] <Barteks2x> as I said, you
probably got lucky and it worked this one time
L510[08:41:05] <GeoDoX> yes
L511[08:41:24] <Ordinastie> ok
thanks
L512[08:49:10] <Ordinastie> so apparently,
Curseforge decided to change the adresses to the projects, breaking
all the links :x
L513[08:49:53] <gigaherz> I have seen that
happen
L514[08:49:53] <gigaherz> but
L515[08:49:59] <gigaherz> my links were
already /project-name
L516[08:50:15] <gigaherz> so I guess
12345-project-name was even older, and just supported for backward
compatibility with existing links?
L517[08:50:53] <Ordinastie> I don't know
since when it stopped working
L518[08:51:03] <gigaherz> hmm yeah
L519[08:51:07] ⇦
Quits: Ashindigo_ (uid202308@id-202308.hathersage.irccloud.com)
(Quit: Connection closed for inactivity)
L522[08:51:17] <gigaherz> both work,
but
L524[08:51:20] <gigaherz> does not
L525[08:51:52] <Barteks2x> Now I really
wich java had something closer to templates... I need static method
in generic type argument...
L526[08:52:12] <gigaherz> btw talking
about curseforge
L527[08:52:28] <gigaherz> how does one
tell CF that a mod depends on another one, so that it shows up on
the dependencies list?
L528[08:52:41] <Ordinastie> Barteks2x, you
mean you want T.staticMethod() ?
L529[08:53:21] <gigaherz> that couldn't
possibly work
L530[08:53:25] <gigaherz> ;P
L531[08:53:34] ***
diesieben|away is now known as diesieben07
L532[08:53:49] <gigaherz> there's no way
to make it type-safe
L533[08:54:32] <gigaherz> you'd need
like... "static interfaces", and static overrides
L534[08:54:47] <gigaherz> and static
method tables in the jvm so that it can do overrides
L535[08:54:57] <gigaherz> may as well work
with singletons instead
L536[08:55:22] <GeoDoX> Do things still
get registered to the event bus?
L537[08:55:26] ⇦
Quits: Shawn|i7-Q720M
(~shawn156@c-50-170-156-102.hsd1.co.comcast.net) (Quit:
Leaving)
L538[08:55:31] <Barteks2x> I realized a
flaw in my RegionLib design
L539[08:55:49] <gigaherz> GeoDoX: yes? why
would you think they are not?
L540[08:55:49] <Barteks2x> and without
something like that patching a way to iterate over all regions on
top of the will be very hard
L541[08:56:57] <GeoDoX> I remember things
being registered another way and I couldn't remember if things were
being moved to being registered with the event bus or if it was to
something else
L542[08:57:11] <gigaherz> in old
minecraft
L543[08:57:16] <gigaherz> there was a FML
bus
L544[08:57:24] <GeoDoX> ah, that was
it
L545[08:57:24] <gigaherz> and certain
things would be registered on the FML bus
L546[08:57:35] <gigaherz> but now the FML
events are posted to the forge bus
L547[08:57:47] <gigaherz> so the only
thing that isn't MinecraftForge.EVENT_BUS
L548[08:57:54] <gigaherz> is the worldgen
one
L549[08:58:09] <GeoDoX> Just want to
ensure things I'm doing it right haha
L550[08:58:14] <gigaherz> and the only
reason there's a separate bus for worldgen, is because worldgen is
performance-critical
L551[08:58:20] <Barteks2x> I really don't
know what would be a good way to make that work
L552[09:00:20] <GeoDoX> Can someone link
me to a mod that has a really clean API? I need to implement an API
into my mod.
L553[09:00:48]
⇨ Joins: Cooler
(~CoolerExt@2406:5600:59:7e79:7da7:329d:f412:9f8)
L554[09:01:55] <gigaherz> uhm
L555[09:01:58] <gigaherz> what KIND of
api?
L556[09:02:02] <gigaherz> what
purpose?
L557[09:02:15] <gigaherz> my Guidebook mod
has an extremely clean API, but it's probably not what you
want
L558[09:02:18] <GeoDoX> Like your mod
registers stuff with my mod
L560[09:02:42] <gigaherz> this is how I
let others register books with my mod
L561[09:02:44] <gigaherz> I provide an
event
L562[09:03:03] <gigaherz> that you can
handle with @Optional(modid="gbook") if you need
soft-dependency
L563[09:03:45] <gigaherz> another
option
L564[09:03:47] <gigaherz> is to do like
JEI
L565[09:04:07] ***
TTFT|Away is now known as TTFTCUTS
L566[09:04:12] <gigaherz> in the JEI
api
L567[09:04:17] <gigaherz> you annotate a
class with JEIPlugin
L568[09:04:29] <gigaherz> and during game
load
L569[09:04:42] <gigaherz> JEI scans for
all the classes with @JEIPlugin in them
L570[09:04:47] <gigaherz> and calls
them
L571[09:05:08] <gigaherz> another
option
L572[09:05:11] <gigaherz> is to do like
WAILA
L573[09:05:12] <GeoDoX> In your opinion,
which is better?
L574[09:05:15] <Barteks2x> I didn't know
it's possible, that's probably what I will do with my API (at least
part of it)
L575[09:05:25] <gigaherz>
FMLInterModComms.sendMessage("Waila",
"register",
"gigaherz.enderRift.plugins.WailaProviders.callbackRegister");
L576[09:05:27] <Barteks2x> (the
@SomethingPlugin annotation)
L577[09:05:30] <gigaherz> or like the one
probe
L578[09:05:34] <gigaherz>
FMLInterModComms.sendFunctionMessage("theoneprobe",
"getTheOneProbe",
"gigaherz.enderRift.plugins.TheOneProbeProviders");
L579[09:05:39] <gigaherz> using IMC
however
L580[09:05:46] <gigaherz> has one BIG
drawback: it happens in POST-init
L581[09:05:59] <gigaherz> so it's
"too late" if you require the info during preinit, for
things like texture/model loading
L582[09:06:17] <gigaherz> (which was the
case for my guidebook mod -- I needed to load textures)
L583[09:06:54] <GeoDoX> My mod deals with
inventory slots, so I'm not sure when they'd be initialized and
stuff...
L584[09:07:08] <gigaherz> Barteks2x: you
can obtain the ASMDatas in your preinit
L585[09:07:20] <gigaherz> which would let
you fetch all the classes that contain an annotation
L586[09:07:23] <gigaherz> and iterate
through them
L587[09:07:33] <gigaherz> the same way
that forge scans for @Mod.EventbusSubscriber
L588[09:07:36] <Barteks2x> I still don't
have a clear idea for my API
L589[09:07:38] <GeoDoX> Perhaps it would
be more clear if I explained my mod
L590[09:07:54] <gigaherz> GeoDoX: yes
that's usually a good idea
L591[09:07:58] <gigaherz> the more
accurate you are with your use case
L592[09:08:04] <gigaherz> the more
accurate we can be with the answer
L593[09:09:46] <GeoDoX> I'm writing a
tooltips mod for inventory slots, it allows authors to basically
explain what a slot, or a group of slots is used for. For example,
in the vanilla furnace, when hovering the bottom slot, it would
display a "Fuel" tooltip.
L594[09:10:01] <gigaherz> I see
L595[09:10:14] <gigaherz> so you don't
need it during preinit
L596[09:10:16] <gigaherz> you can use
IMC
L597[09:10:20] <gigaherz> which is the
cleanest
L598[09:10:37] <GeoDoX> IMC being?
/.\
L599[09:11:00] <GeoDoX>
InterModComms?
L600[09:11:10] <gigaherz>
FMLInterModComms.sendMessage("YOUR MODID", "MESSAGE
NAME", MESSAGE_DATA);
L601[09:11:19] <gigaherz> the data
L602[09:11:36] <gigaherz> can be String,
NBTTagCompound, ResourceLocation, or ItemStack
L603[09:11:44] <gigaherz> in your
case
L604[09:12:02] <gigaherz> I'd probably use
json
L605[09:12:41] <SparkVGX> gigaherz: if you
are still around, I don't suppose you can tell me how I set the
default instance for an item that I've implemented
ICapabilityProvider on?
L606[09:12:46] <GeoDoX> Wouldn't it be
easier to fire an event?
L607[09:12:58] <SparkVGX>
"GemPouchCapability.IGemPouch inst =
ModCapabilities.GEM_POUCH.getDefaultInstance();"
L608[09:13:02] <gigaherz> GeoDoX: easier
for you, yes
L609[09:13:03] <SparkVGX> whever this has
to go
L610[09:13:09] <gigaherz> but then you
require people to use @Optional
L611[09:13:13] <gigaherz> if they want
soft-dependencies
L612[09:13:15] <gigaherz> which is
ugly.
L613[09:13:16] <GeoDoX> True
L614[09:13:22] <gigaherz>
alternatively
L615[09:13:25] <gigaherz> you could use a
function message
L616[09:13:35] <gigaherz> so that it's a
callback
L617[09:13:46] <gigaherz> that you can use
to obtain a... "SlotTooltipInfo" instance
L618[09:13:51] <gigaherz> or
whatever
L619[09:14:25] <gigaherz> SparkVGX: you
keep it in your anonymous interfacei mplementation
L620[09:14:27] <gigaherz> like
L621[09:14:43] <gigaherz> new
ICapabilitySerializable<NBTTagCompound>() {
L622[09:14:49] <gigaherz>
GemPouchCapability.IGemPouch inst =
ModCapabilities.GEM_POUCH.getDefaultInstance();
L623[09:15:03] <gigaherz> @Override blah
blah hasCapability {
L624[09:15:14] <GeoDoX> Do you have an
example of the function message with the callback or
whatever?
L625[09:15:18] <gigaherz> if (cap ==
ITEM_HANDLER) return (T)inst;
L626[09:15:30] ***
diesieben07 is now known as diesieben|away
L627[09:15:35] <gigaherz> GeoDoX:
theOneProbe does
L628[09:17:37] <GeoDoX> I'll look into it
:) Any tips for it?
L629[09:17:52] <gigaherz> not really
L630[09:17:57] <gigaherz> I haven't
actually used it myself
L631[09:18:01] <gigaherz> as a
"provider" of IMC
L632[09:18:02] <gigaherz> only as a
user
L634[09:20:23] <GeoDoX> Alright, time to
search through some code xD
L635[09:20:27] <gigaherz> this is how you
do it with the asm datas method
L636[09:20:36] <gigaherz> in your mod's
preinit
L637[09:21:01] <Barteks2x> I still only
have a vague idea what my API would be useful for
L638[09:21:13] <gigaherz> sure
L639[09:21:30] <Barteks2x> and the
different things it would be used for seem too different for a
single API
L640[09:22:21] <Barteks2x> and then there
is the problem that maybe 2-3 mods would use it so I would have no
way to know if it's something useful when I make it
L641[09:23:45] <Barteks2x> exposing new
World methods in an optional API doesn't seem easy
L642[09:26:07] <Barteks2x> would it need
to be some static methods that take world as arguments? Or just
putting my ICubicWorld interface into API would work?
L643[09:27:15] <Barteks2x> inter-mod stuff
is still mostly magic to me
L644[09:28:23] <gigaherz> well
L645[09:28:27] <gigaherz> one way to
achieve it would be like
L646[09:28:34] <gigaherz> interface
ICubicPlugin {
L647[09:28:51] <gigaherz> void
initializeCubicChunks(ICubicWorld);
L648[09:28:52] <gigaherz> }
L649[09:28:55] <gigaherz> and then people
can do
L650[09:29:02] <gigaherz>
@CubicPlugin
L651[09:29:13] <gigaherz> public class
CubicIntegration extends ICubicPlugin {
L652[09:29:14] <gigaherz> ...
L653[09:29:15] <gigaherz> }
L654[09:29:15] <Barteks2x> what would be
problematic is something like world.getMinHeight
L655[09:29:23] <Barteks2x> that would have
to somehow work even without the mod installed
L656[09:29:49] <gigaherz> yeah taht can't
be done with THAT kind of API
L657[09:30:12] <Barteks2x> the plugin API
would be fine for worldgen
L658[09:30:24] <Barteks2x> but not for
mods that just want compatibility
L659[09:30:28] <gigaherz> if you want
people to have copies of stuff
L660[09:30:54] <gigaherz> you'd need
something more like the baubles API, that you would embed into your
mod and let java/fml discard duplicates
L661[09:31:41] <Barteks2x> and that would
mean I can't have any differences in the API for a single major
forge version?
L662[09:32:34] <Barteks2x> or is it
possible to somehow handle additions?
L663[09:32:54] <gigaherz> yeah,
nope.
L664[09:32:59] <gigaherz> the thing
peopleembed
L665[09:33:04] <gigaherz> has to be stable
and never change
L666[09:33:06] <gigaherz> otherwise bad
stuff happens
L667[09:33:37] <Barteks2x> mixin somehow
does some weird magic, that seems to make it work based on what I
saw, but no idea if is' true of how that works
L668[09:34:22] <Barteks2x> what about
"API" that people could embed and relocate?
L669[09:34:33] <Barteks2x> could something
like that work?
L670[09:34:50] ⇦
Quits: srs_bsns (blk@198-48-175-31.cpe.pppoe.ca) (Killed (NickServ
(GHOST command used by
zxc!~blk@198-48-175-31.cpe.pppoe.ca)))
L671[09:34:55]
⇨ Joins: srs_bsns
(~blk@198-48-175-31.cpe.pppoe.ca)
L672[09:35:07] <Barteks2x> that would
probably be limited to util classes
L673[09:36:36]
⇨ Joins: Xilef11 (~xilef11@209.195.101.19)
L674[09:43:42] <Barteks2x> is
"x?" the correct way to match optional x with
regex?
L675[09:43:56] <gigaherz> yes
L676[09:43:59] <gigaherz> "?"
means "0 or 1"
L677[09:44:04] <gigaherz> whereas
"*" means "0 or more"
L678[09:44:09] <gigaherz> and
"+" means "1 or more"
L679[09:44:30] <gigaherz> some dialects of
regex have "{2,7}" or "*{2,7}" for specific
range
L680[09:46:08] <Barteks2x> so I just hope
this will work "-?\\d+\\.-?\\d+\\.-?\\d+\\.3dr"
L681[09:50:28] <Xilef11> is there some
sort of guide for the 1.10.2->1.11.x update?
L682[09:51:51]
⇨ Joins: williewillus
(~williewil@cpe-24-28-24-13.austin.res.rr.com)
L683[09:55:59]
⇨ Joins: Smack (~Smack@563412ad.rev.stofanet.dk)
L684[09:58:54] <PaleoCrafter> mostly it's
the ItemStack changes, Xilef11
L685[09:59:15] <PaleoCrafter> just use
ItemStack.EMPTY instead of null and make sure you don't modify the
contained item directly anywhere :P
L686[10:01:11] <Xilef11> ugh, considering
I have null checks on ItemStacks every 10 lines, this may get
painful
L687[10:01:20] <williewillus> find usages
on null ;p
L688[10:01:26] <williewillus> or I guess
just a find
L689[10:07:29] <GeoDoX> Which Gui class
does someone extend to add slots?
L690[10:09:14] <TechnicianLP>
GuiContainer
L691[10:10:06] <GeoDoX> That's not just
the inventory screen, correct?
L692[10:10:31] <TechnicianLP> yes, you
will have to change the backgroundicon to one with your slots on it
or
L693[10:10:43] <TechnicianLP> have them
drawn manually
L694[10:11:18]
⇨ Joins: CoderPuppy (~cpup@32.218.112.213)
L695[10:11:37] <GeoDoX> how do you get a
slot that the mouse is over?
L696[10:12:02] <TechnicianLP>
GuiContainer.theSlot
L697[10:12:26] ⇦
Quits: cpup (~cpup@32.218.116.181) (Ping timeout: 180
seconds)
L698[10:12:55] <GeoDoX> Is there any way
to tell which mod the GuiContainer is from?
L699[10:13:25] <TechnicianLP> not
really
L700[10:13:46] <Ordinastie> no guarantee
it uses GuIContainer eite
L701[10:13:47] <Ordinastie> either
L702[10:14:10] <GeoDoX> That's what I was
wondering in my first question haha
L703[10:14:35] ⇦
Quits: SparkVGX (~SparkVGX@121.99.203.245) (Quit: This quit message
was sponsored by Pepsi. Just as good as coke, we
promise!)
L704[10:14:54] <GeoDoX> So if they're not
using GuiContainer, is it possible to get the slot that the mouse
is over?
L705[10:15:05]
⇨ Joins: CoolerExtreme
(~CoolerExt@45.249.156.115)
L706[10:15:13] <TechnicianLP> what are you
trying to do?
L707[10:15:32] <GeoDoX> I'm writing a
tooltips mod for inventory slots, it allows authors to basically
explain what a slot, or a group of slots is used for. For example,
in the vanilla furnace, when hovering the bottom slot, it would
display a "Fuel" tooltip.
L708[10:18:06] ⇦
Quits: Cooler (~CoolerExt@2406:5600:59:7e79:7da7:329d:f412:9f8)
(Ping timeout: 206 seconds)
L709[10:18:38] <gigaherz> GeoDoX:
Minecraft.getMinecraft().player.openContainer.inventorySlots
L710[10:18:57] <GeoDoX> AWESOME, ghz
always pulling through
L711[10:19:20] <Ordinastie> no guarantee
it's used :)
L712[10:19:26] <gigaherz> yeah
L713[10:19:31] <GeoDoX> That's true
haha
L714[10:19:35] <gigaherz> but then
again
L715[10:19:44] <gigaherz> if the inventory
isn't a container with slots using the normal system
L716[10:19:53] <gigaherz> it will probably
not work with a mod designed specifically for that
L717[10:20:31] <gigaherz> and if a mod
would haveto implement a custom tooltip help handler
L718[10:20:35] <gigaherz> they would just
do it themselves
L719[10:20:37] <gigaherz> ;P
L720[10:21:07] <Ordinastie> to be fair, in
my case, if you want a tooltip for the slot, you just do
slot.setTooltip :p
L721[10:21:09] <GeoDoX> Is it safe to
assume that the more popular mods use the normal system?
L722[10:21:38] <TechnicianLP> almost all
mods use it ...
L723[10:21:43] <gigaherz> it is safe to
assume that most mods using normal inventories
L724[10:21:45] <gigaherz> use the normal
system
L725[10:22:34] <gigaherz> the fancier the
inventory looks, the higher the chances the author had...
"special needs" and decided to avoid the vanilla
system
L726[10:22:34] <gigaherz> ;P
L728[10:23:09] <gigaherz> ewh
L729[10:23:17] ⇦
Quits: Samario
(~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Ping
timeout: 384 seconds)
L730[10:23:21] <Ordinastie> thank god I'm
not the only one to think that ><
L731[10:23:43] <GeoDoX> Looks fancy ;)
jk
L732[10:24:09] <TechnicianLP> the thing it
produces is fancy ... slots with arbitrary size drawn at
runtime
L733[10:24:13] <gigaherz> that said
L735[10:24:16] <gigaherz> ;P
L737[10:25:26] <gigaherz> Guis do have a
tendency to get ugly when you introduce scrolling and search
L738[10:25:26] <gigaherz> ;P
L740[10:26:01] <Ordinastie> it has 3 tabs
though
L741[10:26:39] <gigaherz> eek
L743[10:26:46] <gigaherz> even my
single-slot generator gui is a mess
L744[10:26:48] <gigaherz> due to the
energy bar
L745[10:26:49] <gigaherz> XD
L746[10:27:20]
⇨ Joins: Hgreb
(~Hgrebnedn@d8D872A6E.access.telenet.be)
L750[10:28:20] <gigaherz> doesn't get
shorter than this ;P
L751[10:28:39] <Ordinastie> well, it has
nothing in it, does it ? ><
L752[10:28:45] <gigaherz> yes,
slots.
L753[10:28:45] <gigaherz> XD
L754[10:28:52] <gigaherz> which are done
internally by GuiContainer
L755[10:29:02] <Ordinastie> I'd have
shorter I think :p
L756[10:29:11] <gigaherz> one background
texture, a couple labels, and all the automatic slots
L757[10:30:11] ⇦
Quits: Hgrebnednav_ (~Hgrebnedn@d8d872a6e.access.telenet.be) (Ping
timeout: 206 seconds)
L758[10:44:39]
⇨ Joins: Brokkoli
(~Brokkoli@p5B23C6BC.dip0.t-ipconnect.de)
L759[10:49:08] <Barteks2x> is it possible
to undo the first commit in git?
L760[10:49:34] <TechnicianLP> have you
pushed the commit?
L761[10:49:37] <Barteks2x> no
L762[10:49:40] <Barteks2x> it's all
local
L763[10:49:52] <TechnicianLP> you can
probably revert+squash
L764[10:50:10] <Barteks2x> I mean
literally remove it, but have the files stay there
L765[10:50:32] <williewillus> if this is
the first commit just remove the git repo and rerun git init
:P
L766[10:50:49] <Barteks2x> so delete
.git?
L767[10:50:53] <williewillus> yeah
L768[10:51:41] <Barteks2x> argh
L769[10:51:46] <Barteks2x> I forgot it
broke git submodule
L770[10:52:01] <gigaherz> git submodules
suck. badly.
L771[10:52:59] <Barteks2x> But I'm stuck
with submodules as long as my library isn't in any maven
repository
L772[10:53:22] <Barteks2x> and I need it
working again. And it has been modified
L773[10:54:32] <Barteks2x> git submodules
would be awesome if it wouldn't be such a big problem every time I
touch them
L774[10:55:06] <gigaherz> and that's why
they suck balls.
L775[10:55:16] <gigaherz> they just don't
quite work right, ever.
L776[10:55:28] <gigaherz> at work
L777[10:55:35] <gigaherz> we used
submodules for managing the source trees
L778[10:55:47] <gigaherz> since the system
is built from multiple independent modules
L779[10:55:50] <gigaherz> that can be
optionally loaded
L780[10:55:54] <gigaherz> so the master
repository
L781[10:55:59] <gigaherz> would reference
each component module
L782[10:56:03] <gigaherz> they gave up on
it
L783[10:56:09] <gigaherz> and switched to
using a script
L784[10:56:11] <Barteks2x> actually, what
is the correct way to remove a submodule that won't cause issues
later?
L785[10:56:14] <gigaherz> so we now do
like
L786[10:56:19] <gigaherz> git clone
blah
L787[10:56:26] <gigaherz>
scripts/clone_all.sh
L788[10:56:44] <gigaherz>
scripts/gitall.sh pull
L789[10:56:50] <gigaherz> etc
L790[10:57:01] <Barteks2x> I need to stop[
using submodule anyway because grgit doesn't like them
L791[10:57:14] <gigaherz> there's a file
or folder inside .git
L792[10:57:17] <gigaherz> and the
.gitmodules
L793[10:57:25] <gigaherz> I usually end up
removing them by hand
L794[10:57:52] <Barteks2x> I thought I had
to do that because I removed it the wrong way...
L795[10:58:23] <Barteks2x> anyway, how can
I get that submodule back?
L796[10:58:31] <gigaherz> I have never
been able to find "theright way"
L797[10:58:31] <Barteks2x> the directory
is there
L798[10:58:42] <Barteks2x> but git doesn't
recognize it as submodule
L799[10:58:50] <gigaherz> not sure that
git will let you add a submodule if the path already exists
L800[10:58:59] <gigaherz> but I have no
idea
L801[10:59:44] <Barteks2x> mv TheSubmodule
../; git whatever; rm -r TheSubmodule; mv ../TheSubmodule ./ would
probably work
L802[11:01:51] ⇦
Quits: Naiten (Naiten@77.35.175.198) (Read error: Connection reset
by peer)
L804[11:05:51]
⇨ Joins: AstralSorcerer
(~AstralSor@rrcs-24-97-96-98.nys.biz.rr.com)
L805[11:05:52] <TechnicianLP> 1.11.2) up
to but excluding
L806[11:06:05] <Xilef11> uh, derp
L807[11:06:10] <williewillus> lol
L808[11:09:59]
⇨ Joins: shadekiller666
(~shadekill@adsl-108-71-39-199.dsl.lsan03.sbcglobal.net)
L809[11:10:42] ⇦
Quits: TangentDelta (~tangentde@c-68-37-224-83.hsd1.mi.comcast.net)
(Remote host closed the connection)
L810[11:15:15] ⇦
Parts: Redrield
(~Redrield@when.will.i.stop.getting.kicked.for.botspam.redrield.com)
(ERC (IRC client for Emacs 25.1.1)))
L811[11:18:06] ⇦
Quits: AstralSorcerer (~AstralSor@rrcs-24-97-96-98.nys.biz.rr.com)
(Ping timeout: 194 seconds)
L812[11:18:38]
⇨ Joins: Ashindigo_
(uid202308@id-202308.hathersage.irccloud.com)
L813[11:21:59] ***
diesieben|away is now known as diesieben07
L814[11:25:46] ⇦
Quits: CoderPuppy (~cpup@32.218.112.213) (Ping timeout: 206
seconds)
L815[11:25:56]
⇨ Joins: cpup (~cpup@32.218.112.213)
L816[11:26:45] <shadekiller666> i have
blocks that place additional blocks in the onBlockPlaced
method
L817[11:27:35] <shadekiller666> this works
for placing the block via the item, but when the block is placed
via /setblock, it only places the block itself, because it doesn't
call onBlockPlaced
L818[11:28:07] <diesieben07> onBlockAdded
is called every time setBlockState is called with your block
L819[11:42:15] ⇦
Quits: Xilef11 (~xilef11@209.195.101.19) (Quit:
Leaving)
L820[11:50:36] ⇦
Quits: cpup (~cpup@32.218.112.213) (Ping timeout: 194
seconds)
L821[11:50:48]
⇨ Joins: cpup (~cpup@32.218.112.213)
L822[12:02:04] <shadekiller666> ok
L823[12:21:15]
⇨ Joins: Samario
(~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L824[12:25:02]
⇨ Joins: bjorguv
(~reidboyce@c-73-83-133-41.hsd1.wa.comcast.net)
L825[12:31:55] ⇦
Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
(Ping timeout: 384 seconds)
L826[12:32:59] ⇦
Quits: primetoxinz (~primetoxi@ip68-107-226-229.hr.hr.cox.net)
(Quit: Leaving)
L827[13:02:49] ⇦
Quits: ThePsionic (~Psi@ip5457f909.direct-adsl.nl) (Read error:
Connection reset by peer)
L828[13:03:54] ***
diesieben07 is now known as diesieben|away
L829[13:04:02] ***
diesieben|away is now known as diesieben07
L830[13:05:07] <shadekiller666> is there a
way to determine if an IBlockState has a property that accepts
EnumFacing values?
L831[13:06:41] ***
Abrar|gone is now known as AbrarSyed
L832[13:08:24] <gigaherz> shadekiller666:
look at the default implementation of rotateBlock
L833[13:08:51] <gigaherz> or
withRotation
L834[13:08:52] <gigaherz> whichever
L835[13:09:23] <gigaherz> or this
L837[13:09:39]
⇨ Joins: Vazkii
(~Vazkii@144.134.37.188.rev.vodafone.pt)
L838[13:09:51] <williewillus> people
should also be implementing the vanilla methods :P
L839[13:09:55] <williewillus>
Block.withRotation/withMirror
L840[13:12:13] ***
diesieben07 is now known as diesieben|away
L841[13:12:21] <shadekiller666>
williewillus, i know, the problem is, i have a block that has Up as
its default facing, and if i want to place it facing north, without
knowing exactly what PropertyDirection/PropertyEnum it uses for its
key, i can't just say "set your facing to north"
L842[13:12:40] <shadekiller666>
withRotation is nice, assuming you're rotating around the Y
axis
L843[13:12:45] <PaleoCrafter> u wot
L844[13:13:12] <gigaherz> shadekiller666:
blocks should face north by default ;P
L845[13:13:36] <gigaherz> I mean
L846[13:13:44] <gigaherz> it's how vanilla
does it, and how the json format works best and such
L847[13:13:57] <gigaherz> and yes
L848[13:14:05] <gigaherz> withRotation is
designed specifically for structures
L849[13:14:12] <gigaherz> so that the
structore can be "faced"
L850[13:14:17] <gigaherz> so it's meant
for rotating around Y
L851[13:14:22] <gigaherz> which means up
won't change
L852[13:14:54] <shadekiller666>
right
L853[13:15:09] <gigaherz> structure*
L854[13:15:10] <shadekiller666> i'm
working on what is essentially an extension of the vanilla
structure system
L855[13:15:24] <shadekiller666> and part
of that extension is the ability to make structures that face
up/down
L856[13:15:29] <gigaherz> heh
L857[13:16:33]
⇨ Joins: McJty
(~jorrit@94-224-154-146.access.telenet.be)
L858[13:16:56] <bjorguv> why do people do
com.yourname.modid?
L859[13:17:04] <williewillus>
convention
L860[13:17:06] <williewillus> and you
don't have to
L861[13:17:13] <williewillus> I find the
com thing stupid so I just do williewillus.modid
L862[13:17:43] <bjorguv> could I just do
modid?
L863[13:17:44] ⇦
Quits: McJty (~jorrit@94-224-154-146.access.telenet.be) (Client
Quit)
L864[13:17:50] <gigaherz> bjorguv: the
convention is
L865[13:17:55] <gigaherz> that you should
use a domain you own
L866[13:17:56] <gigaherz> so like
L867[13:18:04]
⇨ Joins: McJty
(~jorrit@94-224-154-146.access.telenet.be)
L868[13:18:04] <gigaherz> if you had a
website "bjorguv.net"
L869[13:18:15]
⇨ Joins: KnightMiner
(~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L870[13:18:17] <gigaherz> and you host
your mod in "bjorcraft.bjorguv.net"
L871[13:18:21] <shadekiller666> gigaherz,
in that code you linked, is "newState.getPropertyKeys()"
the same thing as "IBlockState.getPropertyNames()"?
L872[13:18:27] <williewillus> yeah
L873[13:18:29] <gigaherz> you *should* use
"net.bjorguv.bjorcraft" as the root package
L874[13:18:30] <williewillus> it got
renamed
L875[13:18:35] <gigaherz> shadekiller666:
it was renamed
L876[13:18:46] <shadekiller666> i'm in
1.10.2
L877[13:18:50] <Ashindigo_> I just add the
com because it looks mildly weird without it
L878[13:18:52] <shadekiller666> so
yes
L879[13:18:57] <gigaherz> not stable_29
though
L880[13:18:58] <gigaherz> ;P
L881[13:19:01] <McJty> com indicates
commercial
L882[13:19:06] <McJty> You might want to
use org instead
L883[13:19:15] <williewillus> or just omit
it if you don't actually have the domain xP
L884[13:19:20] <bjorguv> gigaherz ah
ok
L885[13:19:25] <gigaherz> i use
"gigaherz.mymod.*"
L886[13:19:30] <gigaherz> I don't bother
with the domain
L887[13:19:30] <williewillus> your
username is usually unique enough
L888[13:19:56] <McJty> Me too. There are
not that many McJty's around luckily :-)
L889[13:20:31] <Ashindigo_> Hopefully I'm
the only ashindigo
L890[13:20:51] <TechnicianLP> he says an
has a _ on his name
L891[13:21:18] <TechnicianLP> or is that
one intentional?
L892[13:21:33] <gigaherz> I'm sadly not
the only "gigaherz" in the world
L893[13:21:43] <gigaherz> WHY WOULD OTHER
PEOPLE ALSO CHOSE TO IGNORE THE T?!
L894[13:21:59] <gigaherz> but yeah
L897[13:22:32] <Ashindigo_> Im ingame with
eira on other channels
L898[13:24:04]
⇨ Joins: Savos
(~Savos@CPEf0f24903d453-CMf0f24903d450.cpe.net.cable.rogers.com)
L899[13:27:39]
⇨ Joins: Daomephsta
(~Leviathan@90.22.226.49.dyn.cust.vf.net.nz)
L900[13:31:29]
⇨ Joins: Kaiyouka
(~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L901[13:35:46] <bjorguv> whoever suggested
pahimars tutorials to me tyyy!
L902[13:37:10] <shadekiller666> i wish
Block had a setFacing() method that would return an IBlockstate
with the given facing direction, or return the one that is passed
in as a default
L903[13:37:32] <williewillus> not all
blocks have facing
L904[13:37:46] <shadekiller666> or if the
state actually uses EnumFacing.Axis, it could read the axis of the
one provided and return a proper version
L905[13:37:46] <Ashindigo_> Face it, not
all blocks have facing
L906[13:37:49] <shadekiller666> i
know
L907[13:38:16] <shadekiller666> hence why
it would return the state passed in by default, like
Block.withRotation() and Block.withMirror() do
L908[13:38:22] *
Ashindigo_ makes more bad puns
L909[13:40:16] ⇦
Quits: McJty (~jorrit@94-224-154-146.access.telenet.be) (Quit:
Leaving)
L910[13:44:30] ⇦
Quits: williewillus (~williewil@cpe-24-28-24-13.austin.res.rr.com)
(Quit: Leaving)
L912[13:54:27]
⇨ Joins: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L913[13:58:42]
⇨ Joins: killjoy
(~killjoy@cpe-2606-A000-1118-8158-1423-70B6-FAED-17F6.dyn6.twc.com)
L914[14:07:07] <bjorguv> if class x
implements y and class z extends x does class z also implement
y?
L915[14:07:22] <killjoy> yes
L916[14:07:39] <TechnicianLP> on which
format is th Quat4f in TRSRTransformation?
L917[14:07:48] <gigaherz> it's a
quaternion
L918[14:07:57] <gigaherz> it's in ...
quaternion format.
L919[14:07:57] <gigaherz> XD
L920[14:08:09] <TechnicianLP> so smae as
Gl.rotate?
L921[14:08:14] <gigaherz> nope
L922[14:08:28] <gigaherz> but resonably
close
L923[14:08:39] *
TechnicianLP goes off looking up what a quaternion is
L924[14:08:43]
⇨ Joins: Flaeme
(sid36625@id-36625.ealing.irccloud.com)
L925[14:09:04] <gigaherz> happy
mindblow
L926[14:09:08] <Daomephsta> Sorry if I'm
bothering anyone, but are my messages visible? They're a different
colour, and I've been unable to find out why
L927[14:09:22] <TechnicianLP> no messages
here
L929[14:09:39] <gigaherz> Daomephsta:
maybe because they are yours?
L930[14:09:47] <Daomephsta> That's what I
figured
L931[14:09:54] <gigaherz> I missed your
line
L932[14:09:54] <gigaherz> sec
L933[14:09:57] <Daomephsta> Just not used
to IRC
L934[14:09:57] ⇦
Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping
timeout: 384 seconds)
L936[14:10:39] <gigaherz> this was working
for me
L937[14:11:07] <shadekiller666> gigaherz,
glRotate and quaternions aren't close at all :P
L938[14:11:10] <TechnicianLP> how invented
that complicated thing
L939[14:11:14] <TechnicianLP> who*
L940[14:11:26] <gigaherz> shadekiller666:
actually
L941[14:11:30] <gigaherz> there's a very
simply formula
L942[14:11:35] <gigaherz> for converting
axis-angle to quaternion
L943[14:11:58] <gigaherz> which makes them
closer than I thought initially
L944[14:11:58] <gigaherz> ;p
L945[14:12:10] <gigaherz> TechnicianLP:
very clever mathematicians
L946[14:12:14] <gigaherz> just keep this
in mind
L947[14:12:14] <gigaherz> qx = ax *
sin(angle/2)
L948[14:12:14] <gigaherz> qy = ay *
sin(angle/2)
L949[14:12:14] <gigaherz> qz = az *
sin(angle/2)
L950[14:12:14] <gigaherz> qw =
cos(angle/2)
L951[14:12:29] <gigaherz> where ax must be
normalized to a unit vector
L952[14:12:41] <gigaherz> and you can
construct your quaternions ;P
L953[14:12:46] <TechnicianLP> thats why i
dont like mathematicians ... they overcomplicate everything
L954[14:12:56] <gigaherz> that's not maths
problems
L955[14:13:06] <gigaherz> quaternions
simplify a LOT the maths involved in doing 3D rotations
L956[14:13:20] <gigaherz> and are much
cheaper to compute than a 3x3 matrix multiplication
L957[14:13:28] <TechnicianLP> angle in
degrees or (the other thing i dont know th enlish name of)
L958[14:13:43] <gigaherz> Math.sin/cos
takes radians
L959[14:13:44] <Daomephsta> radians?
L960[14:14:10] <gigaherz> you can use
Math.deg2rad or Math.toRadians
L961[14:14:10] <shadekiller666>
quaternions make things way easier, because you can just multiply
things with them, yes the actual values in a Quaternion seem
arbitrary
L962[14:14:14] <gigaherz> whichever one is
the one java has
L963[14:14:43] <shadekiller666>
Daomephsta, PI radians = 180 degrees
L964[14:14:57] <shadekiller666> PI/2
radians = 90 degrees
L965[14:15:03] <gigaherz> tau radians =
360 :D
L966[14:15:07] <Daomephsta> I understand
radians
L967[14:15:49] <Daomephsta> I was replying
to TechnicianLP, suggesting that the other angle unit he didn't
know the word for was radians
L968[14:15:56] <shadekiller666>
quaternions are basically 4D imaginary numbers
L969[14:16:02] <shadekiller666> oh
L970[14:16:42] <TechnicianLP>
quatFromXYZDegrees is a nice function in TRSRTransformation
L971[14:18:25] <gigaherz> that's not
axis-angle, though
L972[14:18:28] <gigaherz> that's from
euler angles
L973[14:18:33]
⇨ Joins: Doty1154
(~Doty1154@2601:648:8000:134f:cdb3:c2e8:7ee8:76df)
L974[14:19:11] ***
diesieben|away is now known as diesieben07
L975[14:19:15] <gigaherz> but if that
works for you ;p
L976[14:19:30] <shadekiller666> in a TESR,
when iterating over the Collection of BakedQuads given by
IBakedModel.getQuads(), is it better to do so in a standard
for-each loop, or to do it in Collection.forEach(quad ->
{})?
L977[14:19:52] <TechnicianLP> i think it
does
L978[14:20:06] <gigaherz> shadekiller666:
it's effectively the same
L979[14:20:07] <Daomephsta> shadekiller66:
IIRC the performance of both is the same
L980[14:20:15] <shadekiller666> ok
L981[14:20:24] <gigaherz> the lambda may
be a negligible bit slower
L982[14:20:45] <diesieben07> it
depends.
L983[14:20:48] <shadekiller666> so if
there is a difference in optimization its negligible?
L984[14:20:57] <diesieben07> if the lambda
is capturing or not
L985[14:21:03] <gigaherz> it's too small
for you to care about
L986[14:21:05] <gigaherz> if there is
any.
L987[14:21:14] <diesieben07> and if the
difference is neglible or not depends on your use case.
L988[14:21:16] <LexMobile> They are
nowhere near the same...
L989[14:21:39] <diesieben07> a
non-capturing lambda might even be faster than a foreach loop, if
forEach gets inlined
L990[14:21:43] <diesieben07> depends on
the type of collection though
L991[14:21:55] <diesieben07> a capturing
lambda is probably the same, maybe a bit worse
L993[14:22:07] <shadekiller666> getQuads()
returns a List<BakedQuad>
L994[14:22:18] <diesieben07> depends on
the type of list
L995[14:22:32] <diesieben07> if it's an
ArrayList and the lambda is non-capturing there is exactly 0 object
allocation going on
L996[14:22:41] <diesieben07> where as with
foreach it has to allocate the iterator
L997[14:22:41] <LexMobile> For each won't
get inlined and when it comes to a simple list a normal few is
better
L998[14:22:51] <diesieben07> why would it
not get inlined?
L999[14:22:56] <diesieben07> if it's
always an ArrayList...
L1000[14:23:04] <LexMobile> I e never
seen it
L1001[14:23:22] <LexMobile> And depending
how you do it it may not know it's always a list
L1002[14:23:29] <diesieben07> true
L1003[14:23:58] <shadekiller666>
OBJLoader returns a
Collections.synchronizedList(Lists.newArrayList(this.quads))
L1004[14:24:13] <Daomephsta> Quick
question, where do you learn about JVM behaviour like inlining? The
JVM specs?
L1005[14:24:34] <killjoy> everything is
documented somehwere
L1006[14:24:44] <diesieben07> the specs
and there are some nice talks
L1007[14:24:59] <diesieben07> if you want
i can link you some
L1008[14:25:01] <killjoy> there's
javadocs, mailing lists, the official documentation
L1009[14:25:15] <killjoy> though mailing
lists are mainly used for java 9 stuff right now
L1010[14:25:21] <Daomephsta> diesieben07:
That'd be great
L1011[14:25:31] <diesieben07> depends on
your current knowledge though
L1012[14:26:14] <Daomephsta> Knowledge of
bytecode needed I assume?
L1013[14:26:43] <diesieben07> that for
sure
L1014[14:27:00] <diesieben07> the jvmls
talks are very interesting
L1015[14:27:09] <LexMobile> Always take
specs and docs with a grain of salt when it comes to the
jitter
L1016[14:27:24] <diesieben07> yeah the
jit is a giant evil beast
L1017[14:27:24] <Daomephsta>
jitter?
L1018[14:27:33] <diesieben07> just in
time compiler
L1019[14:27:36] <Daomephsta> Oh
L1020[14:27:46] <LexMobile> Most of what
I say comes from years of extensive testing on hundreds of
different platforms which is why it contradicts the docs
L1021[14:27:47] <diesieben07> the thing
that makes java fast :D
L1022[14:28:32] <LexMobile> The basic
rule is, if you ABSOLUTELY require something fast write it
fast
L1023[14:28:37] ***
fry is now known as fry|sleep
L1024[14:28:37] <LexMobile> Don't rely on
the jitter
L1025[14:28:46] <killjoy> That reminds
me. They're optimizing the java 9 compiler to make the .class files
faster
L1026[14:28:50] <LexMobile> If you don't
care, then write it however you feel
L1027[14:28:52] <shadekiller666> the
lambda that i would have in the .forEach is: quad ->
LightUtil.renderQuadColor(buffer, quad, 0xFFFFFFFF)
L1028[14:29:15] <LexMobile> Do a normal
for
L1029[14:29:28] <shadekiller666> ok
L1030[14:29:51] <shadekiller666> what
makes a normal for-each better in this situation?
L1031[14:29:58] <diesieben07> kill: that
sounds very un-java like... they've always said they won't do
"we've done this nice optimization, but you have to
recompile"
L1032[14:30:23] <LexMobile> Simpler to
understand, and faster then the method invoke if the jitter can't
decide if it's inlineable or not
L1033[14:30:44] <diesieben07> well, a
foreach still does method invocation
L1034[14:30:53] <diesieben07> quite a
lot, in fact.
L1035[14:30:56] <LexMobile> Only count
and get
L1036[14:31:07] <LexMobile> Which are
super fast and more likely to be inlined
L1037[14:31:15] <diesieben07> if it's a
List then it calls .iterator and then .hasNext and .next
L1038[14:31:21] <LexMobile> Nope
L1039[14:31:25] <diesieben07> uhm..
yeah
L1040[14:31:39] <LexMobile> It's an array
list so it treats it like an array
L1041[14:31:46] <diesieben07> no it
doesn't :P
L1042[14:31:51] <LexMobile> This is
computed at compile time
L1043[14:31:52] <diesieben07> it would be
nice if it did...
L1044[14:31:53] <LexMobile> Go
check
L1045[14:32:13] <LexMobile> Not exactly
like an array but doesn't use a iterative
L1046[14:32:55] <LexMobile> If it didn't
do what I'm talking about then Minecraft's code would crash the
decompile
L1047[14:33:04] <LexMobile> Cuz that's
how I wrote it :)
L1048[14:33:34] <diesieben07> checking
right now... because this sounds ... interesting
L1049[14:34:13] <LexMobile> Iirc (it may
be only ArrayList, but I think it's all lists)
L1050[14:34:29] <diesieben07> that would
be terrible for LinkedList...
L1051[14:34:38] <LexMobile> For(Foo bar :
buzz){}
L1052[14:34:58] <LexMobile> Is syntax
sugar for:
L1053[14:35:03] <quadraxis> it'd be
implements RandomAccess i'd assume
L1054[14:35:30] <gigaherz> seems like
it
L1056[14:35:40] <gigaherz> the docs say
RandomAccess allows the compiler to generate an indexed for
L1057[14:35:44] <gigaherz> instead of
iterator loop
L1059[14:36:08] <LexMobile> For(int x =
0; x < buzz.count(); x++){ Foo bar = buzz.get(x); }
L1060[14:36:28] <diesieben07> it would be
cool.... but it doesn't do it. unless i am doing something
wrong
L1061[14:36:36] <LexMobile> Wtf.. what
compiler you using?
L1062[14:36:41] <diesieben07> javac
L1063[14:37:00] <LexMobile> What
district
L1064[14:37:05] <LexMobile> Distro
L1065[14:37:18] <diesieben07> oracle's
jdk 8
L1066[14:37:21]
⇨ Joins: CoolerExtreme__
(~CoolerExt@45.249.156.115)
L1067[14:37:25] <diesieben07> latest, i
think 112 or whatever
L1068[14:37:35] <diesieben07> 121
L1069[14:37:53] <LexMobile> Interesting
I'll put that on my to check list when I get home I have tested j8
on my machine and it works as I described
L1070[14:37:53] <diesieben07> i'll try it
on the command line just to eb sure
L1071[14:38:24] <diesieben07> would be
news to me, and i have looked at this bytecode multiple times
before...
L1072[14:38:29] <diesieben07> even on
java 7 and 6
L1073[14:38:55] <LexMobile> As have I
again this is research I've done while fixing fernflower
L1074[14:39:01] <fry|sleep> it might be
how foreach for ordinary arrays is compiled
L1075[14:39:02] <diesieben07> i believe
you
L1076[14:39:08] <diesieben07> yeah thats
what i am thinking...
L1077[14:39:20] <diesieben07> because
that compiles to just a normal indexed for
L1078[14:39:24] <LexMobile> Tested on OS
X windows and Linux all running j6,7&8
L1079[14:39:56] <LexMobile> I know for a
fact ordinary arrays are just indexed but lists should be
L1080[14:40:14] <LexMobile> Then again
there may be a concurrence issue
L1082[14:40:52] <LexMobile> Never trust
docs
L1083[14:41:59] <fry|sleep> docs are a
good starting point though :P
L1084[14:42:33] <PaleoCrafter> yeah, and
it looks like RandomAccess is just for algorithms to check, not
necessarily the compiler
L1085[14:42:39] <PaleoCrafter> Guava
appears to use it in some places for optimisations
L1086[14:42:40]
⇨ Joins: primetoxinz
(~primetoxi@ip68-107-226-229.hr.hr.cox.net)
L1087[14:43:03] <PaleoCrafter> same for
Collections.binarySearch, apparently
L1088[14:43:08] <diesieben07> it would
also go very much against their design choice to leave javac simple
and put the complex optimizations into the jvm
L1089[14:43:23]
⇦ Quits: CoolerExtreme (~CoolerExt@45.249.156.115) (Ping
timeout: 384 seconds)
L1090[14:43:35] <diesieben07> tested
again from the command line... definitely generates an iterator
loop
L1091[14:43:47] <LexMobile> Odd
indeed
L1092[14:44:16] <LexMobile> In phone so
can't do any tests myself
L1093[14:44:26] <diesieben07> you know
what... i bet mojang's optimizer does something like this.
L1094[14:44:35] <diesieben07> which would
explain why you have seen it in bytecode
L1095[14:44:57] <LexMobile> Maybe don't
remember proguard doing it
L1096[14:45:12] <LexMobile> Either
way
L1097[14:45:35] <LexMobile> Guess our
fernflower changes handle both without question
L1098[14:45:41] <LexMobile> Which is nice
to know
L1099[14:46:03] <diesieben07> yes.
L1101[14:47:08] <PaleoCrafter> could be
under code/simplification/advanced though
L1102[14:48:17]
⇦ Quits: KnightMiner
(~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping
timeout: 206 seconds)
L1103[14:48:25] <illy> boop o/
L1104[14:50:26] <Daomephsta> Anyone mind
helping me with some issues with RegistryBuilder?
L1105[14:50:34] <PaleoCrafter> don't ask
to ask
L1107[14:51:50] <LexMobile> Interesting
what's null?
L1108[14:52:21]
⇦ Quits: Hunterz (~hunterz@62.182.234.189) (Remote host
closed the connection)
L1109[14:52:27] <Daomephsta> I haven't
been able to figure out exactly what is null
L1110[14:52:50] <LexMobile> Break points
are your friend
L1111[14:53:17] <Daomephsta> I did that,
couldn't figure it out. I'll try again though
L1112[14:55:26] <diesieben07> the only
thing that can be null in makeDelegate would be the result of
getRegistry, meaning the registry doesn't exist
L1113[14:55:45] <diesieben07> can you
show your CommonProxy?
L1114[14:56:11] <diesieben07> or
rather...
L1115[14:56:34] <diesieben07> no, yeah
the Commonproxy
L1117[14:58:30] <Daomephsta> It just
calls static init methods of other classes
L1118[14:58:55] <diesieben07> yeah its
the VanillaComponents thing then
L1119[14:59:18] <Daomephsta> I've just
added that to the gist as well
L1120[14:59:28] <diesieben07> my
suspicion is that since you initialize the registry in a static
initializer the registry is not actually initialized when you try
to construct an object that belongs to the registry
L1121[14:59:51] <diesieben07> you should
not be creating registries in a static initializer, use
RegistryEvent.NewRegistry
L1122[15:00:01] <Daomephsta> Aah
L1123[15:00:42] <Daomephsta> There are no
javadocs, all I had was the registries Forge already had.
L1124[15:01:19] <Daomephsta> I guess I'll
write up this conversation later
L1125[15:01:43] <diesieben07> feel free
to contribute to the documentation
L1126[15:03:37] <Daomephsta> That's my
intent
L1127[15:03:53]
⇦ Quits: myrrlyn
(~myrrlyn@2602:306:ccf3:9480:325a:3aff:fe47:ca11) (Remote host
closed the connection)
L1128[15:09:05] <Daomephsta> diesbien07:
It works now. Thank you very much for your help.
L1129[15:09:27]
⇦ Quits: Daomephsta
(~Leviathan@90.22.226.49.dyn.cust.vf.net.nz) (Quit:
Leaving)
L1130[15:13:54]
⇦ Quits: Hgreb (~Hgrebnedn@d8D872A6E.access.telenet.be) (Ping
timeout: 206 seconds)
L1131[15:20:04] <TechnicianLP> who wrote
that method: Matrix4f getMatrix4d()
L1132[15:20:36] <TechnicianLP> !gm
getMatrix4d
L1133[15:21:47] <PaleoCrafter> who'd have
though, sp614x xD
L1134[15:21:57] <diesieben07> mr.
optifine himself.
L1135[15:22:18]
⇨ Joins: immibis
(~chatzilla@125-237-220-104.jetstream.xtra.co.nz)
L1136[15:23:56] <TechnicianLP> so i i
have the quaternion (0,sin(pi/2),0,cos(pi/2)) that shoul rotate it
on the y-axis ... but why does it flip top and bottom?
L1137[15:36:13]
⇨ Joins: Falconerd
(~falconerd@ppp118-209-74-141.bras1.mel11.internode.on.net)
L1138[15:36:21]
⇨ Joins: ThePsionic
(~Psi@ip5457f909.direct-adsl.nl)
L1139[15:36:26] <Falconerd> mornin'
L1140[15:36:39]
⇦ Quits: Jezza (~Jezza@92.206.161.17) (Ping timeout: 384
seconds)
L1141[15:37:36]
⇨ Joins: Xiphirx (~xiphirx@tucana.whatbox.ca)
L1142[15:46:34] <TechnicianLP> ok i dont
get it ... lets make some more jsons instead :(
L1143[15:47:19] <PaleoCrafter> you could
use utilities from TRSRTransformation, TechnicianLP :P
L1144[15:47:52] <TechnicianLP> well but
how does the quaternin flip it on y? i should only rotate on that
axis
L1145[15:48:22] <PaleoCrafter> dunno, I
don't understand Quats and hence use the utilities to convert euler
angles to a quat :P
L1147[15:50:33] <PaleoCrafter> try using
TRSRTransformation.quatFromXYZ :P
L1148[15:51:24] <PaleoCrafter> looks like
you'd need to initialise the quat to (0, 0, 0, 1) for your code to
work :P
L1149[15:56:01] <TechnicianLP> even using
that method the models is still lit from underneath if i turn it 90
degrees; if i turn it 180 degrees its ok again (except one
quad)
L1150[15:56:32] <PaleoCrafter> mind
taking a picture?
L1152[16:00:25] <TechnicianLP> totally
broken texture atm .. but
L1153[16:00:34] <TechnicianLP> too lazy
to fix it
L1155[16:02:58] <TechnicianLP>
metodhanler is in the message class and has a reference to
clientside class
L1156[16:03:14]
⇦ Quits: fivestang (fivestang@shell.xshellz.com) (Ping
timeout: 194 seconds)
L1157[16:03:46] <TechnicianLP>
messagehandler*
L1158[16:04:08] <shadekiller666> :/
L1159[16:04:24] <shadekiller666> i wish
java had preprocessor directives...
L1160[16:04:52] <gigaherz> conditional
compilation would be nice
L1161[16:05:01] <gigaherz> even if it's
like C# that just supports
L1162[16:05:04] <gigaherz> #define
X
L1163[16:05:07] <gigaherz> #if X
L1164[16:05:09] <gigaherz> #else
L1165[16:05:10] <gigaherz> #endif
L1166[16:05:16] <gigaherz> yo ucan't give
"X" a value
L1167[16:05:40] <PaleoCrafter> wouldn't
really be helpful here, though, unless you want to be a terrible
person and release separate client and server jars
L1168[16:05:47] <shadekiller666> #if
Side.CLIENT <register renders> #endif
L1169[16:06:44] <TechnicianLP> stupid
model!
L1170[16:07:19]
⇨ Joins: TechnicianLP2
(~Technicia@p4FE5614B.dip0.t-ipconnect.de)
L1171[16:07:19] <gigaherz>
shadekiller666: that wouldn't work ;P
L1172[16:07:28] <PaleoCrafter> see my
statement :P
L1173[16:07:47] <gigaherz> @SideOnly is
ugly enough kthx ;p
L1174[16:08:03] <gigaherz> if you REALLY
REALLY want to have all the code for a block/item in the same
class
L1175[16:08:06] <gigaherz> then you can
just do like
L1176[16:08:10]
⇨ Joins: fivestang
(~fivestang@shell.xshellz.com)
L1177[16:08:20] <gigaherz>
proxy.registerRendering(this);
L1178[16:08:44]
⇦ Quits: iari (~iari___@tyaralin.shadowdrake.eu) (Quit:
Leaving)
L1179[16:09:10]
⇨ Joins: Kzitold (webchat@166.137.14.127)
L1180[16:09:16]
⇨ Joins: KnightMiner
(~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L1181[16:09:21] <gigaherz> reading up, Is
ee that your issue is with client stuff in message handlers
L1182[16:09:21]
⇦ Parts: Xiphirx (~xiphirx@tucana.whatbox.ca)
(Leaving))
L1183[16:09:44] <shadekiller666> yep, i
thought it was normal to stick the handlers inside the packet
class
L1184[16:09:49] <PaleoCrafter> hm...
what'd be an appropriate icon for "version history"? a
clock or calendar?
L1185[16:09:51] <gigaherz> it is
L1186[16:09:54] <gigaherz> but then the
handler can do like
L1187[16:10:02] <gigaherz>
MyMod.proxy.handleTheMessage(this)
L1188[16:10:07] <gigaherz> to avoid
loading errors
L1189[16:10:32] <gigaherz> example:
L1191[16:10:34] <shadekiller666> because
things can't be easy and concise
L1192[16:10:34] <PaleoCrafter> could also
make your own "SimpleNetworkWrapper" and separate the
handler from the actual packet
L1194[16:10:48] <PaleoCrafter> and then
only register the handler on the required side
L1195[16:10:50] <gigaherz>
shadekiller666: blame mojang for using an optimizing
obfuscator
L1196[16:10:50] <gigaherz> ;P
L1197[16:11:09] <PaleoCrafter> well,
bjorguv, something's null :P
L1199[16:11:32] <shadekiller666>
optimizing in what sense? that its faster? or that its more
efficient at being a pain in the ass?
L1200[16:11:34] <bjorguv> which line do I
look at?
L1201[16:11:43] <gigaherz> in the sense
that the obfuscator takes care of removing unused code
L1202[16:11:47] <PaleoCrafter> make sure
non-primitive fields are initialised in your config class
L1203[16:11:55] <gigaherz> which includes
removing client-only classes and methods from the server jar
L1204[16:12:10] <gigaherz> among other
things
L1205[16:12:26] <PaleoCrafter> the
optimisation makes startup marginally faster
L1206[16:12:40] <quadraxis> it deletes
everything not used by Mojang
L1207[16:12:45] <gigaherz> okay so
L1208[16:12:47] <gigaherz> wtf,
mozilla
L1209[16:12:54] <gigaherz> the
"moz://a" part, I liked
L1210[16:12:56] <shadekiller666> which is
then overridden by the fact that it still loads all of the
resources twice PaleoCrafter
L1212[16:13:08] <gigaherz> this cacophony
of colors, I do not.
L1213[16:13:10] <PaleoCrafter> the server
doesn't load any resources, so nope :P
L1214[16:13:29] <PaleoCrafter> and the
"load stuff twice" partially is a Forge thing,
iirc?
L1215[16:13:34] <gigaherz> it is
L1216[16:13:41] <gigaherz> but the first
load isn't actually loading much
L1217[16:13:43] <gigaherz> from what I
heard
L1218[16:14:03]
⇦ Quits: TechnicianLP
(~Technicia@p4FE5614B.dip0.t-ipconnect.de) (Ping timeout: 384
seconds)
L1219[16:14:21] <PaleoCrafter> yeah, it's
reduced to a minimum
L1221[16:15:05] <PaleoCrafter> no, why
would it? :P
L1222[16:15:22] <PaleoCrafter> look at
ConfigHandler:33
L1223[16:15:38] <PaleoCrafter> I didn't
look at the package and assumed it was Forge's handler and you were
just using the Config annotation
L1224[16:16:04] <PaleoCrafter> but it
apparently is yours and hence you just pass null somewhere in your
code :P
L1225[16:16:09]
⇦ Quits: fivestang (~fivestang@shell.xshellz.com) (Read
error: Connection reset by peer)
L1226[16:16:29]
⇦ Quits: Kzitold (webchat@166.137.14.127) (Ping timeout: 180
seconds)
L1227[16:17:14] <shadekiller666> heres a
question
L1228[16:17:50] <shadekiller666> if the
client-side packet handlers and the server-side packet handlers
need to be separate, how does one register the damned things with
the proper "discriminator" values
L1229[16:18:20] <PaleoCrafter> you don't
register them separately, you only delegate the handling :P
L1230[16:18:59] <PaleoCrafter> or you
separate the handler registration from the packets (by way of a
copy of SimpleNetworkWrapper or a wholly custom Netty
interface)
L1231[16:19:00] <shadekiller666> and
gigaherz, that idea of having the handler defer back to the proxy
for handling feels like it negates the point of having the handler
be its own thing in the first place :P
L1232[16:19:15]
⇦ Quits: Samario
(~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Read
error: Connection reset by peer)
L1233[16:19:30] <PaleoCrafter> the
handler technically could be a method reference to a proxy method,
so :P
L1234[16:21:33] <shadekiller666> how so
PaleoCrafter
L1235[16:21:41] <gigaherz> it's a
single-method interface
L1236[16:21:47] <gigaherz> so the lambda
system applies
L1237[16:21:50] <gigaherz> so you could
use
L1238[16:21:50] <illy> gigaherz: because
of reasons "moz://a" tries to open an application
L1239[16:22:05] <PaleoCrafter> a SAM
type, to keep it as general as possible :P
L1240[16:22:05] <gigaherz>
proxy::handleMessage in the packet registration
L1241[16:22:10] <gigaherz> illy:
hah
L1242[16:22:16] <gigaherz> well it IS a
valid URL
L1244[16:22:29] <gigaherz>
"moz" protocol, path /a
L1245[16:22:39] <PaleoCrafter>
presumably, configuration is null ._.
L1246[16:22:44] <PaleoCrafter> use your
brain, dammit :P
L1247[16:23:05] <shadekiller666> is it
possible to make one proxy method to handle all of the
messages?
L1248[16:23:22] <PaleoCrafter> *that*
defies its purpose :P
L1249[16:23:38] <gigaherz> uhm
L1250[16:23:50] <gigaherz> given that the
parameter of the method is the message class, no
L1251[16:23:57] <gigaherz> it will handle
all of the messages of one class
L1252[16:24:01] <gigaherz> but not ALL of
them
L1253[16:24:08] <bjorguv> wait should I
delete my current config?
L1254[16:24:09] <shadekiller666> of
course not...
L1255[16:24:22] <gigaherz> the whole
point of SimpleNetworkWrapper is that it does the discriminant for
you
L1256[16:24:24] <gigaherz> ;P
L1257[16:24:35] <PaleoCrafter> we don'T
know your code, bjorguv, but I'd guess that you never initialise
the configuration field
L1261[16:27:01] <PaleoCrafter> ...
L1262[16:27:13] <PaleoCrafter> please
learn Java before attempting to write a mod, bjorguv
L1263[16:27:21] <bjorguv> loool
L1264[16:27:53] <bjorguv> good advice
ty
L1265[16:28:21] <PaleoCrafter> it *is*
the *best* advice I could possible give you at this moment :P
L1266[16:28:29] <shadekiller666> i don't
suppose that there would be a way of safely obtaining a reference
to World via a method in ClientProxy?
L1267[16:28:38] <shadekiller666> or
CommonProxy
L1268[16:28:58] <shadekiller666>
ClientProxy can just return Minecraft.getMinecraft().theWorld
L1269[16:29:11] <bjorguv> why can’t
someone just help an illiterate person out all I need is the
fix
L1270[16:29:14] <shadekiller666> what
would the CommonProxy version be?
L1271[16:29:16] <PaleoCrafter> why won't
you just follow one of the solutions proposed here?
L1272[16:29:33] <PaleoCrafter> bjorguv,
because you won't learn shit if people just throw fixed code at
you
L1273[16:30:17] <PaleoCrafter>
"problem solving skills" isn't synonymous to "let
other people fix your shit" :P
L1274[16:30:24] <PaleoCrafter> there is
none, shadekiller666
L1275[16:30:46] <PaleoCrafter> although
you can acquire a player instance through the context
L1276[16:31:24] <gigaherz>
shadekiller666: the client only has one world, but the server has
many
L1278[16:31:43] <PaleoCrafter> like you
could have done when I linked my example :P
L1280[16:32:17] <gigaherz> this is how I
do server-side packet handlers
L1281[16:32:54] <PaleoCrafter>
<PaleoCrafter> hm... what'd be an appropriate icon for
"version history"? a clock or calendar?
L1282[16:33:04]
⇨ Joins: Mogul
(~mogul@ip-178-202-100-86.hsi09.unitymediagroup.de)
L1283[16:33:12] <Mogul> Ahoihoi
L1284[16:33:18] <gigaherz> hmmmm
L1285[16:33:22] <gigaherz> I'd say a
calendar
L1286[16:33:31] <gigaherz> or maybe a
hourglass
L1287[16:33:46] <gigaherz> or a book with
a hourglass icon in it
L1288[16:34:11] <PaleoCrafter> my iconset
doesn't appear to include an hourglass, so calendar it is xD
L1289[16:34:22] <shadekiller666> i don't
suppose ctx.getServerHandler().playerEntity works client-side
L1290[16:34:29] <shadekiller666> because
why would it
L1291[16:34:49] <gigaherz> nope
L1292[16:35:14] <bjorguv> thanks I
appreciate the disdainful life advice
L1293[16:35:16] <shadekiller666> and they
didn't bother putting one in getClientHandler()
L1294[16:35:39] <gigaherz> because it's
already in Minecraft.getMinecraft ;P
L1295[16:35:43] <gigaherz> so why would
they
L1296[16:35:44] <shadekiller666> the
thing i hate most about the minecraft code base is the fact that
everything is so spread out over 18 different classes
L1297[16:36:51] <gigaherz> if everything
was in one single place, the code would be unworkable
L1298[16:37:07] <shadekiller666> you
can't just have one class where all of the things related to that
class happen
L1299[16:37:17] <gigaherz> you
could
L1300[16:37:22] <shadekiller666> its
unworkable when its spread out so damn much
L1301[16:37:30] <gigaherz> it's
unworkable in both cases
L1302[16:37:30] <PaleoCrafter> it's not
*that* spread out :P
L1303[16:37:40] <gigaherz> a middle
ground is where it's best
L1304[16:37:56] <gigaherz> Minecraft is
quite middle-groundish
L1305[16:37:58] <gigaherz> overall
L1306[16:37:59] <PaleoCrafter> for most
stuff, everything's pretty close together
L1307[16:38:19] <gigaherz> IMO, it's a
goodthing
L1308[16:38:24] <gigaherz> that the
rendering is split away from the logic
L1309[16:38:29] <gigaherz> that allows
the server code to be cleaner
L1310[16:38:37] <shadekiller666>
rendering should always be split from logic
L1311[16:38:58] <shadekiller666> thats
not what i'm complaining about
L1312[16:39:35] <gigaherz> all the quirks
you are complaining about, are consequences of the fact that the
server jar is physically missing client-only stuff
L1313[16:39:50] <gigaherz> forge does its
best to make the issue bearable
L1314[16:40:01]
⇦ Quits: Noppes (~Noppes@ip56530f2e.direct-adsl.nl) (Read
error: Connection reset by peer)
L1315[16:40:04] <shadekiller666> i was
hoping i could keep my packet handling simple... but i guess i now
have to copy an entire api >:(
L1316[16:40:26]
⇦ Quits: KnightMiner
(~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Ping
timeout: 180 seconds)
L1317[16:40:34] <PaleoCrafter> you could
PR Forge to change the simpleimpl to have the handling split from
the data :P
L1318[16:40:39] <Mogul> Guys, can you
recommend a simple tutorial for creating custom blocks in the most
recent versions of MC? I'm not sure when last there have been
changes to the way blocks are registered, so perhaps it works the
same from 1.9.4 onwards.
L1319[16:40:46]
⇨ Joins: Xiphirx (~xiphirx@tucana.whatbox.ca)
L1320[16:40:49] <Mogul> In any way I have
been trying to implement a custom tree log and it's not working as
expected in several ways. So I've looked for examples and tutorials
and changed my code a dozen times and now I'm just confused as to
how this should be done.
L1321[16:41:10] <gigaherz> Mogul: it
MOSTLY works the same in 1.9.4 onward
L1322[16:41:16] <Xiphirx> Is there
something special I need to do to include Gson as a dependency for
my plugin? I'm hitting a `NoSuchMethod` error within Gson
itself...
L1323[16:41:19] <gigaherz> the only
difference is 1.10.2 added the new registry events
L1324[16:41:22] <gigaherz> that are
optional to use
L1325[16:41:48] <gigaherz> Xiphirx: if
you use the gson that comes included with minecraft, no
L1326[16:41:48] <Mogul> Well, I had seen
them mentioned in the readthedocs, but they didn't seem to work
with the most recent 1.11 version.
L1327[16:41:59] <Mogul> Guess I have done
it the wrong way...
L1328[16:42:09] <Xiphirx> gigaherz would
you happen to know what version of gson comes with minecraft?
L1330[16:42:18] <gigaherz> feel free to
check the link
L1331[16:42:21] <gigaherz> it's the
simplest mod I have
L1332[16:42:34] <gigaherz> Xiphirx: are
you not using the mod development kit?
L1333[16:42:43] <Mogul> Thx, I'll have a
look
L1334[16:42:47] <Xiphirx> gigaherz, I
am
L1335[16:43:28] <gigaherz> then you
should be able to see in eclipse/IDEA
L1336[16:43:35] <gigaherz> that there's a
referenced library
L1337[16:43:46] <gigaherz>
"com.google.code.gson:2.2.4"
L1338[16:43:52] <Xiphirx> it seems like I
compiled against a newer gson
L1339[16:43:54] <Xiphirx> yup
L1340[16:43:56] <Xiphirx> 2.80
L1341[16:43:57] <Xiphirx> lol
L1342[16:45:09] <Xiphirx> hmm
L1343[16:45:52]
⇨ Joins: sinkillerj
(~sinkiller@nc-67-232-15-221.dhcp.embarqhsd.net)
L1344[16:46:58] <Xiphirx> and I see the
problem... a separate dependency requires gson 2.4+
L1345[16:48:08] <gigaherz> welp, that's a
problem
L1346[16:48:16] <Xiphirx> sigh
L1347[16:48:19] <shadekiller666> how does
one schedule a task server-side?
Minecraft.getMinecraft().addScheduledTask() works for the
client
L1348[16:48:20] <gigaherz> can you
somehow shade/rename the other dependency so they don't
collide?
L1349[16:48:26] <Waterpicker> Are there
advantages for a mod developer using structure block generation
over a scheamtic?
L1350[16:48:30] <Xiphirx> gigaherz how
would I go about that?
L1351[16:48:31] <gigaherz>
shadekiller666: did you see my code?
L1352[16:48:38] <bjorguv> PaleoCrafter:
you couldn’t tell me to delete one word….. really
L1354[16:48:43] <gigaherz> [23:32]
(gigaherz): this is how I do server-side packet handlers
L1355[16:48:54] <shadekiller666> oh,
WorldServer
L1356[16:49:08] <gigaherz> Xiphirx: not
sure
L1357[16:49:29] <gigaherz> I don't know
if you can rename the packages before building
L1358[16:49:29] <PaleoCrafter> bjorguv, I
could have, but then you wouldn't have put effort into solving it
yourself :P
L1359[16:49:36] <PaleoCrafter> which I
hope you have now
L1360[16:49:53] <shadekiller666> so for
your server-handlers, you leave the processing code in the actual
handler, but have to refer to the client proxy for your
client-handler processing
L1361[16:50:12] <gigaherz> yes
L1362[16:50:40] <gigaherz> I'd prefer to
keep in the handler? yes
L1363[16:50:49] <gigaherz> but I prefer
to not waste time worrying about code style
L1364[16:51:11] <gigaherz> "needs
client-only things? then it belongs in the proxy"
L1365[16:51:13] <PaleoCrafter> you could
go for my approach :P
L1366[16:51:32] <gigaherz> if all you
need is Minecraft.getMinecraft().addScheduledTask()
L1367[16:51:33] <gigaherz> though
L1368[16:51:34] <gigaherz> then you could
have
L1369[16:52:11] <gigaherz>
proxy.addScheduledTask(ctx, () -> { ... });
L1370[16:52:21] <gigaherz> that, in the
client proxy, does Minecraft.getMinecraft().addScheduledTask
L1371[16:52:43] <gigaherz> and in the
server proxy, does ctx.getServerHandler().blah
L1372[16:52:59] <gigaherz> or even
L1373[16:53:07] <gigaherz>
proxy.addScheduledTask(ctx, (player) -> { ... });
L1374[16:53:15] <gigaherz> that returns
the appropriate player entity object
L1375[16:53:28] <gigaherz> but chances
are you need special processing that will have client-only
stuff
L1376[16:53:31] <gigaherz> so
/shrug
L1377[16:55:38] <quadraxis>
FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(...)
L1378[16:55:42] <quadraxis> if that's all
you need
L1379[16:56:44] <gigaherz> I just
realized
L1380[16:56:47] <gigaherz> what I said
does NOt work
L1381[16:57:00] ***
MrKickkiller is now known as MrKick|Away
L1382[16:57:01] <shadekiller666>
TransitMod.channel.registerMessage(((message, ctx) ->
{TransitMod.proxy.handleMessage(message, ctx); return null;}),
PacketLoadStructures.class, discriminator++, Side.CLIENT);
L1383[16:57:07] <gigaherz> since there's
the integrated server that can also receive messages
L1384[16:57:07] <gigaherz> XD
L1385[16:58:35] <shadekiller666> that
line is a bit longer than i'd like, but it works :P
L1386[16:59:08] <gigaherz> why not give
the method a return type
L1387[16:59:09] <gigaherz> and use
L1388[16:59:15] <gigaherz>
TransitMod.proxy::handleMessage or whatever
L1389[16:59:33] <shadekiller666> a return
type of IMessage?
L1390[16:59:37] <gigaherz> yes
L1391[16:59:45] <gigaherz> this way you
avoid the lambda
L1392[16:59:55] <gigaherz> which you have
there just for the return line
L1393[17:00:55] <Mogul> Hm. I've had a
look at your code, gigaherz, and even when taking into account the
"commons" code in your other project nothing got my
attention that would help me in my situation. I rather feel that I
am doing most of it right and there's probably just some minor but
basic thing that I am doing wrong.
L1394[17:01:15] <gigaherz> can you show
your code?
L1395[17:01:37] <gigaherz> and sorry for
not giving you the link to the other project
L1396[17:01:44] <gigaherz> I forget I
split that up ;P
L1397[17:01:53] <shadekiller666> so it
would be
"TransitMod.channel.registerMessage(TransitMod.proxy::handleMessage,
..., ...)"?
L1398[17:01:57] <Mogul> Well, it's split
up in lots of files, including the jsons, so it would take me time
to "compile" it so that I could upload it
somewhere.
L1399[17:02:09] <Mogul> But...
L1400[17:02:15] <Mogul> Guess I have some
basic questions.
L1401[17:02:18] <gigaherz> not github
repository?
L1402[17:02:23] <Mogul> Nope.
L1403[17:02:32] <Mogul> Basically just
started.
L1404[17:02:42] <gigaherz> yeah I usually
create the repository first XD
L1405[17:02:43] <Mogul> Well - I had a
small but working mod in 1.7.10...
L1406[17:02:52] <quadraxis> so upon
testing, you can refer to client side stuff in your scheduled
task
L1407[17:03:06] <quadraxis> as long as it
only runs client side
L1408[17:03:52] <Mogul> Huh, what?
L1409[17:04:00] <gigaherz> that's
regarding shadekiller666's issue
L1410[17:04:08] <Mogul> Ah...
L1411[17:04:09] <Mogul> =D
L1412[17:04:58] <Mogul> So - if I got a
block that has sub-blocks, just like a regular
"BlockOldLog"; do I have to register those variants with
"ModelLoader.registerItemVariants"?
L1413[17:04:58] <shadekiller666>
hmm?
L1414[17:05:17] <Mogul> Because I think
I've seen examples that don't do that.
L1415[17:05:20] <gigaherz> not if you
call setCustomModelResourceLocation
L1416[17:05:32] <gigaherz> you only need
registerItemVariants if you have an ItemMeshDefinition
L1417[17:05:47] <gigaherz> make sure you
call that stuff in PRE-init
L1418[17:05:53] <Mogul> Oh, ok, haven't
heard of that yet.
L1419[17:06:00] <gigaherz> because if you
do it in init, it will seem to work, but it will be missing the
models ;P
L1420[17:06:02] <Mogul> Do I NEED an
ItemMeshDefinition?
L1421[17:06:06] <gigaherz> nope
L1422[17:06:09] <Mogul> Ok.
L1423[17:06:13] <gigaherz> unless your
models change based on itemstack NBT
L1424[17:06:33]
⇨ Joins: SparkVGX (~SparkVGX@121.99.203.245)
L1425[17:06:37] <Mogul> I guess that's
not the case for a simple ItemBlock.
L1426[17:06:42] <gigaherz> yep
L1427[17:07:30] <Mogul> But I might have
to make my own ItemBlock for e.g. my own
"getUnlocalizedName", right?
L1428[17:07:47] <Mogul> And
setHasSubtypes to "true", right?
L1429[17:08:10] <shadekiller666> ... why
does WorldServer only have addScheduledTask(Runnable) when
Minecraft has that and addScheduledTask(Callable<?>)?
L1430[17:08:30] *
gigaherz shrugs
L1431[17:08:49] <gigaherz> Mogul: no the
default one delegates that to the block
L1432[17:08:59] <gigaherz> you usually
only need to override getMetadata(int) on the itemblock
L1433[17:09:54] <Mogul> gigaherz: Hm, but
I think I have only seen examples where that simply returns the
damageValue that is put in?
L1434[17:10:13] <gigaherz> yes
L1435[17:10:17] <gigaherz> but the
default one always returns 0
L1436[17:10:19] <gigaherz> ¬¬
L1437[17:10:21] <Mogul> Ah, ok.
L1438[17:10:33] <gigaherz> for some
stupid reason, mojang implemented it that way
L1439[17:10:38] <gigaherz> instead of
returning the given number
L1440[17:11:26] <Mogul> Well.... =D
L1441[17:12:54] <Mogul> So. Assuming I
have registered the block via GameRegistry.register and done the
same for the ItemBlock - I will then register the custom
ModelResourceLocations on the client side, correct? I guess it
is.
L1442[17:13:19] <shadekiller666>
gigaherz, TransitMod.proxy::new doesn't work "can't find
class..."
L1443[17:13:53] <Mogul> So, I got one
block with four subblocks - will I have to register those four
blocks as custom locations with their own meta and name each?
L1444[17:14:18] <Mogul> But refering to
the same ItemBlock?
L1445[17:14:29] <shadekiller666> wait
derp
L1446[17:14:36] <shadekiller666>
TransitMod.proxy::handleMessage
L1447[17:15:36] <shadekiller666> if this
works i'm going to be so stoked
L1448[17:16:21] <gigaherz> note ::new,
lol XD
L1449[17:16:24] <gigaherz> not*
L1450[17:16:31] <shadekiller666> i know
:P
L1451[17:17:03] <gigaherz> Mogul:
yes
L1452[17:17:05] <gigaherz> you'd do
like
L1453[17:17:28] <gigaherz>
ModelLoader.setcustomMRL(itemblock,0,new
MRL(itemblock.getRegistryName(), "variant=1"));
L1454[17:17:33] <gigaherz>
ModelLoader.setcustomMRL(itemblock,1,new
MRL(itemblock.getRegistryName(), "variant=2"));
L1455[17:17:36] <gigaherz> etc
L1456[17:17:46] <gigaherz> if you want to
reference the blockstates file for the items
L1457[17:18:08]
⇨ Joins: KklyAq
(KklyAq@p30032-ipngnfx01osakakita.osaka.ocn.ne.jp)
L1458[17:20:22]
⇨ Joins: AforAnonymous
(bitch2k@dyn-050-100.vix2.mmc.at)
L1459[17:20:32] <Mogul> gigaherz: Ok,
wait, perhaps this is what I do wrong.
L1460[17:20:46] <Mogul> I'm doing like:
ModelLoader.setCustomModelResourceLocation(MyBlocksAndItems.myItemBlock,
EnumLogType.VARIANT_ONE.getMetadata(), new
ModelResourceLocation("mymod:my_log",
"inventory"););
L1461[17:21:16] <gigaherz> that should
still work
L1462[17:21:29] <gigaherz> i usually
prefer to use
L1463[17:21:35] <gigaherz>
Item.getItemFromBlock(theBlock)
L1464[17:21:41] <gigaherz> instead of
keeping a reference to the ItemBlock object
L1465[17:21:52] <Mogul> Yeah, I had it
that way one time before.
L1466[17:22:13] ***
amadornes is now known as amadornes[OFF]
L1467[17:22:29] <Mogul> But you wrote
"variant=2" and that's what confuses me.
L1468[17:22:55] <Mogul> I read that
"inventory" is a variant that is automatically created,
but I didn't understand the why.
L1469[17:23:05] <gigaherz> nono
L1470[17:23:07] <Mogul> I just read it
everywhere when people register their Models.
L1471[17:23:13] <gigaherz>
"inventory" by default
L1472[17:23:20] <gigaherz> tells mc to
look for an item model
L1473[17:23:31] <gigaherz> so it would
look for
L1474[17:23:43] <gigaherz> ...
assets/mymod/models/item/my_log.json
L1475[17:23:44] <gigaherz> first
L1476[17:23:46] <gigaherz> and if not
found
L1477[17:23:49] <gigaherz> then it would
look for
L1478[17:23:58] <gigaherz> ...
assets/mymod/blockstates/my_log.json
L1479[17:24:05]
⇨ Joins: secknv
(~secknv@bl14-176-22.dsl.telepac.pt)
L1480[17:24:12] <gigaherz> and inside it,
expect to find "variants": { "inventory"
L1481[17:25:09] <Mogul> This confuses me
so much... So do I have to define that variant in my blockstates
file? Because I can't remember having seen that been done
anywhere?
L1482[17:25:19] <gigaherz> not if you
have an item json
L1483[17:25:19] <gigaherz> ;p
L1484[17:25:25] <Mogul> Ok. I have
one.
L1485[17:25:37] <gigaherz> then use
"inventory" and let "mymod:my_log" point to the
json
L1486[17:26:02]
⇦ Quits: founderio
(~Thunderbi@p200300C4E3DDD6006B673193F32E9B83.dip0.t-ipconnect.de)
(Quit: founderio)
L1487[17:26:02] <gigaherz> so a
question
L1488[17:26:10] <gigaherz> have you tried
to create an actual "basic block" first?
L1489[17:26:15] <gigaherz> without
variants or any other crap? ;P
L1490[17:26:36] <gigaherz> I feel like
you are getting more confused than necessary because of doing two
non-trivial tasks at once
L1491[17:26:37] <Mogul> Well, I managed
to create a multipart block with variants....
L1492[17:26:49] <Mogul> That's what
confuses me so much - I thought I had understood it.
L1493[17:27:01] ***
PaleoCrafter is now known as PaleOff
L1494[17:28:56] <diesieben07> ok, forget
about the item json for a second, that is a weird Mojang special
case
L1495[17:29:18] <diesieben07> how things
work is: you register a ModelResourceLocation, that has 3 parts:
domain (modID), path and variant (teh thing after the #)
L1496[17:29:26] <diesieben07> domain and
path point to a blockstate
L1497[17:29:38] <diesieben07> blockstate
json*
L1498[17:29:43] <diesieben07> variant
points to one entry inside that blockstate json
L1499[17:29:48] <diesieben07> that entry
then says which model to use
L1500[17:29:53] <diesieben07> does that
make sense?
L1501[17:30:10] <diesieben07> don't let
"blockstaet" confuse you, this applies to all
ModelResourceLocations, item or block
L1502[17:31:26] <shadekiller666> the
vanilla nbt structure assets are loaded on the server right?
L1503[17:34:22] <shadekiller666> oh
bloody hell
L1504[17:34:23] <shadekiller666> :/
L1505[17:34:45] <shadekiller666> i have
json and png files that need to be loaded server-side
L1506[17:35:12] <shadekiller666> but
TextureUtil.readBufferedImage() doesn't exist on the server
:/
L1507[17:35:27] <diesieben07> the whole
resource system is purely client side
L1508[17:35:52] <shadekiller666> guess
i'll have to write my own then :P
L1509[17:35:57]
⇨ Joins: Upthorn
(~ogmar@108-204-125-173.lightspeed.frokca.sbcglobal.net)
L1510[17:36:06] <diesieben07>
ImageIO.read(MyClass.class.getResource("/foo/bar/baz.png"))
L1511[17:37:02] <Mogul> diesieben07:
Yeah, that basically makes sense. the ModelResource location takes
in a domain+path parameter and a variable.
L1512[17:37:12] <diesieben07> ok,
good
L1513[17:37:42] <shadekiller666>
ResourceLocations exist on the server don't they? doesn't the game
registry use them?
L1514[17:37:43] <diesieben07> now there
is a special case, because Mojang. If the model is for an item and
the variant is "inventory", it will try and skip the
blockstate and directly load a model from models/item
L1515[17:37:48] <diesieben07> yes the do
shade
L1516[17:38:18] <diesieben07> Mogul, but,
as I say, that's a special case and more like an addendum. try to
understand the normal process first
L1517[17:38:33] <diesieben07> (in
reality, this whole thing is patched in by forge, but don't think
about that :P)
L1518[17:38:35] <Mogul> Ah, but if I just
wanna register a block then I have to reference it's respective
variant and NOT the "inventory" variant?
L1519[17:38:45] <diesieben07> define
"register a block"
L1520[17:39:28] <Mogul> Well, I got a
tree log with four variants, let's say the vanilla four from
BlockOldLog.
L1521[17:39:44] <diesieben07> ok
L1522[17:39:45] <Mogul> And I want those
four variants registered.
L1523[17:39:54] <diesieben07> ok
L1524[17:40:07] <diesieben07> we are only
talking about the item form now, right?
L1525[17:40:11] <diesieben07> not the
block when placed down?
L1526[17:40:23] <Mogul> Well, do I have
to register both seperately?
L1527[17:40:35] <diesieben07> In theory
yes, but blocks come with reasonable defautls
L1528[17:40:38] <diesieben07> where as
items don't.
L1529[17:40:45] <diesieben07> so blocks
usually "just work"
L1530[17:40:47] <gigaherz> mojang
hardcodes items
L1531[17:40:55] <Mogul> Gnarl.
L1532[17:40:55] <gigaherz> it's
silly
L1533[17:41:11] <diesieben07> basically
for every variant you have to do
L1534[17:41:14] <gigaherz> they have a
system for blocks, but they keep the items hardcoded.
L1535[17:41:19] <gigaherz> anyhow, gotta
sleep, night ppl
L1536[17:41:25] <Mogul> Good night.
L1537[17:41:26] ***
gigaherz is now known as ghz|afk
L1538[17:41:54] <diesieben07>
ModelLoader.setCustomModelResourceLocation(item, <item metadata
for variant>, new MRL(modid, <blockstate json name>,
"type=foo")
L1539[17:42:10] <Mogul> ...where
"foo" is the respective variant, right?
L1540[17:42:13] <diesieben07> yes
L1541[17:42:19]
⇨ Joins: SquareWheel
(~SquareWhe@s0106687f7463986c.ok.shawcable.net)
L1542[17:42:23] <diesieben07> the same
process for blocks happens through the statemapper, which has a
reasonable defualt
L1543[17:42:37] <Mogul> And not
"type=foo,axis=y" ?
L1544[17:42:46] <shadekiller666>
diesieben07, do i not have to close the stream that gets passed
into ImageIO.read()?
L1545[17:42:56] <diesieben07> well, you
need to choose a variant that exists in your blockstate json
L1546[17:43:04] <diesieben07> if oyu have
"type=foo,axis=y" in there, you use that
L1547[17:43:10] <diesieben07> vairants
are just strings, they are not parsed in a special way.
L1548[17:43:23] <diesieben07>
shadekiller666, Class::getResource returns an URL, not an
InputStream
L1549[17:43:41] <diesieben07> if you pass
in a stream, you'd have to check the docs if it closes it
L1550[17:43:42] <shadekiller666> the
method i'm in takes File objects
L1551[17:43:43] <diesieben07> i'd assume
not.
L1552[17:43:49] <Mogul> Oh, wait, I
thought this "variant=value" was a special syntax.
oO
L1553[17:43:49] <diesieben07> then pass
in the file?
L1554[17:44:11] <diesieben07> Mogul,
nope, it's not. you could just as well make your variant
"iliketrees"
L1555[17:44:30]
⇦ Quits: ThePsionic (~Psi@ip5457f909.direct-adsl.nl) (Quit:
Leaving)
L1556[17:44:30] <diesieben07>
shadekiller666, ImageIO.read can take a File as well
L1557[17:44:55] <diesieben07> and if you
must pass in a stream, the docs says the stream will not be closed
by the method, so do it in a try-with-resources
L1558[17:45:29] <diesieben07> Mogul, this
"property=value,property2=value2" syntax is just what is
generated by the default state mapper (the thing that generates the
variatns for blocks)
L1559[17:45:46] <diesieben07> but you
could register your own that generates "iliketrees" and
"ilikecars"
L1560[17:45:54] <shadekiller666> and it
does look like all of the ImageIO.read() methods that use a stream
also close it
L1561[17:45:59] <Mogul> Hm....
L1562[17:46:24]
⇨ Joins: DaMachinator
(~DaMachina@40.112.138.169)
L1563[17:46:26] <diesieben07>
shadekiller666, ImageIO.read(InputStream) specifically states that
it does not close the stream.
L1564[17:47:02] <shadekiller666> oh
L1565[17:47:24] <shadekiller666> it
closes A stream, though i guess it makes an additional stream from
the one passed in
L1566[17:47:38] <diesieben07> basically
whoever creates the stream closes it
L1567[17:47:42] <diesieben07> if you
create it, you close it
L1568[17:47:59] <diesieben07>
ImageIO.read(File) will create the stream itself (because you only
gave it a file) so it will close that stream
L1569[17:48:13] <diesieben07>
ImageIO.read(InputStream) will not close the stream, because it
didn't create it.
L1570[17:49:54] <shadekiller666> all of
them create an ImageInputStream from whatever is passed in
L1571[17:49:57] <shadekiller666> it
closes that stream
L1572[17:50:38] <DaMachinator> Hi, new
modder here. I want to get the name/type/whatever of a block at a
coordinate offset from a tile entity. How should I go about doing
this?
L1573[17:50:56] <diesieben07>
shadekiller666, yeah, but ImageInputStream is not actually an
InputStream, as in it does not extend InputStream.
L1574[17:51:07]
⇦ Quits: Ashindigo_
(uid202308@id-202308.hathersage.irccloud.com) (Quit: Connection
closed for inactivity)
L1575[17:51:15] <DaMachinator> Is there a
getBlockAtPosition(int x, int y, int z) that returns the registry
name of said block or similar?
L1576[17:51:15] <diesieben07> so closing
it does not close any underlying InputStream. this whole image read
thing is very weird
L1577[17:51:34] <diesieben07>
DaMachinator, World::getBlock will give you the block state at that
position
L1578[17:52:00] <diesieben07> BlockPos
has many useful methods for "moving it around", e.g. you
can do pos.offset(EnumFacing.WEST, 3) to get the position 3 blocks
west
L1579[17:52:12] <diesieben07>
*getBlockState
L1580[17:52:31]
⇦ Parts: Xiphirx (~xiphirx@tucana.whatbox.ca)
(Leaving))
L1581[17:54:17] <DaMachinator> in this
case I want the 4 blocks at y-1, (x+-1, z0) and (x0, z+-1)
L1582[17:54:20] <DaMachinator>
thanks
L1583[17:55:25] <DaMachinator> does this
work in 1.10
L1584[17:55:30] <diesieben07> yes of
course.
L1585[17:55:39] <diesieben07> so you want
the block DOWN, the block WEST and EAST and the block NORTH and
SOUTH
L1586[17:56:22] <diesieben07> so make
yourself a collection of those: EnumSet.of(DOWN, WEST, EAST, NORTH,
SOUTH). iterate it: for (EnumFacing dir : set) and then move your
position in that direction: pos.offset(dir)
L1587[17:56:52] <DaMachinator> problem:
there appears to be no function World.getBlockState()
L1588[17:57:06] <Ordinastie> look
better
L1589[17:57:07] <diesieben07> then you
are not in 1.10 :P
L1590[17:57:18] <DaMachinator> or eclipse
is lying to me
L1591[17:57:27] <diesieben07> note, it is
not World.getBlockState, that would imply a static method
L1592[17:57:30] <diesieben07> the method
is not static.
L1593[17:57:36]
⇨ Joins: Vigaro (Vigaro@2a06:a006:c5:8f::4)
L1594[17:58:18] <DaMachinator> is there a
world object
L1595[17:58:36] <diesieben07> depends on
the context.
L1596[17:58:38] <Ordinastie> in your
TileEntity yes
L1597[17:58:43] <DaMachinator> there
apparently is
L1598[17:58:45] <diesieben07> if you are
in a TileEntity then yes
L1599[17:58:58] <diesieben07>
TileEntity::getWorld iirc
L1600[18:00:32] <SquareWheel> Is there a
good way to slow tile entities down? Have it tick only every 30
seconds or so, for performance reasons?
L1601[18:01:06] <Maxwell>
"world" magically works in my TE code.
L1602[18:01:08] <SquareWheel> I tried
playing with scheduling updates on the attached block, but had no
luck.
L1603[18:01:26] <DaMachinator> make a
counter, decrement it every tick, when it hits 0 reset the counter
and do the thing
L1604[18:01:46] <SquareWheel> I could,
but that doesn't seem very performant...
L1605[18:01:53] <diesieben07>
SquareWheel, do if (world.getTotlaWorldTime() % 30 != 0) return; at
the start of your tick
L1606[18:01:57] <diesieben07> that's the
best you can do.
L1607[18:02:17] <DaMachinator> you're
running a counter comparison and counter-- every tick
L1608[18:02:19] <Vigaro> You'd be
surprised by how easy it is for your processor to perform simple
integer operations
L1609[18:02:22] <SquareWheel> I think a
counter would actually be more efficient. Modulo is quite slow,
isn't it?
L1610[18:02:22] <DaMachinator> that isn't
awful
L1611[18:02:32] <diesieben07> modulo is
fast enough :P
L1612[18:02:46] <diesieben07> especially
if you make it modulo a power of two
L1613[18:02:47] <DaMachinator> it's
probably only microseconds of difference
L1614[18:02:57] <diesieben07> but all
this doesn't matter
L1615[18:03:15] <diesieben07> what
matters in modern computers is cache misses
L1616[18:03:19] <Maxwell> Unless you make
a superflat world with 256 layers of the block, that is.
L1617[18:03:28] <diesieben07> because
when you get a cache miss you do NOTHING for 100-200 cycles
L1618[18:03:41] <diesieben07> so it
doesn't matter if you take 3 cycles or 1 computing if you want to
tick this time
L1619[18:04:04] <diesieben07> because a
few cycles down you just have a cache miss anyways which dominates
ALL of the performance
L1620[18:04:38] <diesieben07> Maxwell, a
superflat world out of furnaces actually does not bottleneck
because of cpu time last i checked. what kills it is
loading/unloading the chunks.
L1621[18:04:41] <diesieben07> not ticking
the TEs.
L1622[18:05:30] <SquareWheel> My TE is
able to spread up to a certain limit, so I'm just trying to be
performance conscious. Thanks for the suggestions.
L1623[18:06:04] <SquareWheel> But just to
verify, there's no easy way to do a scheduled update on the block,
and have that run the TE update method, is there?
L1624[18:06:17] <SquareWheel> Assuming
that'd need to do less work anyway.
L1625[18:06:20] <diesieben07> well, if
you want to use scheduled updates you don't need a ticking TE
L1626[18:06:27] <diesieben07> but
scheduled updates ... well, they kinda suck
L1627[18:06:34] <SquareWheel> I need to
store some NBT in it sadly, or I would.
L1628[18:06:47] <diesieben07> TE and
ticking TE are two different things
L1629[18:06:54] <diesieben07> a
non-ticking TE will not take any CPU time
L1630[18:07:00] <SquareWheel> I'd love to
kill ITickable if I could.
L1631[18:07:09] <SquareWheel> Just not
sure how to update it "manually".
L1632[18:07:16] <diesieben07> scheduled
updates :P
L1633[18:07:19] <shadekiller666> when
does Minecraft.getMinecraft() get initialized?
L1634[18:07:22] <diesieben07> would be
one
L1635[18:07:36] <diesieben07> but last
time i tried to do that, it was horribly broken when used en
masse
L1636[18:07:56] <diesieben07>
shadekiller666, in the Minecraft class constructor
L1637[18:08:02] <diesieben07> why would
you care?
L1638[18:08:27] <SquareWheel> Hrmm. So
just doing a modulo check on tick update would be better than
scheduled updates you think?
L1639[18:08:46] <diesieben07> i would try
it first and see if you have a performance problem
L1640[18:08:54] <diesieben07> because
otherwise all this is just speculation and hand waving
L1641[18:09:06] <SquareWheel> Who doesn't
love some premature optimization?
L1642[18:09:17] <shadekiller666> ok, when
is getRenderItem() initialized?
L1643[18:09:30] <diesieben07> you should
not ever need to call that...
L1644[18:09:45] <SquareWheel> Thanks
diesie.
L1645[18:10:02] <DaMachinator> so:
worldObj.getBlockState(checkPos.offset(EnumFacing.NORTH)).getBlock().getRegistryName()
L1646[18:10:13] <diesieben07> why do you
want the registry name?
L1647[18:10:21] <shadekiller666>
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item,
meta, MRL)
L1648[18:10:30] <diesieben07>
shadekiller666, ModelLoader.setCustomModelResourceLocation
L1649[18:10:35] <shadekiller666>
right
L1650[18:10:42] <DaMachinator>
diesieben07: to see if it is equal to "aether_rune"
L1651[18:10:44] <diesieben07> are you not
the guy who wrote the obj loader? why do you not know this?!ß
L1652[18:10:56] <diesieben07>
DaMachinator, don't compare names, compare block instances
L1653[18:11:07] <diesieben07> eg.
getBlock() == Blocks.STONE
L1654[18:11:14] <DaMachinator> got
it
L1655[18:11:27] <diesieben07> string
comparison is slow and error prone in this case
L1656[18:12:37] <DaMachinator> so
if(worldObj.getBlockState(checkPos.offset(EnumFacing.NORTH)).getBlock()
== ModBlocks.runeAether) {do stuff}
L1657[18:12:38] <shadekiller666> i was
unaware that calling that directly was forbidden
L1658[18:12:56] <diesieben07> it's not
forbidden... just error prone, like you found out
L1659[18:13:12] <diesieben07> use
setCustomMRL in the correct event and it will never fail
L1660[18:13:16] <diesieben07>
DaMachinator, looks alrihgt.
L1661[18:13:50] <shadekiller666> if i'm
running a dedicated server out of my dev env, as well as a client
instance, how do i connect to the server?
L1662[18:13:56] <Maxwell> localhost
L1663[18:14:31] <Maxwell> or 127.0.0.1,
or in the case of IPv6, ::1 (not sure if minecraft supports that,
though)
L1664[18:15:23]
⇨ Joins: ScottehBoeh (~ScottehBo@95.144.45.222)
L1665[18:15:27] <ScottehBoeh> Salutations
all :D
L1666[18:15:38] <ScottehBoeh> Crayfish is
doing his Modding Week livestream xD (1 mod per day) can't
wait
L1667[18:15:45] <ScottehBoeh> starts in
like 14 mins
L1668[18:18:13] <DaMachinator> this
should work now
L1669[18:18:15] <DaMachinator> i
hope
L1670[18:20:50] <Mogul> Hm. Does that
state mapper set a special order on the variant string? So, e.g.,
if I got an "axis" and a "type" then e.g.
"axis=y,type=normal" would be valid but
"type=normal,axis=y" would not be?
L1671[18:20:59] <tterrag> correct
L1672[18:21:01] <tterrag> it's
alphabetical
L1673[18:21:02] <diesieben07> yes, it
orders alphabetically
L1674[18:21:24] <shadekiller666> hmm, i
guess if the server hits a breakpoint it kicks everyone :P
L1675[18:21:38] <tterrag> after 30
seconds or so, probably
L1676[18:21:41] <tterrag> whenever the
keepalive limit is
L1677[18:21:52] <Mogul> Huh, ok. But I
see that I already ordered them alphabetically. I now see a typo
too though...
L1678[18:23:26]
⇦ Quits: psxlover (psxlover@ppp-94-64-176-30.home.otenet.gr)
(Ping timeout: 180 seconds)
L1679[18:24:16] <bjorguv> what is the
default assets location?
L1680[18:25:23] <tterrag>
/assets/[domain]/...
L1681[18:34:32]
⇨ Joins: Techjar
(~Techjar@server.techjargaming.com)
L1682[18:37:01]
⇨ Joins: psxlover
(psxlover@athedsl-289049.home.otenet.gr)
L1683[18:39:27] ***
Davnit_ is now known as Davnit
L1684[18:47:03]
⇦ Quits: psxlover (psxlover@athedsl-289049.home.otenet.gr)
(Ping timeout: 384 seconds)
L1685[18:49:43] <shadekiller666> when
processing a packet, does everything have to go through
addScheduledTask?
L1686[18:50:31] <diesieben07> technically
no, but practically yes.
L1687[18:50:43]
⇨ Joins: AstralSorcerer
(~AstralSor@128.151.114.24)
L1688[18:54:10]
⇨ Joins: psxlover
(psxlover@athedsl-4427553.home.otenet.gr)
L1689[18:56:04] ***
diesieben07 is now known as diesieben|away
L1690[19:11:28] <bjorguv> ughhhh can’t
fcking get my textures to load :(
L1691[19:12:21] <shadekiller666> yay my
mods run on the dedicated server! :D
L1692[19:12:50] <Mogul> bjorguv: Did you
preface it with your mod-id? Like in:
yourmod:blocks/your_texture_file
L1693[19:13:05] <Mogul> In your block
model, I mean.
L1694[19:15:10] <bjorguv> im in 1.7.10
and working with items but yes I did
L1695[19:15:11]
⇦ Quits: TechnicianLP2
(~Technicia@p4FE5614B.dip0.t-ipconnect.de) (Read error: Connection
reset by peer)
L1696[19:15:48] <Mogul> Oh, ok, why still
1.7.10?
L1697[19:16:07] <bjorguv> other mods that
I need for my pack aren’t updated
L1698[19:16:20] <Mogul> Ah, like
Thaumcraft?
L1699[19:16:21]
⇨ Joins: TechnicianLP2
(~Technicia@p4FE5614B.dip0.t-ipconnect.de)
L1700[19:16:51] <bjorguv> no Flenix mods
and psychedelicraft
L1701[19:17:26] <Mogul> Ah, never played
with those.
L1702[19:17:53] <bjorguv> flenix mods are
sick
L1703[19:17:57] <Mogul> I just thought
that most mods seem to at least be at the brink of updating.
L1704[19:18:36] <tterrag> and making more
mods on 1.7.10 is definitely going to solve the problem you're
having, right? :P
L1705[19:18:47] <Mogul> That's the
thing.
L1706[19:18:53] <tterrag> not to mention
the overwhelming number of mods that are no longer on 1.7.10 (and
not receiving any support)
L1707[19:19:01] <Mogul> I think we have
had enough of 1.7.10.
L1708[19:19:37] <bjorguv> well those mods
are necessary for my server without them it would be lame and
unnoriginal.
L1709[19:19:50] <tterrag> so update
them?
L1710[19:19:56] <tterrag> or...find an
alternative?
L1711[19:19:57] <bjorguv> maybe once I
gain more skill with java and working with forge
L1712[19:20:03] <Mogul> So I am counting
on other important mods already having been updated at the time
that I will have my own mod up and running; should that ever
happen...
L1713[19:20:22] <bjorguv> believe me
there is no alternative I’ve searched every corner of
curseforge
L1714[19:20:31] <bjorguv> and other
places but mostly there
L1715[19:20:41] <Mogul> Hm, let me check
what Flenixes mod does...
L1716[19:20:50] <bjorguv> flenix cities
core
L1717[19:21:00] <bjorguv> is the one that
key to my server
L1718[19:22:01] <Mogul> With the economy
system?
L1719[19:22:04] <bjorguv> yea
L1720[19:22:27] <Mogul> Hm, well, I guess
you could try an economy system for Sponge, though I have not tried
it yet.
L1721[19:22:29] <Maxwell> And that one
seems to not have visible source
L1722[19:23:02] <bjorguv> sponge?
L1723[19:23:23] <Mogul> It's like a
bridge between modded Forge servers and Bukkit servers.
L1724[19:23:33] <Mogul> Or
something.
L1725[19:23:43] <Disconsented> Ehh
L1726[19:23:45] <Disconsented> not
really
L1727[19:23:48] <Disconsented> That was
Cauldron
L1728[19:23:54] <Mogul> But in the end
it's supposed to give you solid bukkit-like features, right?
L1729[19:23:59] <Disconsented> Sponge is
a new API, they just support a forge version themselves
L1730[19:24:34] <bjorguv> yea a plugin
isn’t really what I’m looking for
L1731[19:25:15]
⇨ Joins: KnightMiner
(~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net)
L1732[19:25:28] <gabizou> bjorguv what
are you looking for?
L1733[19:26:10] <bjorguv> a mod with a
physical currency that has ATMs and debit cards
L1734[19:26:40] <Disconsented> Well you
can make that in Computer Craft
L1735[19:26:46] <Disconsented> worst
case
L1736[19:27:22] <bjorguv> easier to stay
on 1.7.10
L1737[19:27:55] <Mogul> Yeah, but you
might stay there forever, given that you have no influence on when
(or if) those mods are going to be updated.
L1738[19:28:12] <Disconsented> But then
eww legacy, its the same arguement that kept everyone on
1.6..
L1739[19:29:12] <Mogul> But other then
with 1.6 we are now FOUR versions behind when using 1.7.10.
L1740[19:29:32] <Mogul> It's like those
people still playing on 1.4.7 for years, only because it was the
last version with the original RedPower.
L1741[19:29:47] <bjorguv> yea but like I
said once I gain more skill working with java and forge I may
request permission to port the required mods
L1742[19:29:54]
⇦ Quits: KnightMiner
(~KnightMin@107-1-23-59-ip-static.hfc.comcastbusiness.net) (Client
Quit)
L1743[19:30:01] <bjorguv> right now I
can’t even get item textures figured out
L1744[19:30:05] <Mogul> =D
L1745[19:30:27] <SparkVGX> textures are
simpler in the newer versions ;D
L1746[19:31:05] <bjorguv> lol
L1747[19:32:06] <Mogul> I rather get the
feeling that only complicated things are easier in newer version,
simpler things seem much harder to me.
L1748[19:35:13] <Mogul> By the way: It
seems that it was really just a) some typos in my newest blockstate
file, and b) unalphabetically ordered variant strings in my
previous attempt. Both work now, more or less.
L1749[19:36:23] <Mogul> BUT: The state of
the block does not seem to get saved when I exit the single player
game. What might cause that, where should I look? Probably in my
Block class?
L1750[19:37:39]
⇨ Joins: widd (~widd@wunderkind.dad.town)
L1751[19:37:42] <tterrag>
getMetaFromState/getStateFromMeta
L1752[19:37:45] <tterrag> you must
implement those
L1753[19:37:54] <Mogul> I have, but
probably made a mistake there.
L1754[19:37:58] <widd> hey guys, came
here from #FTB since this might be a very specific technical
issue
L1755[19:38:03] <tterrag> Mogul: is your
block a TE?
L1756[19:38:09] <tterrag> do you mean TE
info? or literal blockstate?
L1757[19:38:12] <widd> running java 1.8
on gentoo and all HTTPS connections cause jvm crashes
L1758[19:38:18] <Mogul> tterrag: Nope,
just a simple log block.
L1759[19:38:27] <tterrag> then definitely
your state serialization is broken
L1760[19:38:42] <tterrag> widd: that
sounds beyond the scope of MC
L1761[19:39:03] <Mogul> tterrag: Ok,
guess I will just adhere to the vanilla example in BlockOldLog
then.
L1762[19:39:09] <widd> yeah, just was
hoping it might be something somebody had run into previously
L1763[19:39:13] <tterrag> Mogul: could
you post your existing code?
L1764[19:39:19] <widd> it started out of
nowhere with no pkg changes
L1765[19:39:22] <tterrag> copying vanilla
code without understanding it is never a good idea
L1766[19:39:44] <Mogul> tterrag: Well,
that's why I coded my own, so that I understand it. Seems I didn't.
xD
L1767[19:39:47] <widd> 50% of the time it
causes jvm crash, other 50% just exceptions from java
L1768[19:39:54] <widd> MC eats them and
just tells me the auth servers are down
L1769[19:39:55] <Mogul> And I would have
to upload my code first somewhere.
L1770[19:40:03] <tterrag> not
necessarily
L1771[19:40:04] <tterrag> just use
gist
L1772[19:41:05] <Mogul> Oh wait, I think
I already have it.
L1773[19:41:21]
⇦ Quits: Vazkii (~Vazkii@144.134.37.188.rev.vodafone.pt)
(Quit: seeya m8 thx 4 playin)
L1774[19:42:43] <Mogul> tterrag: Yepp, it
works now. I had: " switch (meta & 0b1100) " and then
compared if that was 0, 1, 2 or 3.
L1775[19:42:48] <Mogul> Which it never
was.
L1776[19:42:55] <Mogul> I made it "
switch ((meta & 0b1100) >>> 2) "
L1777[19:44:27] <tterrag> btw that's the
same as meta >> 2 :P
L1778[19:44:36] <tterrag> I don't think
you'll ever get a number >15
L1779[19:44:58] <Mogul> Probably
not.
L1780[19:45:09] <tterrag> but if you want
to be safe, do (meta >> 2) & 4
L1781[19:45:13] <tterrag> err 3 :P
L1782[19:45:37] <Mogul> But what would be
the big difference between that and my version?
L1783[19:45:37] <tterrag> don't need to
worry about signed shifts
L1784[19:45:44] <tterrag> less operations
(if you drop the &)
L1785[19:46:13] <Mogul> But not if I do
the "& 0b11", right?
L1786[19:47:27] <Mogul> In any way this
leads me to perhaps the last problem. If I got a blockstate file
that defines texture for respective variants and does NOT use their
own models - how do I get the ItemBlock use the correct texture? Or
do I HAVE to have an ItemBlock for each?
L1787[19:47:38] <Mogul> Eh, an item
model, I mean.
L1788[19:48:48] <quadraxis> use
ItemMultiTexture?
L1789[19:49:04] <Mogul> Huh, that's new
to me.
L1790[19:49:24] <tterrag> uhhh....that
has nothing to do with models
L1791[19:49:31] <tterrag> you need to
setCustomModelResourceLocation
L1792[19:51:55] ***
DarkevilAway is now known as Darkevilmac
L1793[19:53:06] <Mogul> tterrag: Well, I
need to do that anyway, right? An hour ago I was told that MC
automatically looks for a respective item model; it that does not
exist it looks for a variant called "inventory" in my
blockstates file.
L1794[19:54:12]
⇦ Quits: CoolerExtreme__ (~CoolerExt@45.249.156.115) (Ping
timeout: 194 seconds)
L1795[19:54:19] <tterrag> you need to do
that for each damage of your item
L1796[19:54:20] <quadraxis> you do need
to do that anyway, but you'll need to call setCustomMRL for each
meta value
L1797[19:54:57] <Mogul> Well, I got four
variants so I registered them with meta 0, 1, 2 and 3
respectively.
L1798[19:55:03]
⇦ Quits: IceDragon (~ThatGuy@63.143.96.21) (Ping timeout: 384
seconds)
L1799[19:55:15] <Mogul> And they show up
correctly when placed in world.
L1800[19:55:20] <Mogul> Just not when
held as an item.
L1801[19:55:57] <tterrag> do you have the
respective item model? or inventory state?
L1802[19:56:14] <quadraxis> you should
use an ItemMultiTexture or similar for your registered
ItemBlock
L1803[19:56:29] <Mogul> I have on item
model that refers to my old block model that I now don't use
anymore.
L1804[19:59:32] <Mogul> quadraxis: I'm
looking into it.
L1805[20:00:36]
⇨ Joins: Cooler (~CoolerExt@45.249.156.108)
L1806[20:03:31] <Mogul> Why does it take
in two blocks in it's constructor? oO
L1807[20:05:06] <quadraxis> some wierd
vanilla legacy reason, i dunno?
L1808[20:05:13] <quadraxis> they're
always the same
L1809[20:05:59] <quadraxis>
Item.registerItems() has examples of vanilla using it
L1810[20:06:10] <tterrag> that class is
unnecessary
L1811[20:06:29] <quadraxis> you don't
have to use it, but you need an implemntatoin of ItemBlock that
overrides the relevant methods
L1812[20:07:02] <tterrag> all that it
does is naming, and item drops
L1813[20:07:05] <tterrag> nothing that
helps models
L1814[20:07:12] <Mogul> I'm not sure
though if that's my problem. The different block variants show
their name correctly already.
L1815[20:07:14] <tterrag> so it's
pointless to mention for this problem
L1816[20:09:02] <Mogul> The question is
how I can tell MC to load a different item model if I don't even
use custom block models but instead just make my blockstate file
use "block_column" and a different texture for each
variant.
L1817[20:09:38] <quadraxis> what's your
setCustomMRL look like?
L1818[20:09:59] <quadraxis> the line
where you call it
L1819[20:10:13] <Mogul> Like...
L1820[20:10:28] <Mogul>
ModelLoader.setCustomModelResourceLocation(Blocks.itemLogAlder,
EnumLogType.NORMAL.getMetadata(), new
ModelResourceLocation("mymod:log_alder",
"axis=y,type=normal"));
L1821[20:13:15] <Mogul> Oh. Ok.
L1822[20:13:28] <Mogul> Just deleting the
item model alltogether just seemed to do the trick.
L1823[20:14:10] <Mogul> And suddenly it
just seems to work.
L1824[20:14:14] <Mogul> Brilliant.
L1825[20:15:14] <Mogul> I hate it when
things are way more simple than I thought and I waste my time
trying do solve complicated problems that really don't exist.....
-_-
L1826[20:15:50] <tterrag> to be fair, the
magic loading of item models is pretty stupid
L1827[20:16:47] <Mogul> Well, and there's
not much information about it and that which exists is spread over
several obscure sites and rather fragmented...
L1828[20:17:37] <Mogul> Leading me to
another topic: The new registry functionality. Does it work? I
found it in the docs and it was mentioned here before, but it
didn't seem to work at all.
L1829[20:17:55] <Mogul> Like in - either
I, again, made a stupid mistake, or the event really never got
fired.
L1831[20:23:14]
⇦ Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping
timeout: 206 seconds)
L1832[20:24:27] <tterrag> what are you
trying to do?
L1833[20:27:19]
⇨ Joins: TangentDelta
(~tangentde@c-68-37-224-83.hsd1.mi.comcast.net)
L1834[20:27:45] <Mogul> tterrag: Ah, I
was trying to use the new registry system. And of course I did make
a stupid mistake, I have to register the eventlistener first.
L1835[20:27:56] <tterrag> uhhh
what?
L1836[20:28:23] <Mogul> Am I even more
confused now? =D
L1837[20:28:32] <Mogul> Like:
MinecraftForge.EVENT_BUS.register(myClass);
L1838[20:28:33]
⇦ Quits: Falconerd
(~falconerd@ppp118-209-74-141.bras1.mel11.internode.on.net) (Ping
timeout: 206 seconds)
L1839[20:28:52] <tterrag> for what
purpose is that useful for item registration?
L1840[20:29:03] <Mogul> To have some:
@SubscribeEvent
L1841[20:29:03] <Mogul> public void
registerBlocks(RegistryEvent.Register<Block> event)
L1842[20:29:28] <Mogul> Where I would
call event.getRegistry().register
L1843[20:29:32] <Mogul> Right?
Wrong?
L1844[20:29:58] <TehNut> Pretty sure you
need to use @EventBusSubscriber and a static handler method to use
the registry methods
L1845[20:30:05] <TehNut> Since they're
fired before preInit IIRC
L1846[20:31:11] <Mogul> yeah, the docs
say: "These events are fired before preinit. This means that
@Mod.EventBusSubscriber (or MinecraftForge.EVENT_BUS.register in
the @Mod class�s constructor for e.g. Scala mods which do not
support static) should be used to register the event handler before
preinit."
L1847[20:31:31] <Mogul> So I made a
constructor for my mod and used that mechanic.
L1848[20:33:29] <Mogul> In either way; it
seems to work.
L1849[20:34:17] <tterrag> hm....I always
figured the registry events were lifecycle
L1850[20:34:18] <tterrag> guess not
L1851[20:34:38]
⇨ Joins: Shawn|i7-Q720M
(~shawn156@c-50-170-156-102.hsd1.co.comcast.net)
L1852[20:35:10] <Mogul> Lifecycle?
L1853[20:41:19] <widd> tterrag, do you
know offhand if openjdk uses different underlying libs than oracle
jre?
L1854[20:41:34]
⇦ Quits: TangentDelta
(~tangentde@c-68-37-224-83.hsd1.mi.comcast.net) (Read error:
Connection reset by peer)
L1855[20:42:24]
⇨ Joins: TangentDelta
(~tangentde@c-68-37-224-83.hsd1.mi.comcast.net)
L1856[20:42:55] <Akkarin> afaik oracle
and openjdk are the same codebase
L1857[20:43:07] <Akkarin> oracle just
tosses in some proprietary fun stuff and that's it
L1858[21:05:27]
⇨ Joins: Wastl2_
(~Wastl2@x4e3441a1.dyn.telefonica.de)
L1859[21:05:53]
⇦ Quits: Wastl2 (~Wastl2@x4e350d3c.dyn.telefonica.de) (Ping
timeout: 384 seconds)
L1860[21:15:27]
⇦ Quits: TechnicianLP2
(~Technicia@p4FE5614B.dip0.t-ipconnect.de) (Ping timeout: 180
seconds)
L1861[21:18:52] ***
Vigaro is now known as V
L1862[21:27:12] <widd> Akkarin, well my
issue seemed to be openjdk specific
L1863[21:27:19] <widd> crashes on SSL
handshake
L1864[21:27:33] <widd> works fine w/
oracle java
L1865[21:28:04]
⇨ Joins: Naiten (Naiten@77.35.177.203)
L1866[21:28:33] <Akkarin> well I could
only imagine that oracle compiles against an older version of
openssl or something like that
L1867[21:32:07]
⇦ Quits: ScottehBoeh (~ScottehBo@95.144.45.222) (Quit:
Leaving)
L1869[21:36:46] <bjorguv> ?
L1870[21:47:11] <Maxwell> Try lowercasing
the file name.
L1871[21:47:30]
⇨ Joins: TechnicianLP2
(~Technicia@p4FE1C779.dip0.t-ipconnect.de)
L1872[21:47:46] <Maxwell> bjorguv^
L1873[21:47:55] <bjorguv> of the
png?
L1874[21:47:57] <Maxwell> yes
L1875[21:56:15]
⇦ Quits: Maxwell
(~Maxwell@pool-108-50-151-21.nwrknj.fios.verizon.net) (Quit:
Leaving)
L1876[22:09:38] <bjorguv> well the item
is named largeStick
L1877[22:13:26]
⇦ Quits: cpup (~cpup@32.218.112.213) (Ping timeout: 206
seconds)
L1878[22:18:59]
⇨ Joins: cpup (~cpup@32.218.117.201)
L1879[22:19:39]
⇨ Joins: McJty
(~jorrit@94-224-154-146.access.telenet.be)
L1880[22:24:48] <tterrag> so?
L1881[22:24:58] <tterrag> also, what
version is this?
L1882[22:25:53] <killjoy> fyi, resource
locations and registry keys should be snake_case
L1883[22:25:55] <bjorguv> 1.7.10
L1884[22:27:42] <bjorguv> what is
snake_case?
L1885[22:28:09] <killjoy> Actually, I
mean pascal case
L1886[22:28:15] <killjoy> I think
L1887[22:28:23] <killjoy> nope..
L1888[22:28:27] <killjoy> snake case it
is
L1889[22:28:36] <killjoy> all lower case,
words separated by underscores
L1890[22:28:49] <SparkVGX> they don't
like camelCase anymore
L1891[22:29:00] <killjoy> because
caps
L1892[22:30:05] <bjorguv> is mine not in
snakecase?
L1893[22:30:19] <killjoy> largeStick,
right?
L1894[22:30:39] <killjoy> It's good
practice for later
L1895[22:31:27] <bjorguv> so the png
should be in snake?
L1896[22:31:39] <killjoy> It's not
enforced until 1.11
L1897[22:32:17] <bjorguv> oh so that
isn’t my problem?
L1898[22:33:07] <killjoy> But it's still
suggested you use it
L1899[22:33:32] <bjorguv> yea i’ll start
doing that
L1900[22:34:02] <killjoy> you could
probably also use - if you wanted
L1901[22:34:13]
⇦ Quits: Lathanael|Away
(~Lathanael@p54961FD4.dip0.t-ipconnect.de) (Ping timeout: 206
seconds)
L1902[22:36:03] <tterrag> underscores is
more correct
L1903[22:36:06] <tterrag> that's what
vanilla uses
L1904[22:37:29] <killjoy> oredict uses
camel though
L1905[22:39:26] <Naiten> Why is
applyPlayerInteraction() in Entity only called on client
side?
L1906[22:39:58]
⇨ Joins: Lathanael|Away
(~Lathanael@p54961190.dip0.t-ipconnect.de)
L1907[22:41:07] <killjoy> It's not?
L1908[22:41:31] <killjoy> client calls it
in the playercontroller, server calls it in the nethandler
L1909[22:41:47] <killjoy> specifically in
processUseEntity
L1910[22:44:30]
⇦ Quits: AstralSorcerer (~AstralSor@128.151.114.24) (Ping
timeout: 194 seconds)
L1911[22:45:25] <Naiten> i put a
breakpoint into the method body and it only stops at client
thread
L1912[22:46:16] <killjoy> do it in the
nethandlerplayserver
L1913[22:47:10] <Naiten> wut?
L1914[22:47:54] <killjoy>
NetHandlerPlayServer#processUseEntity
L1916[22:48:07] <Naiten> how is it gonna
help
L1917[22:49:20]
⇨ Joins: Lunatrius` (~Lunatrius@77.38.28.116)
L1918[22:49:26]
⇦ Quits: Lunatrius (~Lunatrius@77.38.28.116) (Ping timeout:
180 seconds)
L1919[22:49:28] <killjoy> bjorguv, where
is your image located?
L1920[22:50:13] <killjoy> Naiten, put the
breakpoint on the server.
L1921[22:50:15] ***
Lunatrius` is now known as Lunatrius
L1922[22:50:55] <bjorguv>
./java/resources/assets/emod/textures/items
L1923[22:51:18] <killjoy> you want it in
src/main/resources/assets/emod/textures/items
L1924[22:51:50] <killjoy> only *.java
files should go in the java folder
L1925[22:52:07] <bjorguv> oh yea sorry
that’s where it is
L1926[22:53:31] <killjoy> using
eclipse?
L1927[22:53:35] <bjorguv> intellij
L1928[22:53:46] <killjoy> Hm.. try
rebuilding the project
L1929[22:54:24] <bjorguv> k
L1930[22:56:47] <bjorguv> ........
L1931[22:56:49] <bjorguv> wow
L1932[22:56:57] <bjorguv> just spent 4
hours trying to figure it out
L1933[22:57:07] <bjorguv> ty
killjoy
L1934[22:59:39] <bjorguv> what does
rebuilding do?
L1935[23:02:39] <killjoy> it put the
(new) file in the output directory
L1936[23:20:09] <Mogul> Say, guys, how is
compatibility between 1.10.2 and 1.11? Can I make a mod for 1.10.2
and expect it to run on 1.11?
L1937[23:21:15] <mezz> there are some
very small differences. block collision methods are not compatible
between the versions
L1938[23:21:45] <mezz> actually I'm
thinking 1.11 to 1.11.2
L1939[23:21:56] <mezz> 1.10 to 1.11 is
big enough that you will probably have small issues
L1940[23:24:51] <Mogul> I see, thanks.
Looking at two bigger mods it seems like some might take a while to
make the transition.
L1941[23:26:11] <McJty> Mogul, the
biggest thing is ItemStack changes
L1942[23:26:13] <mezz> it definitely
requires porting, yeah. it's possible to support both if you use
something like McJty's compatlayer library
L1943[23:27:52] <Mogul> Hm, the mod I am
aiming at would probably be small enough that a manual port might
be ok to do.
L1944[23:28:17] <McJty> CompatLayer is
still a manual port though. Instead of porting to 1.11 you port to
CompatLayer :-)
L1945[23:28:32] <McJty> The advantage is
that you can maintain two MC versions at once in one code base/one
jar
L1946[23:28:43] <McJty> The disadvantage
is sometimes a clumsy api due to trying to abstract hard to
abstract things
L1947[23:28:52] <McJty> And an additional
dependency of course
L1948[23:28:58] <Mogul> I guess that's a
bit overkill for a beginner then.
L1949[23:29:32] <Mogul> I'm just asking
myself to make the mod for 1.10 or rather directly for 1.11.
L1950[23:29:42] ***
TTFTCUTS is now known as TTFT|Away
L1951[23:29:55]
⇨ Joins: TechnicianLP
(~Technicia@p4FE1C779.dip0.t-ipconnect.de)
L1952[23:29:59] <Mogul> Eh, if I should
make it for 1.10 or 1.11.
L1953[23:30:26] <killjoy> Here's a
challenge. The next time Mojang updates minecraft, let's not update
the mods /s
L1954[23:30:35] <killjoy> first to not
update wins
L1955[23:30:51] <Mogul> Wasn't that
basically what happened with 1.8?
L1956[23:30:58] <Mogul> Took ages for
most mods to update.
L1957[23:31:01] <McJty> yes and that's
not a good idea IMHO
L1958[23:31:08] <killjoy> with good
reason
L1959[23:31:08] <McJty> Shouldn't happen
before
L1960[23:31:12] <McJty>
s/before/again
L1961[23:31:27]
⇨ Joins: Ashindigo_
(uid202308@id-202308.hathersage.irccloud.com)
L1962[23:31:32] <killjoy> but I see most
people's reasons for developing on outdated versions is because the
big mods are on that version
L1963[23:31:56] <Mogul> Well, the deal
obviously is now that one might wanna update to a version that
features important mods.
L1964[23:31:58] <McJty> I don't think
that's still true
L1965[23:32:00] <Mogul> Yeah,
exactly.
L1966[23:32:03] <McJty> Most big mods are
on 1.10.2 atm
L1967[23:32:16] <killjoy> define
"important"
L1968[23:32:30] <killjoy> 1.10.2 is
outdated
L1969[23:32:33] <Mogul> Well, it seems
like Thaumcraft won't go 1.11 anytime soon, for example.
L1970[23:32:43] <killjoy> but is
thaumcraft important?
L1971[23:32:46] <Mogul> Rather porting
from 1.8.9 to 1.10.2.
L1972[23:32:51] <Mogul> Oh, for many
players, sure.
L1973[23:33:00] <Mogul> But that rather
depends, doesn't it?
L1974[23:33:01] <killjoy> there's plenty
of magic mods
L1975[23:33:03] <McJty> Thaumcraft and
Thermal Expansion are both coming to 1.10.2
L1976[23:33:12] <Mogul> And not to
1.11.
L1977[23:33:17] <killjoy> ^
L1978[23:33:24] <McJty> Well not
immediatelly at least
L1979[23:33:38] <Mogul> Sure, eventually
they will make the step.
L1980[23:33:47] <McJty> Anyway, for me
that's why I made CompatLayer. Allows me to maintain all my mods on
2 MC versions at the same time
L1981[23:35:29] <widd> McJty, ive been
wanting to get into mod dev for awhile but not if its a huge pain
to maintain multiple versions at once
L1982[23:35:35] <widd> what exactly can
you abstract away
L1983[23:35:40] <widd> with a compat
layer
L1984[23:36:19] <widd> its been awhile
since ive touched mc code at all but from what i remember 1.7.10 to
1.8 was a huge overhaul(?)
L1985[23:36:46] <widd> is having a compat
lib even worth the effort if mojang forces big changes like that
again
L1986[23:37:32]
⇦ Quits: McJty (~jorrit@94-224-154-146.access.telenet.be)
(Ping timeout: 206 seconds)
L1987[23:38:13] <Mogul> He wouldn't
answer that question! ;-)
L1988[23:39:02] <widd> ikr he'd rather
timeout than explain himself
L1989[23:39:23] <Mogul> Hm, by the way,
has anything changed regarding biome registration? Do we still only
have more or less 128 IDs available?
L1990[23:39:43] <widd> that always irked
me
L1991[23:39:53] <Mogul> Oh yes.
L1992[23:39:54] <widd> why did they limit
their IDs in any way
L1993[23:39:56] <widd> at all
L1994[23:40:01] <widd> like
anywhere
L1995[23:40:08] <Mogul> Well, I guess
some limit would be understandable.
L1996[23:40:10] <killjoy> because
bytes
L1997[23:40:18] <TechnicianLP2>
packetsize
L1998[23:40:29] <mezz> the current
restrictions are because of the save file format
L1999[23:40:29] <widd> as if using one
more byte would have been a problem
L2000[23:40:32] <killjoy> and world
format
L2001[23:40:50] <widd> did they not
design their save format or something
L2002[23:41:07] <killjoy> 256 blocks is
plenty
L2003[23:41:35] <mezz> the game was not
built for modding
L2004[23:41:59] <Mogul> 256 biomes might
seem many, but it really isn't, especially when vanilla MC assumes
that the upper 128 are reserved for biome variants.
L2005[23:42:22] <widd> and yet its still
the most modded game ive ever seen in my life
L2006[23:42:36] <Mogul> I've had modpacks
where I easily reached that and had to resort to strange methods to
get all biomes in that I wanted.
L2007[23:43:03] <Mogul> My guess: It is
so heavily modded BECAUSE we have no officiall API.
L2008[23:43:21] <widd> any official api
they give us would be trash probably anyways
L2009[23:43:34] <killjoy> data
based
L2010[23:43:37] <widd> at least compared
to what the community already has
L2011[23:43:37] <Mogul> Well, compared to
"do anything you want" - how could it not?
L2012[23:43:57] <widd> Mogul, not
counting the people who map everything and modify the code
directly
L2013[23:44:06] <widd> lmao
L2014[23:44:17] <Mogul> Huh? Is that a
thing?
L2015[23:44:19] <widd> yes
L2016[23:44:23] <Mogul> Why?
L2017[23:44:41] <widd> optifine for
example i think used to be done before anyone else would update in
that manner
L2018[23:44:54] <widd> a few other old
mods as well
L2019[23:45:02] <Mogul> Well, back in the
days... but nowadays?
L2020[23:45:11] <widd> Mogul, hacked
clients often do that
L2021[23:45:23] <widd> a lot of them
actually just use java agents
L2022[23:45:25] <Mogul> Huh.
L2023[23:45:26] <killjoy> it was
mcpatcher
L2024[23:45:29] <killjoy> it updated for
snapshots
L2025[23:45:39] <killjoy> but it broke a
while ago
L2026[23:46:03] <Mogul> Hm, reminds me of
MCUpdater. Has anyone used that?
L2027[23:46:41] <Mogul> Dunno if it's
still updated, but I felt like it was a great idea that had not
enough support.
L2028[23:47:38] <widd> Mogul, i looked
into that
L2029[23:47:46] <widd> definitely a good
idea but too hard to setup
L2030[23:47:52] <widd> people dont have
that kind of patience
L2031[23:48:09] <Mogul> Hah! I remember
spending so many hours.....
L2032[23:48:40] <Mogul> And when
everything worked, some of my players had diffuse complaints about
the client not working as expected.
L2033[23:48:55] <Mogul> So basically I
left it alone and never touched it since.
L2034[23:49:32] <widd> i would just like
bootstrap git somehow
L2035[23:49:38] <widd> and bundle it with
a tiny interface
L2036[23:49:40] <widd> use that for
modpack updates
L2037[23:49:47] <widd> (^:
L2038[23:50:00]
⇦ Quits: sinkillerj
(~sinkiller@nc-67-232-15-221.dhcp.embarqhsd.net) (Quit:
またね)
L2039[23:50:35]
⇨ Joins: McJty
(~jorrit@94-224-154-146.access.telenet.be)
L2040[23:50:43] <Mogul> I'm not so fluent
in git-related things, but I once had the idea to at least somehow
use it for mod configs.
L2041[23:50:58] <widd> Mogul, tl;dr is
that its good for text based files but not binary files
L2042[23:51:06] <widd> theres a small
extension that makes it easier though
L2043[23:51:17]
⇦ Quits: McJty (~jorrit@94-224-154-146.access.telenet.be)
(Remote host closed the connection)
L2044[23:51:22] <widd> and the commits
would be massive
L2045[23:51:33]
⇦ Quits: Searge|office
(~Searge@h-85-24-130-18.na.cust.bahnhof.se) (Ping timeout: 206
seconds)
L2046[23:51:50] <Mogul> Hmmm, reminds me
of when I was looking for an easy to write rich-/hypertext format
that could be integrated well with git.
L2047[23:52:25] <Mogul> In the end there
was not much available; either something like Markdown or using an
odt flat file.
L2048[23:52:33] ***
Darkevilmac is now known as DarkevilAway
L2049[23:52:57] ***
DarkevilAway is now known as Darkevilmac
L2050[23:53:10] <Mogul> But in any way -
the biome id mechanism doesn't seem to have been updated,
right?
L2051[23:57:18]
⇨ Joins: Searge|office
(~Searge@h-85-24-130-18.na.cust.bahnhof.se)