#General & Development Help
1 messages Ā· Page 10 of 1
No and no afaik
A default state is still a state š
Block Renderer -> Blockstate -> Model -> Texture
This is how a block is tied to a texture
A geckolib tile is more like an entity and skips steps. But it will throw a warning if no blockstate file is present
ive been trying to get my prism to work cross dimensionally
i am very confused
do spell projectiles no longer resolve when they cross dimensions or something
also tried crossing the portal while my projectile is still on the way to be teleported
oh wait i know why
nevermind
ah got it
awesome now textures for my remote
uhh
soonā¢ļø
yeah im gonna need to commission someone or smth lmao
screenshot of my image editor because the attachment is too small
What's that
awesome now textures for my remote
Probably the remote of remoting
its basically just a dominion wand but backwards
ill add lectern functionality later
rn its just for my new warping spell prism
so you can link it to the prism once then move the target around
What kind of lectern functionality?
i'd guess store the lectern then mass link chests
yeah
cool ill add it anyway lol
Allows you to store a location and then toggle which side you're linking
does anyone know a non-annoying way to give an item a custom name without it becoming italic
actually i could probably see how dominion wand does it
ended up overriding getName
pretty sure my mod is ready for a 1.0.0
would love better textures but im not gonna bother for now
frick i need a logo
i totally forgot about that
What's the addon exactly?
still small for now
but i wanted both of those in the game so i just made them real quick
maybe ill just use the remote as my icon lmfao
except curseforge wants minimum 400x400 so ill have to upscale
It's what I did
Icon is the warp index
Same for me, just with the Starby Scroll
love that we're all too lazy to make a proper logo
With Ars Artifice I did go a little fancier
with a block render
I just used the Frostbuncle as my logo for Ars Fauna.
He. Got my GF to help out with textures and the Starby scroll was at least partially her. So I was even lazier! š
oh wow curseforge's web ui has gotten significantly better
All thatās left to do is figure out how to make a loot table that includes items from Ars Nouveau and how to make the Shadowbuncle actively avoid lit areas.
i remember trying to publish https://legacy.curseforge.com/minecraft/mc-mods/psionic-relics and having to go into inspect element to get psi as a dependency
because their search results werent scrollable
top notch ui
now in review for both cf and modrinth
https://www.curseforge.com/minecraft/mc-mods/ars-controle approved on cf
still under review for modrinth
warping spell prism? how is it different from using a portal?
can target and track entities
so you can have a remote potion brewery constantly applying effects on you (the reason i even wanted it)
hehe I made that before but then scrapped it because of how OP it was
it feels somewhat balanced if you ignore other addons
the fact that you can target others and apply debuffs completely remotely is what makes it OP
also apparently ars additions has or will have parallels for both of the things i added in controle anyway lol
though i prefer spell prism to turret
because spell prism means you can warp projectiles from custom turrets like elemental's
oh also you reminded me that i forgot to add a source cost for cross dimensional warping
theres one for long distance warping
but none for cross dimensional
oh god im gonna have to port this to 1.21 and i cant abuse nbt anymore
ok, this sounds epic
the remote is apparently quite obsoleted by ars additions though :p
might be worth it to merge the two mods under a larger umbrella
also i hate the control scheme i came up with but its about as good as its gonna get
dw weāll manage
i mean i could also just get an optional runtime dep on additions and do custom logic to handle their advanced wand
thiugh the mod sounds really cool
that just sounds like a pain though
this sounds like the better option
yeah its a better option but still a pain :p
especially since its probably gonna be "compatible" through heavy use of mixins
which is fine if additions never updates
ill make a post in #1019655289873641555 earliest tomorrow but theres a 99% chance i forget
or simply get the wand as base mod feature for 1.21
could also work
would prefer that
The advanced wand supports anything that uses the dominion wand interface
i doubt it stores dimension though :p
It does
looks like i need to change some stuff around then
not today!
dont think im able to get dimension from IWandable
May need to make a PR into Ars for that
level is not in the parameters?
ah, i guess you mean you need the data of the first spot, not the last
BlockPos just needs to be updated to a GlobalPos
May be worth switching to GlobalPos anyway
we probably also need a cross dimensional IWandable thingymabob
because i could call lectern's IWandable impls from another dimension
but it wouldnt work
and theres no way to tell atm without hardcoding afaict
That's why I recommend using a GlobalPos
even if we do use GlobalPos theres not really a way to tell if a specific implementor of IWandable actually accepts cross dimensional positions as part of its functionalities though
Not by default but if they handle GlobalPos properly they will support it
sure we can make everything take GlobalPos, but how do i tell that a StorageLecternTile will only work with positions in the same dimension
because i dont think cross dimensional storage lecterns are exactly intended
i suppose we could just have a boolean crossDimensional() in IWandable
defaulting to false ofc
Make the connection return a Boolean for whether it's successful or not
But do you care why it failed? Or do you just care that it failed? Do you care at all?
for telling the user what went wrong
Should be the responsibility of the block to inform the user that it's not accepted
thats probably a fair assumption
not sure if anything else could go wrong
hopefully not
moving this discussion over to #api-development if anyone wants to chip in, ill be asleep for the next 8 hours
That's one of the fastest project approvals I've seen on both platforms
they love me
especially curseforge
because one of my other mods has 2m downloads
(its a really small mod, just useful for big packs so big packs like RAD2 included it)
I was surprised Ars Fauna only took like a day to get approved.
Some of the updates were approved in less than 15 minutes though.
Updates are quick but initial project approval is typically quite slow
2 minute approval for controle 1.1.0
time to make a post since ive cleaned up the internals and added a config
In addition to the pinned tutorials I'd like to recommend TurtyWurty to figure out some weird forge things, like capabilities, menus and the like:
https://www.youtube.com/playlist?list=PLaevjqy3XufYpmF5kvwy2Z1v-dsSUjhlx
Not sure if there's actually extra stuff, kap makes the same video tutorial twice for both loaders
Anyway didn't know turty got back to making them, I kickstarted mine with his 1.16 vids
whats the max sourceCost of a enchanting apparatus recipe? cause i made a custom one with 20k required source and im getting a message in chat that says "not enough source nearby", even tho there is a creative source jar nearby the apparatus
is it 10k?
10k/1 jar is the max
hello, how should i go about appending an attribute to a player/entity ?
(the goal is to modify an attribute list each time the player levels up, to give players more controlā¦)
you can probably look at the attribute command for a rough idea
ah i forgot about it
If the attribute already exists, you're looking for attaching an attribute modifier
mhm alr
any favorite addons for 1.16.5?
1.16.5 is borderline unplayable for ars, but iād recommend :
- Omega
- Elemental
- TMG.
Btw please refer to the #general-and-help , as i am not sure that #1019655534900678737 is the correct channelā¦
I figured the general & dev help in the addon chat would be more appropriate given that it's discussing addons, not the base game, sorry
donāt worry too much
Technically General Discussion was merged with DevHelp
So discussing anything about addons is totally fine
Both ideas for existing or potential addons and discussions on what should be improved in addon x
how should i go about adding a "passive" attribute (IE one that does not come from an item) ?
You need a trigger to attach it, but there should be a livingentity#addAttributeModifier
Not sure on the details between permanent vs temp, and which one should be used based on trigger to attach it
I'd guess you can use something like playerJoinEvent and then check for id to see if it's there or need to be added
Perm vs temp might be related to if the am is lost or kept on death
thanks a lot
i have found a way to add modifiers
all that remains is to create the logic around the whole system
am I making a mistake? maybe
People ask about it frequently, so I thought I may as well capitalize on it
cursed
Tier 5, with Tier 4 thread slots š
it's aimed at the people who like big number go brrr
have to add an Allthemodium Spellbook
we need some unification for magic attributes for all magic mods
^
i had a sketch of a project centered around it
the problem was that certain mods give way more mana than others
and i had to find an exchange rate while also accounting for other addons/mods
the hardest part would be accounting for addons that have big numbers like ars trinkets, otherwise there arent many big mods with mana right?
Glyphs also account for a bunch of additional mana
learning all the glyph makes such a big difference ngl
I meant you could try to balance it based on the current ecosystem of mods, but at some point someone will make an addon with big numbers for one of the mods and itll become a balancing nightmare
after doing this, what should i do to create a new damage type ?
damage sources are a datapack registry, so you need the json file that comes along with it
datagen is probably overkill for just one, so you could make it by hand and look at the ars or minecraft ones
How much saturation it consumes on the target
Which requires an advanced table since base Ars intendedly limited the number of slots and power to 3
In the alteration table
wohoo 1.21 ars
welp, maybe just increase the amount of 3s
What exactly is terrablender? does ars nouveau still use it?
do I need it in my dev env ?
I see
I am using the new MDG plugin and it automatically fetches dependencies! Lets see if it works
(it seems this is not a MDG thing but Neoforge thing in general)
ew why is it in forge maven.
how does it know what dependencies to fetch and from where?
normal gradle/NG can do that too if the maven you download from is setup to point to the other mavens
it could, thats how create served its dependencies
i was told that fg.deobf broke it. not sure how the internals worked
you may be right, I thought I was getting all of the create deps in one, but looks like I had to pass { transitive = false } to create, and still manually declare the deps
W pfp chonky
Yeah I love the artist. I have been using their artwork as pfp for almost a year now.
https://www.instagram.com/_artizzy/ you should check them out :)
will do
addons don't need it, ars is already compiled at that point
If you don't care about the forest in devenv you can ignore it
How are you finding it? I'm considering switching to MDG over archloom due to unfortunately more archloom errors and MDG looks much better than ForgeGradle
MDG super nice. I removed alot of code during the port so it is nice
according to shartte/gimpansor, it is recommended way for people starting out with neoforge and for simpler projects
Rover(from enderio) said the multi mod/sources/module project is also easier in MDG
I mean ocultas barely has anything.
true, needed to change so much even though it was small
I will look into updating the example addon. would you want to use mdg for that?
Plugin [id: 'net.neoforged.gradle.userdev', version: '7.0.145'] was not found in any of the following sources:
do you remember why it throws his?
uh, mdg would simply be a variation of ng, still by neo?
i'll check it from chonk's
did you add the maven repo ?
in settings.gradle
still by neo but written from scratch. its faster and uses modern gradle features
folks why am I going crazy
reboot the IDE /s
it worked
me is happy
time to add some compatibility for ars magic damage and Apoth
btw does anyone have Shadow Of Fire's DC?
i couldn't find it unfortunatly
Should I add compat for my mod (the armor one) with Ars Nouveau. It can take the same attributes and enchants
Help me decide how I should go about it without overshadowing ars armors
(dont want to repeat what happened with heretic)
I'll rush after Sunday
Today I ported the core of neg, leaving out the binder as I have to rewrite the inventory and might have to correct stuff for the book perks
And I shouldn't had, I have an exam Thursday
it looks a bit muted doesnt it ?
same
Yeah part of me thought laser sword
for 1.21. ensure you recipes are in "recipe" folder and not "recipes". check your datagen target :)
know any good way to automatically bump version numbers in gradle.properties?
Not so much bump but I have in my CI pipeline a way to set the version and build it and check the version into source control
tag but also track it so it's possible to see the latest version from the source
The only new colors is the brighter gold
how should i go about creating a script to generate data (json)?
Have a way to make the JSON from the object then use that skeleton to generate it as file
For a lot of vanilla stuff there are premade methods, if you check Ars datagen classes you will find one for almost all types
oooh alright
i am making a tetra addon (pain) and i need to make a lot of jsin files for it
thanks a lot
Tetra may have datagen providers
I would say to take a look at the 1.19 tetra ars addon
But the mod likely got some internal rewrite
#ArsArmiger
Ars Armiger was basically just KubeJS iirc
It was upgraded later IIRC?
heya there, how should i make it so that a certain glyph is disabled by default?
I think you can try to override the buildConfig to make it default to disable
i think imma create a tetra addon based around modular spell books (don't note my words)
thanks a lot
what kind of modular spell books ?
Yay. Ars Fauna is done - finally got that last loot table to work as intended. It REALLY didnāt want me calling loot from other mods for some reason.
idk yet
but i'm looking into it
it might also be (even more) modular armors
IE custom material mage armors, upgradable (hopefully)
any idea as to why this recipe does not work anymore?
which version ?
found the error, i am big dumb
i forgot to finish adding an apparatus recipe (no result) and it bugged the whole thing out
@unreal summit are their hitboxes ment to be this large?
think your the right one to ask, sorry if not
They are not. Proabably not a big deal with Skelebuncles, but Iāll check it out.
Hotfix has been submitted and should be ready for download shortly.
does anyone know why this is not working (forge 4.2.20) ?
What's the type of FROSTED_EFFECT?
it be like that haha
Art style wise, how would you translate the Carian Phalanx to Ars?
Keep the swords or make them something more like homing soulmass, with current projectile style?
both would be awesome
it's working people wrong chat lmaooo
was looking into ars code to see if there were any low hanging fruit to optimize, nope
i mean theres a few nitpicks
but nothing i can say would be substantial enough to see a % boost
SourceManager::tick is a bit sussy with the stale hashset, but it only runs every 3 seconds
there is a lot of copying in SourceManager in general actually
not exactly sure why?
yeah new HashMap(old) creates a shallow copy anyway
verified through jshell
which to me means that getCopySetForLevel is either wrong or useless
at least in the contexts its being used for in all of SourceManager
So I've been trying to make an Ars Nouveau addon, I made a fork of Bailyholl's repo and imported it into IntellJ, but I keep getting:
A problem occurred evaluating root project 'Ars-Nouveau-Example-Addon'.
Failed to apply plugin 'net.minecraftforge.gradle'.
Found Gradle version Gradle 8.7. Versions Gradle 8.0 and newer are not supported.
Use ForgeGradle 6 or newer for Gradle 8.0+ support.
https://github.com/Eeebsie/Ars-Nouveau-Example-Addon
How do I downgrade my gradle version?
Any help appreciated
Sorry, in between rounds and couldn't help more. If the gradlew wrapper is checked in you can just use that, too
Anybody have an idea why this isnāt working?
#api-development message
Doesnāt create an error during compiling, but doesnāt show up in game as a valid recipe either.
what is the file path ?
also, if there is any error, it wont show during compilation but when you load into the world
Can you show your log file also?
And the file path is src/main/resources/data/ars_artillery/recipes/
It's in the same folder as all the working recipes
Yeah it's just an incorrect item name
ah...i guessed (incorrectly) that it followed the same format as all the others
and voila! Fire Turrets are now craftable
That's for Andriod Studios thanks anyway tho
Intellij should have a setting to use the gradlew wrapper in the repo, that should work
Go to gradle folder then gradlewrapper.properties?
Could also try to up to FG6
Changing name: 'ForgeGradle', version: '5.1.+', to 6+
I did
https://github.com/Eeebsie/Ars-Nouveau-Example-Addon In the build.gradle, do I need line 159 through 171?
It's giving an error for line 159 (I didn't change anything)
(probably not the right channel, but) hello friends, is this mixin correct ?
public class TetraItemRClicked extends Events
{
ItemModularHandheld item;
UseOnContext context;
public TetraItemRClicked(ItemStack item, UseOnContext context)
{
this.item = item;
this.context= context;
}
@Override
public boolean isCancelable(){return false;}
public static class Pre extends TetraItemRClicked {
@Override
public boolean isCancelable(){return true;}
public Pre(StatusContext context){super(context,item);}
public void PostPre(Pre pre){MinecraftForge.EVENT_BUS.post(pre);}
}
}
In : InteractionResult
@Mixin(InteractionResult.class)
public abstract class TetraItemInterractMixin{
@Inject(method = "useOn", at = @At("HEAD"))
public void headInjection(){
TetraItemRClicked.Pre.PostPre(new Pre(context,player.getItemInHand(hand)))
}
}
(i need this mixin to easily have less pain when create modulable casting tools)
First of all, does it work?
i know think it should work
but i am confused on how to inject it and reference things tahtare in the method i will be mixing in
Ah, a Mixin injection takes all the arguments of the original method
Plus a callback to change the return value, if it's not void
ooh
interesting
may i ask if i could modify a list of variables (the tetra abilities) as they are declared in a static method (they are declared with public final ChargedAbilityEffect[] ...)?
this is the main issue i am having (atm)
I recommend this if you need help working with mixins
You should be able to use an accessor to set the value
hmm
I'd ask in Tetra discord if there is any proper way to do what you want first
If it's closed source now, it might be hard to find but be there
what are arr mods?
All Rights Reserved
ah i see
Closed source mods, where you're running into license issues just looking into the source
somehow it doesnt seem like that big of a deal
even with 81916 source jars in the same chunk
well actually its per level
but still that should mean 81916 hash computations
and it still only took 10ms over 1m20s of a turret being powered by a command block clock (cant remember if it was 10hz or 20hz)
BlockPos.withinManhattanStream could probably use some inlining though
capturing lambda go brrr
though the most expensive is definitely world.getBlockEntity
nothing we can really do about that though
Hey, quick question, does anyone know of any tutorials on how to use baileyholl's Ars Nouveau Example Addon? (From the GitHub)
Any help greatly appreciated
Or if you know someone who could help me set up an IntellJ environment for the example mod that would be better.
Since it's gradle the issue, maybe you should try starting fresh
In this Minecraft Modding Tutorial for Forge in Minecraft 1.20 and Minecraft 1.20.1, we are setting up the Modding Workspace for the first time!
== MODDING COURSES ==
FORGE ā¶ļø https://url.kaupenjoe.net/CourseForge120X
FABRIC ā¶ļø https://url.kaupenjoe.net/CourseFabric120X
== COMPATIBILITY ==
ā¶ļø Compatible with 1.20 & 1.20.1
== ASSETS & DOWN...
kaupenjoe my beloved š»
Good idea that sounds like a plan
I'll keep yall updated
I got it to build from scratch
@radiant depot you might have made a mistake (link version is 1.21, post version is 1.20)
force of habits
mhm
corrected anyway
hello, would this code work ?
if that push call fires to the event bus then sure
yes
the #push method is basically : MinecraftForge.EVENT_BUS.post(event)
thanks a lot
:^)
How would I go about registering a new creature type?
What I am wanting is to register all of my turret entities under a single type so that I can have a command target all entities of ātype=turretā
I have 21 different turret entities that I want to target with a single command. I can run 21 separate commands to target them all, but Iām trying to figure out how to target them all with one command.
You'll want to use an entity type tag, then you can use @e[type="#ars_artillery:turrets"]
how do i mark a block to be mineable with a pickaxe?
i forgot to do so for my spell prism lol
it just drops nothing always
tag minecraft:mineable/pickaxe
ah in resources yeah?
i guess provider miiight make more sense
ok now they break faster and still dont drop the item lmao
probably registering something wrong
yeah missed the loot table provider here like https://github.com/baileyholl/Ars-Nouveau/blob/main/src/main/java/com/hollingsworth/arsnouveau/common/datagen/DefaultTableProvider.java
Repository for the Ars Nouveau minecraft mod. https://www.curseforge.com/minecraft/mc-mods/ars-nouveau - baileyholl/Ars-Nouveau
But how do I add entities to a type tag?
Repository for the Ars Nouveau minecraft mod. https://www.curseforge.com/minecraft/mc-mods/ars-nouveau - baileyholl/Ars-Nouveau
So I just make a json file in the tags folder and add mobs by name using that formatting?
Yep
Hey guys, how do i bind a wayfinder?
Okay, what program do I need in order to pack my source code into a mod .jar if I donāt want to use the built-in function in MCreator?
Do you still have folders with .java files?
I do.
Iām not yet to a point where I can let go of MCreator completely for generating code. Looking at the .java file that defines an entity still looks like gibberish to me.
But Iām running into a situation where Iām including more and more custom code - which works fine if it is snippets within a file, but not if it involves custom folders that arenāt part of MCreatorās interface.
The built-in function to convert the file tree into a .jar wonāt include any folders or files that werenāt generated by the interface, so Iām looking for a way to include them in the final .jar
Just asking cause no idea on how mcc gives the user the files
You should download the example mod and then replace the files with yours
Then use the IDE to compile
Is there a way to have a mob run a command?
I want my Abjuration turret to apply a potion effect on all mobs of a certain type within range
You'd want to use a method on level to get nearby entities that match your condition
What potion effect do you want to apply?
As the player I can run the command /effect give @e[type=#ars_artillery:turrets, distance=1..4] Minecraft:regeneration 5 and it does what I want
You want to give other turrets regeneration?
Ultimately I need it to apply regen 1, resistance 1, and a third effect I havenāt decided on yet for the three tiers
Are you doing this in MCreator or in code?
Iām in MCreator, but Iāve learned how to lock the elements so I can customize the code within a given element when I need custom code for something
I can help out with code snippets tomorrow if someone can't help before then
Is it not possible to just have an entity run a command?
I mean technically you can, but it would be way more complex than just applying the effect
Applying the effect will be less than a dozen lines of code
Running a command as an entity I don't even know where I'd begin, probably looking at the source code for the execute command
Applying the potion effect to a single target is easy to do with MCreator, I just canāt figure out a way to simultaneously apply it to all entities of a given type in range other than using the command line.
There's a method on the level/world to get all entities that match a condition
I'll send you the code tomorrow
@unreal summit try to paste this in the entity class:
static final HashMap<MobEffect, Integer> effects = new HashMap<>();
static{
effects.put(MobEffects.REGENERATION,1);
effects.put(MobEffects.ABSORPTION,1);
}
public void tick() {
super.tick();
if (this.age % 20 != 0){return;}
float rad = 4;
List<Entity> nearby = this
.level()
.getEntities(this, new AABB(
this.position()
.add(rad, rad, rad),
this.position()
.subtract(rad, rad, rad)
)
);
for (Entity e : nearby) {
if (e instanceof LivingEntity living /* filters */) {
for (MobEffect eff : effects.keySet() /* will go through the keys, in this case, MobEffects*/){
if (!(living.hasEffect(eff))){ /* so as to not override more potent potion effects*/
living.addEffect(new MobEffectInstance(eff, 40,effects.get(eff),true,true));
/*
eff is the key (instanceof MobEffect)
40 is the duration (in ticks)
effects.get(eff) returns the potency, stored in the effects HashMap (a table).
the two boolean are optional and dictate the aesthetic properties, IE if the effect makes particles appear and if it is visible to the player.
*/
}
}
}
}
You want some check for the tick number otherwise you're searching for all the entities every single tick and reapplying the effect each tick
1)How do I make it only affect certain types (in this case tagged as ars_artillery:turrets)?
2)if I wanted to use a potion effect from another mod, say shielding from Ars nouveau, whatās the syntax for that?
do you have a gh (git hub repo)
1 : are your turrets instanciated from another class (E.G public class AbjurationTurret implements ITurretInterface)
2 : you would need to find the place where the potion are registered (in AN's case, com.hollingsworth.arsnouveau.setup.registry.ModPotions.BLAST_EFFECT
btw keep in mind that potions (the drinkable) are created from the mob effect (IE BLAST_POTION != BLAST_EFFECT).
If you want custom duration/amplifier, declare a new MobEffectInstane like in the code i shared...
(that is using the MobEffect)
1)I donāt know. I know that if Iām just using the command line I type #ars_artillery:category/turrets to do it
2)donāt have anything in particular in mind yet, I just know that replacing REGENERATION with ars_nouveau:shielding didnāt work in code even though it works fine in command lines
Not for Artillery as of yet.
can you create a class like this :
public interface ILyrellionTurret{
}
and then, at the start of every turret entity, do this :
public class DummyTurret extends Entity implements ILyrellionTurret {
// code
}
then in code, you can do :
if (Entity entity instanceof ILyrellionTurret){/* Code*/}
Iāll have to take a look when I get home this evening, but I donāt know how to do that in MCreator. Maybe āAdd new game ruleā?
you will need to go into the .java files
I can only edit an existing file, not create a new one. But I can tell it to create a new file of a type that it recognizes and then edit it.
alr
Itās like when I made the recipes for the turrets in the enchanting apparatus. I had to use āAdd new recipeā, then lock the element so the program wouldnāt update it automatically, then go in and replace the code in the element by hand. If I had simply added a new recipe file into the folder manually, the program simply wouldnāt acknowledge its existence.
But at the same time, Iām not at a point where I can just NOT use the program, because I donāt know how to do things like make a creature walk, set their stats, or call an animation - I need the GUI to guide me.
it's not a pb
i'd recommend getting Intellij or another editor for when you are editing the code manually
(if you don't have one already)
Once I lock an element in MCreator, I can directly access the code for that file through the interface and make any changes.
It just doesnāt let me freeform entire files, or move a file from one subfolder to another. But like the Tentabuncle loot table for Ars Fauna - I told it to create a loot table for the Tentabuncle so it would make and register the file, then I just locked the element, deleted the entirety of the text, and rewrote the entire file - all from inside the GUI.
This is also why yesterday I was asking about programs to package my source into the final .jar.
If I could use MCreator to generate the code for the core of the project, then just add additional custom files in subfolders as needed, it would open up new options - but I need something that could then convert the directory into the .jar without using MCreatorās built in compiler.
intellij can pretty easily do that
(i recommend looking at the build.gradle and the gradle.properties files in the ars adam+ gh repo to have an example of how it should be done)
If you wanna lock on doing it via MCC, I'd advise to ask in their discord first
We will always end up talking in java
Their discord has been notoriously unhelpful.
And Iām not specifically locked on doing it in MCC, but I DO still need SOMEthing with a GUI at the stage I am at. Itās like trying to write a thesis in a foreign language - I need something that basically translates from English to Java because I have the vocabulary equivalent of an elementary school child.
I am pretty sure getEntities() has an overload where you can specify the class type
so you don't need an additional interface
I thought MCC was Minecraft Championships
@zealous zenith do you put your CF points under your income/tax report
does the American law consider CF "work"
Keep in mind that different countries have different rules
And may depend on thresholds
I need to know about US
Ah, pretty sure it does in US
CF points are considered income
there is a specific tax code for hobby related work that is required after I think $600
that's sad. I have never withdrawn any points and wanted to get a new laptop but now I am in USA on student visa and so it's illegal for me to work
So I donāt have to report my $2.š
does that mean I cannot make/monetize mods any more?
its not a W2 income, and CF is not a US based entity
what is W2? can you elaborate
W2 is the standard worker tax form for employed persons
I think non-residents still have to file taxes and declare income, you just canāt be employed with a W2
Not sure on that though. Us tax code is notoriously complex
Do Amazon cards go towards that?
Maybe you can circumvent it, since it's not actual income
I was thinking about that but at the same time dont wanna get in trouble
I think I read something like that on visa note. I will go check
600/year or 600/month anyway
Anything with a monetary value technically counts as income under the US tax code
A year
Yeah it technically counts but absolutely no one is going to notice a student withdrawing some gift cards. Cf doesnāt report anything
But it doesn't have a name
I also donāt know which country the income is counted under
you just get a code that might be as well a gift code from your grandma, unlike PayPal that is listed as coming from Ow
Israel
Which is why I said ātechnicallyā.
Unless you are withdrawing an exorbitant amount the IRS will be none the wiser.
Overwolf is Israeli
Gifts are also technically taxable, above a certain threshold at least
Yeah but as a non resident you have to file income but which country does that income go to
I think the US forces you to declare all income even if you didnāt get it from anything related to the US
I think they may be classified as a resident as it's their current permanent address
That's due to being a US citizen, all income has to be declared to the US
And you get taxed on all overseas income as a US citizen
I know the US is very greedy and expects you to file US taxes on anything earned while you are living in the US - even if you ALSO have to file them elsewhere.
Yes*
* most western countries have a tax treaty with the US, so while you have to file taxes, you don't typically pay double tax
oh this would be helpful
It also has a variant with a predicate to filter each entity
And a variant that lets you specify the radius without needing to make the AABB
I wasnāt able to create a new entity class, so I couldnāt make the Abjuration turrets look for all nearby turrets, but I managed to make all turrets check for nearby Abjuration turrets and self apply the potion effects. Not elegant, but it works.š
Brute force for the win.
Also, never underestimate the stubbornness of a Gen Xer.š
this feels cursed⦠but if it works and doesnāt lag then its fineā¦
We'll never know without looking at the code and seeing an user spam them
But it's not like you need to open the box and discover it now
Well I tested by spawning in 150 turrets in my Ars Eclectica world that I use for testing my mod builds and didnāt see any drops in performance so there is that.
did you use spark to see which % of the world's operations was caused by the turrets?
does anyone know the cause of this error ?
i tried a bunch of things but none worked...
(tried asking for help in the forge DC server but sadly nobody responded...)
i think that iss_smp addon have another dependency
I donāt fully know how to read a spark profile, but the percentage next to ars_artillery says 0.19% even with spammed turrets all over the place?
Every time I go here I get intimidated lol
dw
youāll get used to it
this is the client thread
do : spark tickmonitor
can you send a screenshot of the bottom of the page?
i meed to see if you have the server thread available
ah alroght, thanks a lot
Okay, yeah. Thatās not gonna workā¦back to square 1
Disabled the procedure and uploaded a hotfix to Curseforge. That was definitely not a workable solution
Anyone have any idea why someone might be getting uncontrolled spawns of my Enderbuncles - like supposedly thousands of them?
Links to relevant source code:
https://github.com/Lyrellion/Ars-Fauna/blob/master/src/main/java/net/mcreator/arsfauna/entity/EnderbuncleEntity.java
https://github.com/Lyrellion/Ars-Fauna/blob/master/src/main/java/net/mcreator/arsfauna/procedures/EnderbuncleNaturalEntitySpawningConditionProcedure.java
no relevant mobcap?
your mobtype is MobType.UNDEFINED
it should be following the passive creature mob cap - and it does so on my test world
though im not sure if thats what defines the mobcap because ive never made an entity lol
seems like all your buncles are MobType.UNDEFINED though
not all, theres some undeads
i wonder what defines mobcap
seems to be defined here https://github.com/Lyrellion/Ars-Fauna/blob/03c43c6da9e60d4030bdb592ac15ebf0ee91b7df/elements/Enderbuncle.mod.json#L4
which says creature
which should mean passives
and neutrals
who experienced thousands of enderbuncles anyway
and in what conditions
the MobType there is either UNDEFINED, UNDEAD, ILLAGER, WATER, or ARTHROPOD in MCreator, so mine all fall under UNDEFINED or UNDEAD
a user named saeurkrau5 who reported to my github issue page...said he went to fight the enderdragon and encountered 1000's of enderbuncles
the only other possibility i can think of is that buncles are spawning in lazy/border chunks but that just shouldnt happen
so i took a look at the code but saw nothing out of order and tested for about 30 minutes in game, but couldnt duplicate it
so i wanted to get a better set of eyes than mine to see if there was some glaring error i was missing
im like 99% sure minecraft should handle that case by itself
On a side note: Iāve also gotten around to publishing the source code for Ars Artillery
i still have no idea what artillery is supposed to do :p
1)decorative rune blocks
2)play tower defenseš
I meanā¦you can also use the turrets as static base defenses if you want to.
Or even as extra firepower when out hunting, but that would get expensive
i originally thought the turret models you posted were pre-imbued chambers
in other words single-block imbuement recipes
Well that doesnāt sound like artillery at all.š
yeah lol
i dont think pre-imbued chambers is a bad idea though
might take it for controle in 1.21
maybe not
im too bad at graphics
That is a project for better programmers than me
Honestly, once I get Artillery finished Iām probably going to move onto my other projects for a while before I try my hand at another mod
are they gonna go on sale :p
Donāt know yet, but probably not. I will probably just post the final STL files on my personal Discord and make them available for free - especially to any Ars devs that might be interested in them.
The Ars D&D supplement MIGHT go on DrivethruRPG for a nominal fee. The ESO book cannot be sold because it violates the OGL and CC licenses, so it can only be shared as personal homebrew - not formally published, even for free distribution
Anyone experiencing client freezing on quit on 1.21? My dev instance takes forever to stop, even trying to terminate the process in IntelliJ
ive had that issue for a while which is why i usually just kill the process
Yeah killing the process still makes my editor hang
Hey folks, how can I set up a recipe to clear the data on an item? I was hoping just a shapeless recipe would work, but it seems to maintain the original data:
shapelessBuilder(AddonItemRegistry.ADVANCED_DOMINION_WAND.get()).requires(AddonItemRegistry.ADVANCED_DOMINION_WAND.get()).save(consumer);
that doesnt work anymore? it should
if not that means the clear scroll recipe is broken now too š©
It isn't working in my 1.20.1 one
The spell parchment recipe makes a blank parchment so it should be fine afaict
Update, I'm an idiot and I was mutating my default data
How can I have a loot table guaranteed drop two items?
I was thinking I could do a sequence but it doesn't do what I was hoping
{
"type": "minecraft:sequence",
"children": [
{
"type": "minecraft:item",
"name": "ars_nouveau:drygmy_charm"
},
{
"type": "minecraft:item",
"name": "ars_nouveau:summon_focus"
}
]
}
My Eyebuncle has multiple guaranteed drops if itās any help.
Contribute to Lyrellion/Ars-Fauna development by creating an account on GitHub.
Oh it just seperate loot pools
Not sure if that works for me
I wanted to do if silk touch drop block, if not drop charm and focus
Oh well I'll just make it dropSelf
Can someone direct me to the source files for how to setup patchouli pages? I found this, but donāt see how to setup the actual text for the pages themselves, just the categories.
Thank you. Found them.
Okay, I see those files call text files from another location, such as ars_nouveau.page.alteration_table
Where would I find THOSE resources in the file structure?
assets/lang/
en_us.json is the English one
It's a pointer to the translated text basically
Awesome. Thanks
So to add an Ars Fauna/Artillery guide book I just have to setup a similar file structureš
Now that everything in the mods is ādoneā and I donāt need new code auto-generated, Iām going to try exporting my MCreator workspaces to IntelliJ, where I will have more freedom to create custom files without the program ignoring them.
just dont put yours in generated if you arent using datagen, put them in the proper resources folder
Generated folder is where file generated by datagen code are stored, and cleaned when not needed, then put all together by the build jar task
Which would be where?
in that first folder you found where only the categories exist
generated follows the exact same format as the standard folder, and during jar build they get copied over into assets
but generated is for things made by scripts, if you add something manually it will either get ignored if you arent configured correctly, or get deleted if you run datagen
might be better if you download the ars nouveau jar and open it up in a zip viewer GUI so you can see the exact format
When Iām on PC instead of my mobile I can see the file structure when I view the GitHub.
Just trying to clarify whether what Iām needing to do is to just create an āentriesā folder with the relevant files in the āmainā directory instead of in the āgeneratedā directory
And likewise, with the āassetsā?
"Generated" folder is something only used by the datagen. If a file doesn't come from datagen it will be deleted, it also won't be present inside the build jar
So everything you're seeing on git under generated folder, assume it goes in main folder with same path when your doing it by hand and not by code
Okay, so Iāve moved my workspace into IntelliJ instead of MCreator, but I canāt figure out how to export the build as a .jar file.
Looking online says to run the ābuildā task in gradle, but I donāt get a file from doing that. It just says āBUILD SUCCESSFULā.
its in the build/libs folder
to build a jar. you need to go to your runs on right side and search and run "jar"
and then it will be in the directly mentioned above
Yeah, I had run the build task. I just couldnāt find the file because I was used to seeing a popup that let me choose where to save it.
Got both mods converted over to IntelliJ and have added patchouli support to both.
Why does Ars not register ISourceTile as a capability? Found a PR that does exactly this https://github.com/baileyholl/Ars-Nouveau/pull/1085
Also addSource and removeSource should have a simulate parameter (also return how much was/would be moved instead of the new amount). Makes it easier for other mods to stay in sync.
Can't remember why Bailey did nothing about it
With 1.21 cap rework a similar thing is more likely to be implemented before the officially stable versions
Is there anything new I need to do in 1.21 to add curio slots? I can't get my charm slots working and I have no idea why
Try with the datagen I added
Idk why but old format doesn't work
And it's very trivial to setup the datagen for the slots
I did and it did nothing
You may have to make a new world for it to apply
I tried š¦
comparing jars
exact same place
Same curios version
I have no idea what's going wrong
literally the same apart from value
you need an entities file too
thats how curios knows which entity can have a type of slot
which seems a bit weird you can even bother giving mobs specific slot types 
I assumed that was for rendering
its set on the player data attributes, then you may need a new world
Alright, will give that a try ty
What happened to Curios just auto-detecting the registered curios
not sure, it took me a while to figure out wtf was going on
this has fucked with me the past 2 days
Did anything change with structures in 1.21?
this is supposed to be my nexus tower
Oh they renamed the folder
ah shit, block data for runes is different, so that breaks my runes
I never asked this before but are there any guidelines for addons ?
for things that could overshadow/overpower base ars tools and equipment
Pretty sure that cat is already out of the bag between Omega, Trinkets, and Plus.š
heck even elemental lol
dont think elemental falls in the same category as the others. it extends mechanics than overshadow
their armor is indisputably better than what base offers
At this point I honestly consider Elemental part of ābase Arsā. The stuff it adds is the natural progression from Diamond to netherite and isnāt really that OP.
Jarvaās new ATM tier armor is starting to push things to the next level, but itās honestly kinda needed for Ars to stay relevant in the large modpacks.
Trinkets, Omega, and Plus dial the power scaling up to 11 though. Or even higher if used together.
Hey does ars use a simple function to make something accept and store source from a relay
I have a problem that I get this error Exception in thread "main" java.lang.IllegalStateException: Duplicate key key_key.ars_temeritas.cast_spell (attempted merging values key.keyboard.p and key.keyboard.p) but ars_temeritas.cast_spell is old and doesn't exist anymore and i dont even try to bind b š
i am stumped 
keybind class: [old link]
alr fixed it these 2 lines caused the game to crash
i am considering breaking discord tos š
If I want to make the runestone blocks from Ars Artillery count as sourcestone for purposes of building a warp portal frame, what do I need to add to the code?
You just add them to the block tag an_decorative
Thanks. I couldnāt figure out which tag counted. Was looking for something that said āsourcestoneā.š
Hello, how should i access the serverLevel from an entity ticking event?
if (entity.level() instanceof ServerLevel serverLevel) {}
alright, thanks a lot ^o^
there ia ATM compat?
indev by jarva
does the tier 4 slot do anything special?
Nope, not sure if it even works currently
tbh even two t3 slots would be op compared to whats currently available
the childrens yearn for more T3 slots
well there's a lot of threads that have an effect based on the level of the slot they're in, I'm curious if those things can go above 3
I figured that'd be the case, like with enchantments
man i hate java
i wonder how good a T4 wixie thread would be
iirc it's +20% dura per level?
think it was 15% per level
60% more duration on melded potions is insane
plus a wixie familiar on top of that, and a extend duration flask
Yeah that's the plan for the tier 4 thread slots
Iām toying with the idea of upping the power scale with t5 armor of my own - possibly dual element combos if no one else does them. Wonāt be for a while though, if I do it at all - focusing on the book for now.
People have suggested it for Ars ATM, but not sure how I feel about it
Still in early concept phase, but what Iām thinking is a parallel progression. Could do your ATM armor for increased stats and t4 threads - or could stay at netherite and t3 threads in exchange for dual element mastery. Stuff like āTempestmancerā for air/water or āLavamancerā for earth/fire, etc
I gotta learn 1.21 neoforge first though.š
Also would need 6 new armor models to cover the possible combos.
Think it would also be interesting to see an upgraded enchanters sword that has extra effects built in and/or that applies bonuses to certain spell types based on the spell schools.
do yall recommend moddevgradle or neogradle for 1.21 neoforge?
shouldn't make a difference if it's a simple project
both are just configure once and forget about it
It's not capped but the alteration table doesn't support higher than t3 unfortunately
It uses bones to display the tier and without overriding the model to add the other tiers it's not possible afaict
sadge
Yeah, that is the hardcoded part of Bailey
No more than three slots and no more than tier three in the base table
Just an excuse to gate the armor harder behind an ATM table š
nice nice
Could just change alteration table to render a font there instead of hardcoded model for each tier
hello there, if i were to create a LivingEntity temp; inside a capability and have LivingEntity getOldEntity(){return temp.deserializeNBT(this.oldEntityNBT))}, could i then use the getOldEntity method to set my LivingEntity's data to be the same as the old LivingEntity's data ?
You would need to store the saved tag instead, and then return the entity by recreating it from the tag, since you are going to need a reference to a level
hmm how can i recreate the entity from the tag?
is there a method in LivingEntity or in Entity that i could use?
the mob jar does it
EntityType.loadEntityRecursive(tag, level, Function.identity());
ohh thanks
is there an "easy" way to "rebuild" an existing mod from Forge to NeoForge format? I grabbed the 1.21.1 MDK, but do i have to completely rewrite all of my source code from scratch - or can large chunks of it be copied over and subsequently modified in IntelliJ?
Yeah just copy it all over and update
what do i copy?, just the src folder?
Yeah src folder works
The mdk is just a different version of the gradle files, you can update your gradle manually
is there some sort of a "list of changes" posted somewhere online between the two?
Like, what does THIS need to change to, for instance:
"error: package net.minecraftforge.network.simple does not exist
import net.minecraftforge.network.simple.SimpleChannel;"
updating to 1.21? most of the time you can delete the packages and your IDE will prompt you to import the same classes from neoforge
but a few things fundamentally changed due to MC changes, like networking.
This is what Iām getting from IntelliJ
I unzipped the MDK source from the repository, then copied over my src folder and hit ābuildā
yep, delete those imports with the red lines
then hover over the symbols in the class and if there is a neoforge equivalent, import it
BUT, networking is completely different, so you will need to redo a large part of it. Iwould look at the ars nouveau Networking class
I think I may just have to rebuild completely from scratch in MCreator when they get the 1.21.1 builder upā¦š
Code is quite literally like learning a different language
Send the repository and I'll take a look at porting it for you
1.21 is an especially brutal version change too
It is yeah
I might take you up on that later Jarva, but I am also stubborn and will never learn anything if I donāt push myself first
That's fair, but you can also learn from seeing the differences
Don't push yourself too much, that's how you burn out
Both of my modsā source code is public though - and current - through CurseForge
If you'd like to take a look, this is the majority of the Ars Additions port to 1.21
https://github.com/Jarva/Ars-Additions/pull/3/files
beware, it's pretty dense
I frequently reference the AN, Elemental, and Additions github repositories when Iām trying to figure out how to accomplish something
Neg might be the more slim porting
So could be easier to spot the stuff that needs to be changed in a smaller proj
That's fair yeah
oh alex, I think the issue with that missing function was just a binary breaking change to the params
I may have changed the param to living entity from player, and you have to recompile your jar for htat
I literally recompiled twice after having the bug two releases ago
That's why it feels weird
I nuked the caches, maybe that will do in next build
oh if you had rebuilt on the latest since that error then im not sure
What's the different between Armor Type BODY and CHESTPLATE?
I know with apotheosis gems that there are gems that can go in either chest or leg pieces? Maybe something to do with that?
is body the elytra?
but there's also leg armor type
I have no idea, aren't they just the same slot? Isn't elytra a chestplate
Apparently body is for horses
hello, i used to have this listener (1.20.1) .
@SubscribeEvent
public void onTick(TickEvent.ServerTickEvent event){
if(event.phase == TickEvent.Phase.START){/*do stuff*/}
}```
is the following snippet the "correct" way to replace the code?
```java
@SubscribeEvent
public void onTick(ServerTickEvent event){
if(event instanceof ServerTickEvent.Pre){/*do stuff*/}
}
if you can put ServerTickEvent.Pre in the args thats probably the right way to do it
otherwise what youre doing seems fine
alr
Ye, use directly Pre
So it only react to that and not to Post too, useless check every tick
Double check in Ars code if something use that anyway
Settings file '/home/qther/dev/java/Ars-Controle/settings.gradle' line: 10
Plugin [id: 'org.gradle.toolchains.foojay-resolver-convention', version: '0.8.0'] was not found in any of the following sources:
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
BUILD FAILED in 3s
Configuration cache entry stored.
``` hm. empty sources despite copying additions' settings.gradle word for word
also tried copying from the mdg mdk examples
settings.gradle
yeah?
pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
maven { url = 'https://maven.neoforged.net/releases' }
}
}
plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0'
}```
this is from mdg mdk
i also tried the one in additions
which seems to be the nf maven repo being moved up in order
Huh, maybe they're having issues with their maven?
perhaps
ill try again after dinner
and ask in their discord
the url there doesnt work for me but maybe its not supposed to be a website
https://maven.neoforged.net/#/releases works as a website though
but it doesnt work as a repo
Yeah I'm not sure, I literally copy and pasted the ars Additions gradle file yesterday for my latest project
Could be a local env issue?
perhaps
i tried clearing the projects .gradle
ill try clearing ~/.gradle later i suppose
yeah that didnt work either
ah it was an outdated gradle version
needed 8.8
weird error though
Yeah that's strange
hello, would drygmy generate more/less loot based on their tick rate, or is it dictated by the server's tick rate?
(i need this info so as to blacklist drygmies from a certain glyph i am making if they do behave in such a way)
who do you think call a drygmy's tick?
anyway, drygmy create progress. it's the block that produces when progress reaches x
asking this since a friend made this thing and it got my brain juice working and i thought that a time accel/decel glyph would be a nice idea
might need to port it for 1.21 though
is it just a "call the entity tick method x times instead of one (or once in a while if less than 1)" ?
you can simply test the interactions via command in 1.20.1 btw
mhm alr
thanks
i'l try to make my little glyph using the API and if it doesn't work i'll have to use my brain to find another solution
globalpos iwandable when
Perfect time to make a PR for 1.21
hello, i am porting trinkets but it seems that this code produces the error in the linked file.
@SubscribeEvent
public void doTabThings(BuildCreativeModeTabContentsEvent event) {
if (event.getTab() == CreativeTabRegistry.BLOCKS.get()) {
for (var item : ItemRegistry.ITEMS.getEntries()) {
event.accept(item::get);
}
}
}
hmm i cant seem to write my codec to the stack in Item#interactLivingEntity
wonder if the stack passed is a copy
yeah solved by using player.getItemInHand(hand)
think controle port is done then
ill do a release tomorrow after more testing
remote now also supports entities
additions' advanced wand is still better though
i cba to do modes
still havent found a fix...
any help appreciated
@EventBusSubscriber(modid = ArsAdditions.MODID, bus = EventBusSubscriber.Bus.MOD)
public static class ServerModEvents {
@SubscribeEvent
public static void buildContents(BuildCreativeModeTabContentsEvent event) {
if (event.getTabKey() == AddonCreativeTabRegistry.ADDITIONS_TAB.getKey()) {
for (ItemRegistryWrapper<Item> item : AddonItemRegistry.REGISTERED_ITEMS) {
event.accept(item);
}
for (BlockRegistryWrapper<? extends Block> block : AddonBlockRegistry.REGISTERED_BLOCKS) {
event.accept(block);
}
}
}
}
``` how additions does it
https://github.com/Jarva/All-The-Arcanist-Gear
Sourcecode for All The Arcanist Gear, I think this is my cleanest mod yet
neo throws error if you're listening to the wrong bus, or both of them
so, by helping yourself with the event handler image in the pins, you have to make sure the class where that is only listen on the bus you need
IModBusEvent events are not allowed on the common NeoForge bus! Use a mod bus instead.
Even the stacktrace tells you
Ars Elemental 1.21 doesn't register itself as tier 4 in the ArmorPerkHolder
Nah, I've made an alternative for it
I think it may mean some of the attributes don't scale correctly, but I'm not sure
The only thing that scales with the armor is the mana stuff
Which I manually override
The more relevant part is that few thing might check for slot = slot3 instead of slot > slot2
could probably do a mass asm but 
i need to shorten this lmao
Halv into two pages
repost of this since i forgot to pin it
https://gist.github.com/Technici4n/facbcdf18ce1a556b76e6027180c32ce
Renaming script for the class renames introduced in the 20.2 NeoForge release - README.md
Apparently i had in my devenv of elemental a depedency to a curse ver of elemental
funny
Trying to port SBM, data components switch really messed up the potion stuff
Unsure if the feature can be kept
Capabilities part is almost a code cleanup on the other hand
id be more interested in a cobble starbunclegen
but no thats cool, wonder what else it could be useful for
get a few starbuncles and you can probably process a pretty fast blockstream from a tree farm
Idk, but it's a filtered block breaker
And they come with a filtered block placer ver
The problem now is managing the pickup
As the breaker should pickup what it breaks, but if it drops more than one item, how are you supposed to handle it?
Queue the items that drop to be picked up?
If the item is no longer then skip to next
Any ideas why my armor items provide the stats for every position?
I think I figured it
Yep, I was dumb
oh my
Ars Caelum 1.21: https://github.com/baileyholl/ars-caelum/pull/8
Regarding CurseMaven, if I want to use that to add Ars Elemental as a dependency, what am I doing wrong? I am able to specify it and it seems to download the package:
implementation fg.deobf("curse.maven:ars_elemental-561470:5609198")
But I can't import from it in java classes, says the import cannot be resolved for anything from Ars Elemental, e.g. alexthw.ars_elemental.registry.ModItems
That looks right to me, make sure the class is named that in the version you're using
modImplementation "curse.maven:ars-elemental-561470:5609198"
Ah try ars-elemental?
Where is your import failing?
Huhmmm... I tried with ars-elemental instead, no dice. Cursemaven mentions that the <descriptor> (in this case ars-elemental/ars_elemental) "Can be anything you want." I did not get how this then affects imports but don't have that much java dependency experience š¤
The import is failing in a datagen class I'm writing, it fails both to resolve it in the IDE but also if I try to compile it will say *package ModItems does not exist *
oh wait, modImplementation, not implementation? let me try that
I use modImplementation because I use Archloom, not Forge Gradle
Ah okay gotcha, was wondering what this missing method was. Is that more powerful or better than Forge Gradle?
I prefer it to Forge Gradle, but that's also because I come from a Fabric background, and Fabric uses loom
I wouldn't recommend switching to it because ModDevGradle in 1.21 is nicer in all aspects
Got it. I'd consider it for the next time then. This first mod is a mess using a mix of MCreator and VSCode, really need to just do it with IntelliJ and leave MCreator out of the picture next time š
Anyway I will poke around some more to see why this is not working
I'd recommend importing the project into IntelliJ 100%, I couldn't do mod dev in VSCode, even though that's my daily editor
Yeah I don't know why I'm being so reluctant. I went through this pain before with a Quarkus project. I guess I just realllly want it to work, but it's not a fight worth fighting anymore
your branch says it has conflicting files 
jdtls for java is decent. requires a lot of configuration though
good kotlin lsp doesn't exist yet
If you set it to new branch I'll rebase it later
VSC probably don't even support modding gradle
you probably had to refresh gradle after pasting the implementation string from curse
Praise whoever made this a possibility. And by the way, switching to IDEA instantly solved the import issues.
Itās pointing to the new 1.21 one
I just had a frustrating bug in Additions where I get the ISpellCaster of a stack to check if it has a spell, which creates a tag on the stack if it doesn't exist
so it's got empty NBT, which then doesn't match the items in the Storage Lectern
you shouldn't call getOrCreate, unless you are using an ars method which should also not be doing that lol
Call hasTag then getOrCreate
Or directly get + null check
Or blame Bailey if you find the method making the tag
I recall something, but not sure if it was related at all
Like that the checks were making few assumptions on the item checked...
Yeah it's Ars doing it
SpellCaster does it in the constructor
Which is called in CasterUtil.getCaster
Is it a lot of work to convert a mod from 1.20 to 1.21, or it depends?
Depends on what you touch
Most of the work is using IDE 's find and replace in files
To account for neoforge changes
As you ask for your add-on, it would be likely just that, plus few little adjustments
Most complicated thing for a beginning might actually be replace the build.gradle
Armor is one of the nicer things currently, not a huge amount of changes between 1.20.1 and 1.21
what im hearing is start in 1.21
If you want to see a small armor mod for 1.20.1 and 1.21 to compare changes, check out All-The-Arcanist-Gear
That I won't do as I want to play this on 1.20.1, but I would also want to port to 1.21 after it's not in alpha anymore
Thanks, I will have a look with fresh eyes tomorrow!
neoforge maintains primers over on their github. always a good reference when porting (pinned message)
I had not really been aware of the whole NeoForge situation but I read up on it now, looks like Forge will be a thing of the past then
Definitely
i dont think ive heard of any mods sticking to forge
Well there are some that just arenāt planning on porting forward at all, but that always happens to a few with major version switches.
Is there something special in Minecraft that will prevent Item Entities from being moved every tick? I'm trying to implement something that will setDeltaMovement on item entities for a duration.
For the first 20 ticks it seems to work fine, but after that, it only moves to the expected position every 20 ticks, basically teleporting every second.
Yeah, check the source code for gravity well in Elemental
Or the decoy mob jar behaviour
I just needed to check if code was being executed on client or server side, rookie mistake
There is a movement speed update thing in entities registration, defaults to 20
To force the update, there is a different method based on whether the movement is changed server side or clientside
Will onResolveBlock only ever give me the server world, or is there something I can do to get the client world in this scope?
I'm spawning an entity that will also need the client world in order to spawn particles for items it affects.
I guess I can do it another way but it's tricky because I'm trying to re-use classes from Create.
You can spawn particles from the server by sending packets
I didn't want to go there as it will make implementing harder (can't reuse as much logic) but I think that's the only way. Thanks for the sanity check
^
Yeah that can be done
yes but that only lets you spawn them with random motion typically
Do you have a good recommendation for resources to understand things better? The Forge documentation kind of sucks and almost never answers my questions. LLM's help a bit but they hallucinate and cough up dated code. Googling things for Minecraft is very difficult, you mostly get players asking game-related questions instead of dev-related questions.
Specifically I'm trying to reuse the existing particle sprite set for DUST but I don't see any way to get sprite sets looking here, I only see that I can create new Sprite Sets... just trying not to reinvent the bowl too much.
Side-note I'm looking forward to switching to NeoForge, the docs look a lot better there.
in case you want to summon a dust particle
Not entirely sure I follow there?
I'm trying to create my own particle because I want to manipulate the velocity of it every tick to create a spiral-like effect. Dust particle is an example here, I mean to ask how to create a custom particle that reuses textures from existing particles.
hmm
Ah, particles are a bit of a pita to make from scratch
same here ;-;
You need the sprite, then a json to specify the spriteset
Then register the particletype, which also requires two classes
You can look at elemental for venom particle and spark particle
Alright, heck. Thanks again, I will have a look in elemental and/or nouveau, I think I'm forced to just copy-pasting the sprite sheet in that case. Dang it, Minecraft.
It's not complex but it's a bit undocumented
Maybe there is a video from kaupen on them?
The channel from the pinned playlist, there is a playlist for newer versions
Weird, there is not one specifically on them.
Updated the links at least
Particles are one of the few effects within the game that are used as polish to better improve immersion. Their usefulness also requires great caution due to how they are created and referenced in the game.
Can't recall the changes on particles from 1.19 to 1.20
That guide is for 1.19
Pita was the perfect analogy but these floating falafals are now finally working and spiraling beautifully
DelayedSpellEvent doesnt seem to like /tick freeze very much
seems hard to fix
@Mixin(EventQueue.class)
public class EventQueueMixin {
@Inject(method = "serverTick", at = @At("HEAD"), cancellable = true)
private static void serverTick(ServerTickEvent.Post e, CallbackInfo ci) {
var trm = e.getServer().tickRateManager();
if (trm.isFrozen() && !trm.isSteppingForward() && !trm.isSprinting()) {
ci.cancel();
}
}
}```
works doesnt work for `/tick step`/`/tick step 1`
but alternatively you can use /tick sprint 1
the problem is most likely that its called after the tick
the tick function there decrements frozenTicksToRun from 1 to 0 before we see it in ServerTickEvent.Post
which means we dont observe the stepped tick at all
client also has this info through level if im not wrong, but im focusing on server for now
import com.hollingsworth.arsnouveau.api.event.EventQueue;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.neoforge.event.tick.ServerTickEvent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(EventQueue.class)
public class EventQueueMixin {
@Unique
private static boolean ars_controle$stepping = false;
@Inject(method = "serverTick", at = @At("HEAD"), cancellable = true)
private static void serverTick(ServerTickEvent.Post e, CallbackInfo ci) {
var trm = e.getServer().tickRateManager();
if (trm.isFrozen() && !ars_controle$stepping && !trm.isSprinting()) {
ci.cancel();
}
}
@Unique
@SubscribeEvent
private static void ars_controle$onServerTickPre(ServerTickEvent.Pre e) {
ars_controle$stepping = e.getServer().tickRateManager().isSteppingForward();
}
}
``` this works
very uh
questionable
but thats because its a mixin
belongs in the main mod ofc
working on putting it base
tbh i feel like this should be handled by neoforge
not mods downstream
ĀÆ_(ć)_/ĀÆ
you could ask them why it isn't
i mean it could be useful for mods that want to interact with a frozen world ig
mods