- Minecraft IRC Logging service - Channel #minecraftforge

If you want your channel logged here, contact KHobbits on #lain @ Esper.
Other channels Current Log Tail Older Stats

[00:00:57] #minecraftforge - Sun Jan 22 00:00:57 2017
[00:00:57] ---
[00:01:06] * Topic is ':Downloads: Documentation: Rules:'
[00:01:06] * Set by LexLap2 on Sun Dec 04 17:30:28
[00:01:38] <ghz|afk> illy: the FAIL project
[00:01:54] <bjorguv> ok so if I was to edit the vanilla inventory gui would that need to be registered with preinit?
[00:01:54] <ghz|afk>
[00:02:02] <shadekiller666> the breakpoint in this block's onBlockPlacedBy isn't even getting triggered on the server thread
[00:02:03] <illy> gota love Forge acronyms :P
[00:03:10] <illy> I was trying to figure out a silly acronym for the javawrapper but that didnt happen
[00:08:13] <ghz|afk> Itried just now, and failed
[00:08:13] <ghz|afk> ;P
[00:18:15] * amadornes is now known as amadornes[OFF]
[00:18:50] * MrKickkiller is now known as MrKick|Away
[00:20:37] <shadekiller666> wtf
[00:21:08] <shadekiller666> this thing with not having breakpoints trigger server-side is really annoying
[00:21:38] <shadekiller666> trying to figure out why an entity isn't spawning and none of my break points are working on the server
[00:21:45] <shadekiller666> >:(
[00:22:07] <ghz|afk> weird
[00:22:13] <ghz|afk> they usually fire just fine, for me
[00:22:21] <shadekiller666> same here
[00:22:52] <shadekiller666> i'm also not getting some of the console output messages that i should be getting
[00:23:02] <shadekiller666> but i can't figure out why cuz intellij is being a dick
[00:23:46] * ThePsionic ( Quit (Read error: Connection reset by peer)
[00:23:55] * Larry1123 ( Quit (Ping timeout: 384 seconds)
[00:24:21] <ghz|afk> does anyone know if there's any mod that allows modpack authors to do things the first time a player first joins a world?
[00:24:31] <ghz|afk> I mean like, config-based, specifically for modpacks
[00:24:39] <ghz|afk> context:
[00:24:55] <ghz|afk> My guidebook mod lets modpack authors and adventure map authors add new books through config & resource packs
[00:25:41] <shadekiller666> is there a way in intellij to tie a breakpoint to a specific thread
[00:25:43] <ghz|afk> I could easily handle EntityJoinWorld and check if the player has been tagged as having the books been "given"
[00:25:52] <ghz|afk> but I don't want to duplicate efforts ;P
[00:26:24] <ghz|afk> shadekiller666: no, but you can give conditions
[00:26:30] <ghz|afk> and you can use "world.isRemote" as a condition
[00:31:03] * Ashindigo_ ( has joined #minecraftforge
[00:36:21] * Umbraco ( Quit (Killed (NickServ (GHOST command used by Umbraco256!
[00:36:46] * Umbraco ( has joined #minecraftforge
[00:41:48] * Larry1123 ( has joined #minecraftforge
[00:49:05] * Noppes ( Quit (Read error: Connection reset by peer)
[00:50:42] * Katrix (~Katrix@2a02:fe0:cb10:2420:a4e9:e00b:cf6:5954) Quit (Read error: Connection reset by peer)
[00:51:19] * Katrix (~Katrix@2a02:fe0:cb10:2420:144f:8ded:927d:a0b0) has joined #minecraftforge
[00:52:21] <shadekiller666> ok
[00:52:37] <shadekiller666> apparently onBlockPlacedBy wasn't getting called for EnumFacing.UP
[00:53:25] <shadekiller666> does onBlockPlacedBy not get called for a block's default state
[00:53:26] <shadekiller666> ?
[00:56:07] * Doty1154 (~Doty1154@2601:648:8000:134f:79b1:5717:3d7a:a05b) has joined #minecraftforge
[01:00:50] * SquareWheel ( has joined #minecraftforge
[01:02:40] * cpup (~cpup@ Quit (Ping timeout: 206 seconds)
[01:02:41] * Emris (~Miranda@ Quit (Read error: Connection reset by peer)
[01:08:21] * cpup (~cpup@ has joined #minecraftforge
[01:17:39] * DemoXin ( has joined #minecraftforge
[01:19:46] <DemoXin> Okay, so potentially quick question: I've realized already that FML doesn't allow me to set another SecurityManager.  Is there a nice way to go about naming threads that are getting created?  I'm attempting to hunt down a mod that's spawning countless threads with default names and all these threads are NPEing
[01:20:43] <ghz|afk> start the game with breakpoints enabled, and put a breakpoint on the createThread method or whatever it may be called?
[01:20:52] <ghz|afk> (Thread.start?)
[01:21:15] <ghz|afk> I mean start the game with debugging enabled, and pug idea/eclipse as a remote debugger for it
[01:21:20] <ghz|afk> plug*
[01:21:50] <DemoXin> It's on a hosted server.
[01:22:05] <ghz|afk> and you can't download a backup of it, and run it locally?
[01:30:09] * Doty1154 (~Doty1154@2601:648:8000:134f:79b1:5717:3d7a:a05b) Quit (Read error: Connection reset by peer)
[01:36:22] * Xiphirx ( has left #minecraftforge (Leaving)
[01:38:55] * IceDragon (~ThatGuy@ Quit (Ping timeout: 206 seconds)
[01:40:18] <ghz|afk> hmf
[01:40:42] <ghz|afk> what's the least ugly way to "tag" players to know that I have auto-given them certain books?
[01:40:52] <ghz|afk> I was initially using addTag/getTags
[01:41:14] <ghz|afk> but since the list is limited to 1024 entries, I'm not sure if it's a good approach
[01:41:22] <ghz|afk> I thought of attaching a capability
[01:41:32] <TehNut> WorldSavedData?
[01:41:37] <TehNut> UUID->Boolean
[01:41:50] <ghz|afk> but then I'm potentially "slowing down" all hasCapabilities/getCapabilities
[01:41:59] <ghz|afk> for something that's only ever used at entity join time
[01:42:06] <TehNut> er, I mean a WSD with a Map<UUID, Boolean>
[01:42:18] <ghz|afk> yeah, but WorldSavedData is a bit meh
[01:42:24] <ghz|afk> since it's something per-player
[01:42:33] <ghz|afk> so it's a bit annoying to have ALL The data for ALL the players loaded
[01:42:38] <ghz|afk> rather than keep it with the player info
[01:43:09] <ghz|afk> also it wouldn't be Map<UUID,Set<String>>
[01:43:21] <ghz|afk> since I want to be able to know which books have been given
[01:43:27] <ghz|afk> in case the config changes and adds new books
[01:43:51] <ghz|afk> if it was just one value, I'd just use a tag, and forget about it
[01:46:03] <ghz|afk> my dilemma is between capability or addTag
[01:46:08] <SquareWheel> Maybe instead of a bool (has gotten book), use a version number.  New books can check the version that player has assigned.
[01:46:47] <ghz|afk> SquareWheel: that'd be nice if I was the one managing the version number
[01:46:59] <ghz|afk> but those books are added in the config, by modpack authors
[01:47:04] <ghz|afk> or adventure map makers
[01:47:54] <ghz|afk> meh whatever
[01:47:58] <ghz|afk> I'll use the tags
[01:48:25] <ghz|afk> unless someone complains that they want to add a lot of tags, and there isn't enough space after the books
[01:48:25] <ghz|afk> ;P
[01:48:30] <ghz|afk> (unlikely)
[01:52:49] <SquareWheel> Is markDirty() still a thing TEs need to do?  Mine seems to be saving just fine without it.
[01:52:55] * IdleGandalf ( Quit (Quit: Leaving)
[01:54:08] * SatanicSanta ( has joined #minecraftforge
[01:54:31] <SatanicSanta> What is the logical difference between IRecipe#getCraftingResult(InventoryCrafting) and IRecipe#getCraftingOutput()?
[01:55:47] * IceDragon (~ThatGuy@ has joined #minecraftforge
[01:57:26] <ghz|afk> SquareWheel: it's mostly needed just to update neighbouring blocks such as comparators
[01:57:39] <ghz|afk> SatanicSanta: one is the "theoretical" output
[01:57:47] <ghz|afk> the other is the actual output based on the given inputs
[01:57:50] <SatanicSanta> okay
[01:57:54] <SquareWheel> I won't worry about it unless I start having problems, then.  Thanks.
[01:58:07] <SatanicSanta> Since RecipeRepairItem is the closest vanilla thing to what I'm doing, and it returns null, I will continue to return null.
[01:59:12] <ghz|afk> there is one thing:
[01:59:18] <ghz|afk> if you don't have a getRecipeOutput
[01:59:27] <ghz|afk> the recipe won't count as "crafting the item"
[01:59:30] <ghz|afk> for statistics purposes
[01:59:44] * Denyol[Away] is now known as Denyol
[01:59:59] <ghz|afk> if an item has no recipes that output it through getRecipeOutput, then it won't show in the list of statistics, as craftable
[02:00:01] <SatanicSanta> yeah thats fine for my purposes
[02:00:55] <SatanicSanta> I'm assuming that means it won't show up in JEI's usages (which is preferable for my recipe, since it works on literally every item in the game)
[02:01:41] <Denyol> ghz|afk: [21:48:46] Denyol: you can tell idea that @Mod.EventHandler and @SubscribeEvent shouldn't be shown as unused, where is the option to do this?
[02:01:49] * AstralSorcerer ( has joined #minecraftforge
[02:02:19] <TehNut> click on the "unused" method, click the light bulb that pops up, click the option that says it does that
[02:02:22] <Denyol> also now that you mention it, is it bad practice to use @EventHandler, instead of @Mod.EventHandler, are they the same thing?
[02:02:23] <ghz|afk> Denyol: idea?
[02:02:28] <Denyol> yes
[02:02:33] <ghz|afk> yeah what TehNut said
[02:02:44] <ghz|afk> they are the same thing
[02:02:49] <ghz|afk> just static import vs full name
[02:02:53] <Denyol> Ok ill try that thx
[02:02:57] <ghz|afk> I prefer to have @Mod.EventHandler
[02:03:03] <ghz|afk> because it shows that it's inside @Mod
[02:03:12] <ghz|afk> it is a reminder that those are lifecycle events
[02:03:15] <ghz|afk> and not @SubscribeEvent
[02:03:41] <SatanicSanta> I too prefer @Mod.EventHandler
[02:03:42] <TehNut> I use @Mod.EventHandler because it's one less import
[02:03:49] <TehNut> But that doesn't really matter at all
[02:04:47] <SatanicSanta> ghz|afk: Do you know what IRecipe#getRemainingItems(InventoryCrafting) is? Is that after MC removes the items for me?
[02:05:06] <ghz|afk> it's for choosing what remains on the crafting table afterward
[02:05:23] <ghz|afk> you are meantto return an array of the same size as the inventorycrafting
[02:05:27] * mezz (~mezz@ Quit (Read error: Connection reset by peer)
[02:05:28] <ghz|afk> with the slots either empty
[02:05:30] * AstralSorcerer ( Quit (Ping timeout: 206 seconds)
[02:05:32] <ghz|afk> or with the "replacement item"
[02:05:40] * mezz (~mezz@ has joined #minecraftforge
[02:05:40] * MineBot sets mode: +v mezz
[02:05:42] <ghz|afk> (such as getContainerItem() for buckets and such)
[02:05:46] <ghz|afk> so like
[02:05:49] <ghz|afk> suppose you have a recipe
[02:05:56] <ghz|afk> where you place an axe
[02:05:58] <ghz|afk> along with logs
[02:06:02] <ghz|afk> and it turns the logs into planks
[02:06:06] <ghz|afk> but using the durability of the axe
[02:06:15] <ghz|afk> then in your getRemainingItems
[02:06:23] <ghz|afk> you'd look for the slot that has the axe
[02:06:30] <ghz|afk> and lower the durability
[02:06:40] <ghz|afk> and then place it in the corresponding array position
[02:06:45] <ghz|afk> with the new durability value
[02:07:06] <ghz|afk> which would cause it to show up in the corresponding slot in the crafting grid
[02:07:22] <ghz|afk> if you didn't do that, the axe would be consumed by the recipe, as a whole
[02:09:10] <bjorguv> if I write code to change the inventory do I put that in preinit?
[02:10:18] * Doty1154 (~Doty1154@2601:648:8000:134f:cdb3:c2e8:7ee8:76df) has joined #minecraftforge
[02:10:19] <bjorguv> not the code itself just to initialize it
[02:10:26] <Denyol> In IDEA how do I view the source code for a particular minecraft method when hovering over it, like eclipse allows
[02:11:02] <bjorguv> ctrl?
[02:11:20] <bjorguv> I think it is ctrl click
[02:11:40] <Denyol> on the method?
[02:11:50] <Denyol> ive gotten the javadoc tooltip thing to come up
[02:12:19] <bjorguv> I have mac and I use cmd click
[02:12:38] <Denyol> ahh yes that did it cmd click
[02:12:58] <Denyol> or CMD+U
[02:13:04] <bjorguv> ok cool
[02:16:13] <Denyol> is the forge maven down?
[02:16:37] <Denyol> 500 Internal Server Error...
[02:16:37] <ghz|afk> it's flaky
[02:17:01] <ghz|afk> no the maven is ok
[02:17:01] <ghz|afk>
[02:17:04] <ghz|afk> at least for me
[02:17:07] <Denyol> yeh, IDEA cant update the indexed maven repo
[02:17:30] <ghz|afk> oh no it can't
[02:17:34] <ghz|afk> the root maven folder is not readable
[02:17:43] <ghz|afk> you can't index it ;p
[02:17:46] <Denyol> what should I set it to?
[02:17:47] <Denyol>
[02:18:02] <ghz|afk> remove it from the indexing list
[02:18:05] <ghz|afk> and dismiss when it asks
[02:18:35] <Denyol> how do I remove it...?
[02:19:41] <ghz|afk> no idea ;P
[02:19:46] <Denyol> nope
[02:19:52] <Denyol> there isnt an option
[02:19:55] <ghz|afk> ignore it, then XD
[02:19:59] <ghz|afk> I have it there, too
[02:20:00] * KGS ( Quit (Ping timeout: 206 seconds)
[02:21:11] <Denyol> Im not sure if I prefer IDEA over eclipse yet
[02:21:38] <ghz|afk> it's your choice, really
[02:21:41] <bjorguv> I’ve never tried ecklipse is it more simple?
[02:21:45] <ghz|afk> no
[02:21:50] <ghz|afk> it makes less sense
[02:21:53] <ghz|afk> but once you get used to it
[02:21:56] <ghz|afk> others may seem weird
[02:21:56] * Falconerd (~falconerd@ Quit (Ping timeout: 180 seconds)
[02:22:19] <Denyol> I like how IDEA gives suggestions to how my code is bad
[02:22:19] <ghz|afk> IDEA is more straightforward and easy to learn
[02:23:27] <ghz|afk> jetbrains is really good at making code improvement tools ;P
[02:24:50] <SatanicSanta> IntelliJ Ultimate gives even more suggestions :D
[02:24:58] <ghz|afk> does it?
[02:25:10] <ghz|afk> I use Ultimate at work, and Community here at home
[02:25:13] <ghz|afk> and I haven't noticed much
[02:25:25] <ghz|afk> maybe the one for duplicate code
[02:25:28] <ghz|afk> which I had to turn off
[02:27:52] * DemoXin ( Quit ()
[02:30:46] <SatanicSanta> ghz|afk: I'm having a strange issue, not really sure of the source
[02:31:39] <SatanicSanta> really 2 issues: #1 the item is being duplicated, #2 you have to re-setup the crafting grid to canister more items
[02:32:06] * williewillus ( has joined #minecraftforge
[02:32:15] <bjorguv> how do I code a new inventory?
[02:32:30] <Denyol> is there a keybind in IDEA to quickly import something like CMD+1 in eclipse?
[02:32:34] <SatanicSanta> yes
[02:32:37] <bjorguv> alt enter
[02:34:08] * RichardG (~richardg8@ Quit (Quit: You saw nothing.)
[02:34:12] <bjorguv> anyone know how to create a new inventory? and use it instead of the vanilla one
[02:34:47] <williewillus> what do you mean? that's a very broad question
[02:35:01] <bjorguv> how do I get started making a new inventory
[02:35:19] * Searge ( has joined #minecraftforge
[02:35:25] <williewillus> yes, define "new inventory"
[02:35:47] <bjorguv> oh a new player inventory screen
[02:35:55] <Denyol> how do I import all the required methods when subclassing like eclipse does in IDEA?
[02:36:09] <williewillus> what does "importing a method" even mean
[02:36:26] <Denyol> set it up with the @Override tag for me
[02:36:30] <Denyol> when first extending a class
[02:37:04] <ghz|afk> you can click on the superclass
[02:37:11] <ghz|afk> wait for the little thingy to show up
[02:37:16] <ghz|afk> and then do "implement methods" from it
[02:37:30] <Denyol> hmm maybe Block doesnt have any
[02:37:37] <Denyol> I always thought it did
[02:37:40] <bjorguv> is IIventory the players inventory?
[02:37:52] <williewillus> bjorguv: I still don't know what you want to achieve :P
[02:37:54] <ghz|afk> bjorguv: it's *any* inventory
[02:38:06] <williewillus> Denyol: you mean methods you're required to implement? block doesn't have any
[02:38:14] <ghz|afk> but you should explain what you are trying to do
[02:38:16] <Denyol> hmm yes it appears so
[02:38:42] <SatanicSanta> ghz|afk: I think there's a keyboard shortcut for that window
[02:38:51] <SatanicSanta> yeah cmd o
[02:39:00] <ghz|afk> yes that's for overriding one thing
[02:39:05] <bjorguv> ok well my mods goal is to make it so players recieve inventory slots from their clothing and default they have only 2
[02:39:25] <ghz|afk> bjorguv: there was a "rpg inventory" type mod
[02:39:27] <williewillus> so you want something like the baubles screen?
[02:39:30] <ghz|afk> that would unlock slots progressively
[02:39:33] <ghz|afk> but
[02:39:39] <ghz|afk> rather than give you slots per se
[02:39:46] <ghz|afk> it would "lock out" the slots
[02:39:46] <bjorguv> kinda but it completely replaces vanilla
[02:39:51] <ghz|afk> with a special item you couldn't pick up
[02:40:01] <ghz|afk> williewillus: no he wants to limit the normal inventory space
[02:40:07] <ghz|afk> based on the worn equipment
[02:40:09] <bjorguv> yea
[02:40:14] <ghz|afk> he explained earlier
[02:40:20] <williewillus> can't you just wrap the container as it opens
[02:40:24] <williewillus> intercepting slotClick
[02:40:26] <williewillus> and checking the index
[02:40:28] * Cooler (~CoolerExt@2406:5600:5b:3d8c:f892:5114:c1cc:5bab) Quit (Quit: Leaving)
[02:40:58] <williewillus> or if we have a Slot click event (don't think we do) that'd be better
[02:41:07] * Ashindigo_ ( Quit (Quit: Connection closed for inactivity)
[02:41:12] <ghz|afk> there's PlayerContainerEvent.Open
[02:41:46] <ghz|afk> or InitGuiEvent
[02:41:57] <ghz|afk> which could be used to limit click-based access to those slots
[02:42:00] <ghz|afk> but I think the only solution
[02:42:08] <ghz|afk> to prevent picking up items into those slots
[02:42:18] <ghz|afk> would be to fill them in with some "special" unobtainable item
[02:42:32] <ghz|afk> and then prevent picking up that item from a slot
[02:42:37] <bjorguv> what if I’m making a completely new gui
[02:42:38] <ghz|afk> using whatever events necessary
[02:42:44] <ghz|afk> bjorguv: you can't
[02:42:45] <ghz|afk> I mean
[02:42:50] <ghz|afk> you could, for the "E" window
[02:42:55] <ghz|afk> but then there's the chest gui
[02:42:58] <ghz|afk> the crafting table gui
[02:42:59] <williewillus> yeah
[02:43:02] <ghz|afk> the enchanting gui
[02:43:04] <ghz|afk> the furnace gui
[02:43:07] <ghz|afk> and ALL the mod guis
[02:43:12] <ghz|afk> each one has its own copy of the "bottom half"
[02:43:30] <bjorguv> I won’t be using any of those things
[02:43:30] <ghz|afk> it's impossible to fix it by replacing the gui class
[02:43:42] <williewillus> what do you mean you won't be using it?
[02:43:44] <williewillus> the players will be?
[02:43:52] <bjorguv> no that is what I mean they won’t be
[02:43:57] <williewillus> if you just block it in the 'E' inventory I can just open a furnace to bypass yuor limits
[02:44:08] <bjorguv> oh
[02:44:50] <ghz|afk> also picking up items from the ground
[02:44:53] <ghz|afk> or given to you with /give
[02:45:00] <ghz|afk> it would result in the items being placed in the other slots
[02:45:02] <ghz|afk> as I said
[02:45:06] <ghz|afk> the ONLY way to make it work
[02:45:09] <ghz|afk> is to disable those slots
[02:45:21] <ghz|afk> by putting a special non-stackable item in them
[02:45:31] <williewillus> it wuold still be quite unwieldy
[02:45:39] <ghz|afk> and then handling slot clicks to cancel picking up the item from the slot
[02:45:47] <ghz|afk> or dropping it with Q
[02:45:52] <williewillus> that still doesn't solve the other mods problem
[02:46:09] <bjorguv> ok what if the slots simply aren’t there to click?
[02:46:11] <ghz|afk> yes it does -- you'd have to handle it for ALL the slots
[02:46:13] <ghz|afk> regardless of GUI
[02:46:19] <williewillus> sounds like a pita
[02:46:21] <ghz|afk> bjorguv: pickup from the ground
[02:46:34] <ghz|afk> you need BOTH things:
[02:46:37] <ghz|afk> 1. prevent clicks
[02:46:51] <ghz|afk> 2. prevent pickup from ground and /give from filling those empty slots
[02:49:15] <flappy> bjorguv: have you looked at TrophySlots's code yet, btw?
[02:49:28] <bjorguv> no, could you link?
[02:49:33] <Nanobird> throwing out an idea here
[02:49:35] <flappy>
[02:49:55] <Nanobird> but would it be possible to use reflection and access transformers to completely replace the player inventory references?
[02:49:56] * Umbraco ( Quit (Ping timeout: 180 seconds)
[02:50:18] <ghz|afk> bjorguv: the mod looks like:
[02:51:05] <bjorguv> I’m trying to do something like this
[02:51:25] <bjorguv> without taking item size into consideration like they did
[02:51:33] <williewillus> Nanobird: that wouldn't work for all arbitrary mod containers
[02:52:13] <ghz|afk> Nanobird: as I said, each GUI screen has its own texture + slots
[02:52:32] <ghz|afk> including a whole separate implementation of the player inventory slots
[02:52:43] <ghz|afk> eahc one positions & adds the slots to the list
[02:53:01] <ghz|afk> so there's no magic way to handle and and all guis at once
[02:53:18] <bjorguv> so it’s going to be a pain in the butt?
[02:53:29] <williewillus> can't catch every case
[02:53:43] <ghz|afk> bjorguv: I told you how to approach it
[02:53:52] <williewillus> a mod doesn't even have to use container and guicontainer they could reimplement a whole other widget system
[02:53:55] <ghz|afk> if you want to redesign the "E" screen
[02:53:56] <ghz|afk> that's ok
[02:54:06] <ghz|afk> but if you don't want players to open a furnace and cheat
[02:54:19] <ghz|afk> you'll have to do like the "Trophy slots" mod
[02:54:27] <ghz|afk> and "fill in" the locked slots with a special item
[02:54:46] <bjorguv> so a furnaces gui includes the inventory of the player?
[02:54:51] <ghz|afk> yes
[02:54:54] <ghz|afk> not the armor
[02:55:05] <ghz|afk> but the 4 main rows
[02:55:21] <bjorguv> ah ok sorry I was failing to understand your point before
[02:55:33] <SquareWheel> (Unless you use Visible Armor Slots mod)
[02:55:36] <ghz|afk>
[02:55:48] <ghz|afk> the furnace gui would still look like that
[02:55:54] <ghz|afk> with all the slots available
[02:56:05] <ghz|afk> unless you plan to ALSO replace the furnace gui
[02:56:14] <ghz|afk> and the enchantment table gui, and the chest gui
[02:56:30] <ghz|afk> and the crafting table gui, and the beacon gui
[02:56:30] <williewillus> what trophy slots does is have a tickhandler that constantly rechecks the slots :P
[02:56:37] <williewillus> and ejects anything that doesn't belong
[02:56:45] <bjorguv> EventHandler works too right?
[02:56:52] <williewillus> works for what?
[02:56:56] <ghz|afk> williewillus: ewh.
[02:57:07] <williewillus> I mean, there really isn't any other foolproof way
[02:57:07] <ghz|afk> then it's the crappy one
[02:57:09] <ghz|afk> there's another one
[02:57:11] <williewillus> even that isn't foolproof
[02:57:20] <ghz|afk> one that used XP to unlock slots
[02:57:23] <ghz|afk> used in some skyblocks
[02:57:46] * kinggoesgaming ( Quit (Quit: Connection closed for inactivity)
[02:57:47] <ghz|afk>
[02:57:47] <ghz|afk> this
[02:58:06] <williewillus> yes but that looks like they replace the gui completely?
[02:58:26] <bjorguv> that is what I want to do
[02:58:47] <bjorguv> (replace the gui completely)
[02:58:48] <williewillus> ghz|afk: and surprise surprise that's what they do too:
[02:58:59] * Falconerd ( has joined #minecraftforge
[02:59:13] <ghz|afk> williewillus: yes
[02:59:21] <ghz|afk> that's for the case when someone actually DID manage to replace the item
[02:59:28] <ghz|afk> but they DO have a "locked" item
[02:59:34] <ghz|afk> that gets put in the slots
[02:59:41] <ghz|afk> to prevent accidental placement on pickup
[03:00:05] <bjorguv> did the picture I sent change anything about your advice/
[03:00:15] <ghz|afk> nope
[03:00:17] <bjorguv> k
[03:00:23] * Wastl2 ( Quit (Read error: Connection reset by peer)
[03:00:26] <ghz|afk> I still think you will need to fill the locked slots with a special item
[03:00:34] <ghz|afk> to prevent placing things in the slots
[03:00:53] <ghz|afk> and you will need to prevent mouse clicks from swapping the items or dropping the contents
[03:01:37] <ghz|afk> then replacing GUIs ends up just being cosmetic
[03:02:17] <bjorguv> ok so it is basically just a normal inv but I choose where the slots are and which slots they can use?
[03:03:11] <ghz|afk> yes
[03:05:31] * Wastl2 ( has joined #minecraftforge
[03:05:56] <bjorguv> is it possible to store items in the player without using the vanilla inventory? that way items don’t go into the vanilla inv
[03:06:04] <williewillus> caps
[03:06:07] <williewillus> *capabilities
[03:06:11] <ghz|afk> yes, but pickup from the ground won't work for them
[03:06:27] <ghz|afk> they items you pickup from the ground will still go to the standard inventory unless you fill it up with garbage
[03:06:32] * RichardG (~richardg8@ has joined #minecraftforge
[03:06:33] * MineBot sets mode: +v RichardG
[03:07:25] <bjorguv> ok could I make a way to pick up items from the ground with right click then route those items to the new inv?
[03:07:48] <ghz|afk> hmmm does PlayerInteractEvent.Entity work for EntityItems, williewillus?
[03:08:12] <ghz|afk> wait
[03:08:18] <ghz|afk> are you on 1.10.2, bjorguv
[03:08:21] <bjorguv> no
[03:08:23] <williewillus> yes it does
[03:08:26] <ghz|afk> or are you one of those 1.7.10 people
[03:08:36] <bjorguv> yea
[03:08:40] <williewillus> >_<
[03:08:42] <ghz|afk> yeah then you are on your own for that
[03:08:50] <ghz|afk> I have never used the old events
[03:08:54] <ghz|afk> and I have no intention on learning ;P
[03:08:55] <williewillus> well there was the old entity interact events
[03:09:00] <williewillus> but idk how they work either
[03:09:02] <bjorguv> lol k
[03:09:08] <bjorguv> i’ll look into it thanks
[03:09:36] <ghz|afk> disclaimer: everything i have said was assuming 1.10.2+
[03:09:44] <ghz|afk> anything I said may be "wrong" for 1.7.10 ;P
[03:09:50] <ghz|afk> due to the lack of experience there
[03:10:01] * kinggoesgaming ( has joined #minecraftforge
[03:10:03] <Falconerd> do you guys think the playerbase will stick with 1.10.2 for a while? i'm actually doing 1.11.2, though pretty much everything I've done so far seems to be the same in both versions
[03:10:16] <ghz|afk> Falconerd: I maintain both
[03:10:25] <ghz|afk> 1.10.2 won't be "the next 1.7.10"
[03:10:33] <ghz|afk> because mojang isn't taking so damn long between updates
[03:10:44] <Falconerd> yeah, i've heard they want to do more frequent small updates
[03:10:48] <bjorguv> what mods have you developed ghz?
[03:10:50] <ghz|afk> but it's where the new modpacks are being created
[03:11:25] <Denyol> because allot of the great mods support 1.7.10 only because no one has updated them
[03:11:36] <Denyol> or like up to 1.9
[03:11:48] <bjorguv> yea ik that’s the only reason I’m still on 1.7.10
[03:11:58] <Falconerd> the whole render system change was the biggest issue right?
[03:12:00] <ghz|afk> bjorguv: Packing Tape (adds something similar to cardboard boxes), Enderthing (adds color-coded ender chests), Ender-Rift (bottomless storage), Survivalist (earlygame tweaks), guidebook (adds fancy XML-based books), and a few WIP ones not worth mentioning
[03:12:18] <ghz|afk> all of them work on 1.11.2 ;P
[03:12:24] <Falconerd> ooh what is this guidebook
[03:12:42] <ghz|afk>
[03:12:43] <ghz|afk> this
[03:12:43] <ghz|afk> ;P
[03:12:47] <Falconerd> yeah i'm there now
[03:12:59] <Falconerd> nice!
[03:13:03] <Falconerd> i was hoping something like this existed
[03:13:23] <Falconerd> didn't want to code my own book gui tbh
[03:13:24] <bjorguv> ah cool I’ve heard of most of those
[03:14:50] <Falconerd> okay i'm getting too carried away, i need to get back to work before my boss gets back
[03:14:56] <ghz|afk> heh
[03:15:10] * ghz|afk looks at the clock
[03:15:18] <ghz|afk> OMFG WTF 4:15am already
[03:15:23] <Falconerd> wow
[03:15:28] <ghz|afk> why am I not even sleepy ¬¬
[03:15:54] <bjorguv> I wish flenix would update his mods to 1.10+ I’d probably just say screw it to all my other mods and update
[03:20:30] * SquareWheel ( Quit (Quit: Leaving)
[03:26:10] <bjorguv> any 1.7.10 modder familiar with using IExtendedEntityProperties?
[03:26:38] <ghz|afk>
[03:26:48] <ghz|afk> I wrote docs about them before they were deprecated from forge ;P
[03:26:49] <bjorguv> oh sweet duh
[03:26:51] <bjorguv> ty
[03:29:46] <ghz|afk> well time to sleep
[03:29:48] * ghz|afk poofs
[03:33:56] * Shawn|i7-Q720M ( has joined #minecraftforge
[03:38:24] * Naiten (Naiten@ has joined #minecraftforge
[03:41:37] * Umbraco ( has joined #minecraftforge
[03:42:56] * Quetzi ( Quit (Ping timeout: 180 seconds)
[03:43:27] * Quetzi ( has joined #minecraftforge
[03:50:11] <SatanicSanta> methods annotated with @Mod.EventHanlder will only be called if the containing class is annotated with @Mod right?
[03:50:39] <@AbrarSyed> yeah
[03:50:45] <@AbrarSyed> so says the javadocs
[03:50:47] <SatanicSanta> :|
[03:55:11] <SatanicSanta> trying to think of a nice way to do event handling stuff in my api
[03:58:23] <SatanicSanta> API is independent from the mod, in that they package separately and the API jar could theoretically be put into a modpack without the mod
[03:58:33] <SatanicSanta> right now it wont work completely because of event handling stuff still handled in the mod source
[04:02:26] * amadornes[OFF] ( Quit (Ping timeout: 180 seconds)
[04:03:06] * amadornes[OFF] ( has joined #minecraftforge
[04:03:06] * MineBot sets mode: +v amadornes[OFF]
[04:03:41] * amadornes[OFF] is now known as amadornes
[04:05:34] * killjoy ( has joined #minecraftforge
[04:11:35] * McJty ( has joined #minecraftforge
[04:17:48] * Maxwell ( has joined #minecraftforge
[04:18:05] * Maxwell ( has left #minecraftforge
[04:18:17] * Maxwell ( has joined #minecraftforge
[04:20:29] <Kasran> Hey, so - I haven't done any Minecraft modding stuff in probably over a year, so the last time I was mucking around with this stuff 1.7.10 was the 'primary' version for mods and the newest was 1.8.6 or something.
[04:21:16] <Kasran> So I'm trying to get back into it now. 1.7.10 has so many mods that I'd be too tempted to download hundreds of the big ones and have it not even work (which is what put me off of modding in the first place), so I'd like to stick to a newer MC version.
[04:22:04] <Kasran> Any recommendations what version I should use for modding? It's looking like 1.10.2 is the best option.
[04:22:53] <TehNut> 1.10.2 is what most players are on
[04:23:00] <TehNut> 1.11.2 is an easy port
[04:23:07] <williewillus> ehh
[04:23:10] <williewillus> "easy"
[04:23:16] <williewillus> not as easy as 1.9 to 1.10 was
[04:23:22] <TehNut> Easy, but can be annoying
[04:23:26] <TehNut> Depending on what your mod does :p
[04:24:43] <Kasran> Not easy for e.g. Botania, from what I'm reading
[04:24:53] <williewillus> i did that
[04:24:56] <williewillus> it wasn't that bad
[04:25:02] <Kasran> (oh, I'm asking from the perspective of a player, oops)
[04:25:02] <williewillus> lots of regexing
[04:25:13] <Kasran> You ported Botania to 1.11?
[04:25:16] <williewillus> yes
[04:25:17] <williewillus> :P
[04:25:22] <Kasran> ...huh.
[04:25:25] <williewillus> and 1.10/9/8
[04:25:42] <TehNut> now go backwards
[04:25:45] <TehNut> 4/3/2
[04:25:51] <williewillus> lol
[04:26:11] <TehNut> Blood Magic 1.9/10 -> 1.11 was easy
[04:26:12] <williewillus> make it a base mod
[04:26:12] <TehNut> Just annoying
[04:26:17] <Kasran> I can't find any not-shady-looking downloads; is it still an in-development/in-testing thing?
[04:26:30] <williewillus> yeah no release yet but it's on the github
[04:26:35] <Kasran> ahh
[04:26:37] <williewillus> and afaik it's playable
[04:26:51] <Kasran> I shall wait patiently for an official release and content myself with, uh, Forestry
[04:26:58] <williewillus> forestry's on 1.11?
[04:27:04] <TehNut> yeah
[04:27:18] <Kasran> I'm probably gonna end up making a second Forge profile for 1.10.2 so I can hit up some of the bigger mods I've been missing
[04:27:19] <williewillus> nice
[04:27:22] <TehNut> BM is if you know how to build from source :p
[04:28:39] <Kasran> like, EnderIO is on .10 but not .11 yet
[04:28:50] <TehNut> I think it's 1.11 on Github
[04:28:51] <Kasran> would that I could contribute to that project, but I've never made a mod myself
[04:29:16] * VikeStep ( has joined #minecraftforge
[04:29:22] * IceDragon (~ThatGuy@ Quit (Ping timeout: 194 seconds)
[04:30:58] <SparkVGX> do you mean by yourself?
[04:31:14] <SparkVGX> you started off with "I haven't done any Minecraft modding stuff in probably over a year"
[04:31:32] <SparkVGX> or do you mean you haven't finished and released a mod
[04:33:54] <williewillus> i feel conflicted whenever people try to port mods
[04:33:57] <williewillus> then do a really bad job of it
[04:34:13] <williewillus> it's like I appreciate the effort but do a good job if you're going to do it >_<
[04:34:33] <SparkVGX> yeah, but you're a professional in doing that
[04:34:49] * Naiten (Naiten@ Quit (Read error: Connection reset by peer)
[04:35:26] * Lathanael|Away ( Quit (Ping timeout: 180 seconds)
[04:35:42] <Kasran> Oh, when I meant I haven't looked into the Minecraft modding scene (that is, what's new)
[04:35:57] <Kasran> Really what I should have said was I haven't played Minecraft, with or without mods, in over a year
[04:36:27] <Kasran> Apologies for the confusion
[04:36:51] <SparkVGX> ^_^
[04:37:11] * Lathanael|Away ( has joined #minecraftforge
[04:40:04] <Kasran> That said, I may want to try learning to mod Minecraft again
[04:40:38] <SparkVGX>
[04:40:44] <SparkVGX> A good place to start ^
[04:40:53] <Kasran> especially since Harder Peaceful, one of my favorite utility mods, seems not to have been ported to any recent version
[04:41:30] <Kasran> The only thing it did was make Peaceful difficulty have the hunger rate of Easy difficulty
[04:42:23] <Kasran> which I liked, because I like having a little bit of impetus to build things in Peaceful but am not too big a fan of enemy mobs (I'm a wuss haha)
[04:42:38] <SparkVGX> (:
[04:43:27] <Kasran> So this is for 1.10.2; is there something else for 1.11.x, or would you recommend I just not bother with that MC version yet?
[04:43:29] * Nanobird ( Quit (Quit: Console.Write("Goodbye, world!");)
[04:43:43] <SparkVGX>
[04:43:49] <williewillus> it's basically the same
[04:43:52] <williewillus> besides the itemstack changes
[04:43:52] <SparkVGX> ^
[04:44:13] <SparkVGX> Starting in 1.11, ItemStacks can never be null.
[04:44:21] <williewillus> *should ;p
[04:44:26] <SparkVGX> ^
[04:44:32] <Waterpicker> Do you get them to air now if they need to be empty?
[04:45:01] <williewillus> ItemStack.EMPTY
[04:45:10] <SparkVGX> ItemStack.isEmpty?
[04:45:18] <williewillus> and anything with an invalid Item or non-positive stacksize is "empty"
[04:45:43] * Jezza (~Jezza@ Quit (Ping timeout: 384 seconds)
[04:45:46] <SparkVGX>
[04:45:52] <williewillus> so theoretically things like `stackSize--; if (stackSize == 0) setStack(i, null)` are no longer necessary
[04:46:02] <williewillus> since stack.shrink(1), if it goes to 0, automatically becomes "empty"
[04:47:38] <Waterpicker> So I have a question for 1.10.2 right now.
[04:48:36] <Waterpicker> How would I get an ray cast from entity eye elvel and teleprot to it an entity in said raycast
[04:48:56] <williewillus> teleport who to what?
[04:49:18] <SparkVGX> you want to teleport the entity to whatever it is looking at?
[04:49:33] <bjorguv> what’s wrong with this
[04:50:07] <SparkVGX> I can't make your link load
[04:50:37] <SparkVGX> nevermind, got it. What was the error?
[04:51:11] <williewillus> if you ever want to be forward compatible without headaches use a lowercase domain :P
[04:51:15] <bjorguv> in block cannot be applied to ()
[04:51:36] <williewillus> Block doesn't have a 0 parameter constructor
[04:51:42] <williewillus> you're trying to call one that doesn't exist
[04:51:55] <SparkVGX> missing a material for the block?
[04:51:55] <Waterpicker> while holding an item yes. SparkVGX
[04:57:27] <SparkVGX>
[04:57:40] <SparkVGX> Waterpicker: look at the doBlink function
[04:57:45] <bjorguv> I’m making my basic block class what do I put as my super()?
[04:58:26] <williewillus> look at the code
[04:58:30] <williewillus> what does it want? :P
[04:58:39] <williewillus> also I made a funny little guide detailing how I port things
[04:59:18] * SparkVGX saves link
[04:59:27] <williewillus> idk how useful it actually is
[04:59:42] <williewillus> i joke around in it a lot but it's the general order
[05:00:04] <Waterpicker> SparkVGX, So I guess I can easily adpt it then?
[05:00:14] <SparkVGX> repeats step 11 on a regular basis.
[05:00:46] <SparkVGX> Waterpicker, if you do use code from it, make sure you document in your own code where you got it from.
[05:00:52] <SparkVGX> but yes, you should be able to adapt that
[05:01:29] <SparkVGX>
[05:01:50] <SparkVGX> that's the license for the enderio code
[05:03:30] <SparkVGX> Willie, when you port a mod, do you release it on curse?
[05:04:03] <williewillus> for botania unofficial I did for a short while before vaz got it back
[05:04:24] <williewillus> for aura cascade I was added to the project, but then I gave the mod back
[05:04:36] <williewillus> for PE I'm on the team but not part of the curse project
[05:04:49] * McJty ( Quit (Ping timeout: 206 seconds)
[05:08:10] <Waterpicker> Daww that's nice. Just let anyone looks at the source code to know that a tiny bit of enderio code was used?
[05:09:17] <SparkVGX> something like that. "This code contains modified code from _______ - link: mod's github"
[05:09:38] * williewillus ( Quit (Quit: Leaving)
[05:11:46] <SparkVGX> More often than not, you'll find that looking at popular mod's github can be really helpful. They often have proper coding practices and ways of doing what you want to do.
[05:12:26] <killjoy> Anyone else having issues with
[05:12:42] <killjoy> Everything's left offscreen
[05:13:04] <SparkVGX> I have the same issue
[05:13:11] <Waterpicker> like the method and such?
[05:14:07] <+mezz> killjoy, looks weird to me too
[05:14:24] <SparkVGX> Waterpicker, a whole bunch of things. I found them to be a good way to learn tile entities that have inventories and GUI's to access them.
[05:18:54] <Waterpicker> sheesh there is alot of code to digest for this
[05:19:00] * McJty ( has joined #minecraftforge
[05:19:26] <shadekiller666> does anyone see any reason why this class would crash a dedicated server with this error log?
[05:20:37] <shadekiller666> i think the reason that it can't load ContentMod has to do with a reference to a separate ContentTab class which then references ContentBlocks.tungsten_reinforced
[05:21:01] <shadekiller666> does it have to do with the fact that ContentBlocks references the ModelLoader?
[05:22:05] <+mezz> hard to tell what's going on without the imports
[05:22:26] <shadekiller666> ok, let me fix that
[05:23:29] <shadekiller666> mezz: reload the link
[05:24:15] <shadekiller666> in case you're wondering the methods in this class are called from the CommonProxy and ClientProxy classes
[05:24:36] <+mezz> there is most likely a crash during static initialization of
[05:24:54] <shadekiller666> preInit() is just called by both, then register(Side side) is called by both, passing in SERVER/CLIENT respectively
[05:25:03] <+mezz> can I see code for ContentMod?
[05:25:46] <shadekiller666> do you need the proxies as well?
[05:25:50] <+mezz> no
[05:26:04] <shadekiller666> reload the link
[05:26:19] <killjoy> shadekiller666, what was the exception?
[05:26:32] <shadekiller666> killjoy, the crash log is included in the link
[05:26:42] <shadekiller666>
[05:26:43] <+mezz> shadekiller666, this log says one of your static fields in ContentMod is crashing
[05:26:44] <killjoy> Oh, I didn't scroll down enough
[05:27:23] <shadekiller666> my co-dev thinks its the static tabContent method
[05:27:42] <shadekiller666> which doesn't make sense to me cuz creative tabs are usually defined in the main mod class
[05:28:04] <shadekiller666> unless having a separate would cause it to not exist somehow
[05:28:13] <+mezz> I recommend against static fields that create new objects for this reason, it's hard to debug
[05:28:29] <+mezz> here's what I do instead (one sec, finding link)
[05:29:18] <+mezz>
[05:29:33] * DarkevilAway is now known as Darkevilmac
[05:29:41] <killjoy> I would do what vanilla does
[05:29:44] <+mezz> this way it's lazily loaded and any crash will show up in a clear way
[05:29:58] <shadekiller666> about ContentBlocks, is it ok to have the client-only model registration stuff in the same file as the regular block registration stuff as long as the model stuff isn't improperly referenced from server-side code?
[05:29:59] <killjoy> initialize and register the items normally, but don't store them locally
[05:30:16] <killjoy> In a new class, create fields that get them from the registry
[05:30:52] <killjoy> Don't reference that class until after post-init
[05:30:53] <+mezz> I find vanilla's way pretty annoying because it can be hard to track down where objects are, it uses strings
[05:31:16] <bjorguv> how do I initialize things in preInit?
[05:31:32] <killjoy> just do it in the PreInitializationEvent
[05:31:42] * TheUnknownFew (~TheUnknow@2601:547:c400:78b6:4dcd:66e3:e79a:8fc) has joined #minecraftforge
[05:31:46] <bjorguv> how do I do it?
[05:31:48] * VikeStep ( Quit (Quit: Leaving)
[05:32:01] <killjoy> Do you know how to listen to an event?
[05:32:11] <shadekiller666> the way that i have the dev env set up for this mod is that i have it in the same env as another mod i'm working on (they kind of go together, but are separate ideas)
[05:32:19] <bjorguv> no
[05:32:50] <SparkVGX> bjorguv, if you are working in 1.7.10, you should take a look at pahimar's modding tutorials. He goes through that
[05:32:52] <shadekiller666> and in the other mod, each block class has a public static final BlockCustom INSTANCE = new BlockCustom(); field
[05:32:57] <+mezz> shadekiller666, keep client-only stuff in your proxy
[05:33:03] <shadekiller666> along with an MRL as well
[05:33:06] <bjorguv> sparkVGX ty!
[05:33:14] <shadekiller666> :/
[05:33:15] <shadekiller666> ok
[05:33:36] <shadekiller666> i just like the idea of having everything related to blocks in one place, items in another, entities in another
[05:33:39] <TheUnknownFew> So I had a question regarding Resource packs. How/when does a resource pack decide to use another resource from a different pack when two are used?
[05:33:40] <killjoy> Hm.. why would there not be any documentation on EventHandler?
[05:33:59] <SparkVGX> bjorguv - He didn't finish it, but he did enough to help you
[05:34:04] <+mezz> shadekiller666, you can create as many proxies as you want
[05:34:45] <killjoy> bjorguv, do you see the method annotated with @EventHandler in the example mod?
[05:35:14] <shadekiller666> huh
[05:35:14] <TheUnknownFew> Currently working w/ Resource Packs and found that when using two resource packs, the resources of the same type get overridden
[05:35:28] <shadekiller666> wait so could i mark ContentBlocks as being its own proxy?
[05:35:34] <bjorguv> killjoy: yes
[05:35:44] <killjoy> Basically copy that method (name it whatever), and change the argument to be one of
[05:35:47] * sinkillerj ( Quit (Quit: またね)
[05:36:44] <killjoy> Make sure you annotate it as well
[05:37:07] <killjoy> See here for more info.
[05:37:55] <killjoy> Differences are 1) only usable in @Mod class, 2) uses @EventHandler instead of @SubscribeEvent, 3) don't need to register
[05:43:52] <TheUnknownFew> to add a little bit to what I said, each resource pack has a lang file and a tabs file. The tabs file has a jsonfiles.json in it. This is to be true for every json. If using more then one Resource pack, these get overriden. How do I prevent that?
[05:44:26] * AbrarSyed is now known as Abrar|gone
[05:44:39] <TheUnknownFew> or, how should I go about merging the resources?