Cerandior
Members-
Posts
385 -
Joined
-
Last visited
Converted
-
Gender
Male
-
Location
Albania
Recent Profile Visitors
7270 profile views
Cerandior's Achievements
Diamond Finder (5/8)
26
Reputation
-
I would assume it is not so different from any other java/gradle project. In the mods.toml add your main "library" mod as a dependency in your other two mods. Then simply import the library mod package into your two other mods and use whatever you want from it. Because the library mod is listed as a dependency in both your other mods, then you can be sure the user will have the library mod installed as well, because if they don't, Forge will notify them before the game is initialized.
-
Okay then, will try to move everything over to 1.16 Is there any comprehensive post that lists all the major changes? Or some sort of official documentation about the 1.16 version. I will probably be met with a list of errors when I open the same project on the new version so It would be nice to have a general idea on where to start.
-
I am going to give this one bump and if there's no solution, I will try to upgrade to the latest version.
-
I have a somewhat old project lying around and I was planning on working a bit with it again. I opened the build.gradle file with intelliJ however I ran into some issues. For starters, compileJava failed with the following log: https://gist.github.com/arjolpanci/b5a09e9a7165670a5efd880fb0fa8e1d It's just throwing a bunch of FileAlreadyExistsException. Perhaps the related files are already on the project folder (Don't know why it even executes this step if that were the case). The other problem is that intelliJ cannot find the forge version at the url specified under "repositories" on the build.gradle file: https://gist.github.com/arjolpanci/6a1c4f01795578124635960503f57f9e Are these errors fixable, or am I forced to upgrade to one of the more recent versions? Thank you in advance.
-
I think clouds are disabled on "Fast" Graphics settings. Maybe you can pull something out of that.
-
Urgent: Desperately Need Help With Update
Cerandior replied to insane_gravy's topic in Modder Support
Wait, so the mod you are trying to update was made for Minecraft 1.5? That is so ancient that there is no chance in hell that you can update the existing code for the current version. Not faster than rewriting the whole thing anyways. As Alpvax and Draco have already suggested, you will be far better off re-doing the whole thing yourself. Being a mod from 1.5 it shouldn't be very difficult (depending on the content of course) to recreate its functionality for 1.14-15 considering the tool-set Forge offers now is more extensive than it was back then. -
I added a new fluid, but the game crashes whenever I place it
Cerandior replied to Press X For's topic in Modder Support
Before you give us a look to your code, I am guessing that you might have forgotten to add the IProperty to the state container of the block via fillStateContainer -
Okay, I re-did the whole thing again. It's the same stuff I was doing before but everything it's on the slots and the container now. Also I kept the packets for the buttons, because if I don't do that the player would have to update the contents of the gold slot when he changes to another trade to get the new trade item. I want it to check for the input when the trade is changed as well so the new Item can be displayed immediately. Container Slot Screen Entity Thank you for your help and your patience.
-
1) That is actually quite stupid now that I am looking at it again. I was doing this very late in the night yesterday. The screen was saving the previous selection and when I reopened the GUI I wanted to reset. And since I was working with packets for a while, the first solution that I thought of was sending a packet. Absolute genius. 2) Well, if I don't send a packet to the client, the offerlist of the container is empty for some reason. Or perhaps you are not questioning why I am sending the packet rather why I am sending it to all players. If that is the case, this is the reason: This is the problem. You are right, I am not sure how to handle this interaction. The slots were sending stuff to the server, because I can get the Player who send it by doing that, and from the player I can get the container and so on. I am kind of doing the same thing as before, but now I am checking for stuff in the packet instead of before notifying the server. Which maybe is kind of the same thing since I am still telling the server to update slot contents based on what was changed in the client. I am not sure what I am supposed to do though. The only input I have from the player is two slots and some buttons. The buttons are only used to change the selected trade, so not much to handle there, so all I am left with are the slots. What should I be telling the server except that the player changed the contents of some slot and took some item from another. There is no other information that I can think of that should be sent to the server. So with the onSlotChanged() I notified the server that the contents of the slot were changed, so then I check in the packet if the right container is opened by the sender. If he actually can use that container, and if the new contents of the slot he changed are in range of some specific values. If yes, I put the selected trade item in the other slot so he can take it. Then with the onTake() I check again for the previous conditions and decrease the stack size of the gold based on the price of the item. That's what I had in mind when doing all of this. Which part of that chain is wrong? (Assuming I am not entirely wrong)
-
When a class/object is a child of another (it extends from it), it also has its fields and methods (only public and protected fields can be accessed directly). If you want to have a different implementation of any of the parent methods, you override them. For example, if you have a base class which describes all GeometricShapes and in it you have a method getArea(). You can override this method in the class triangles and rectangles which extend from GeometricShapes and you can make them return the respective areas.
-
Okay, once again, thank you for your help. I reworked everything and I would really appreciate it if someone can have another look and tell me if there is still something wrong with the way I am handling things. All my packets can be found here: https://github.com/arjolpanci/VanillaExtended/tree/master/src/main/java/teabx/vanillaextended/network And my packets are used by: My GUI Buttons My Custom Slot My Entity Also, when I am sending packets to the Client, I am sending it to all clients at the moment. That is because I am not familiar with the java Supplier and I am not quite sure what I am supposed to pass as an argument to PacketDistributor.PLAYER.with() since it asks for a Supplier.