#General & Development Help

15795 messages · Page 16 of 16 (latest)

rocky grail
#

iirc sodium devs use yourkit

#

yourkit offers free licenses to non commercial open source projects

arctic bronze
#

😗 maybe I need to brush up on this stuff

arctic bronze
#

Okay so new problem. Is there an example of how to set the new particle colors for a spell projectile entity?
For example I used to just do:
projectileSpell.setColor(color);
For however I wanted an enemies spells so be colored, but I know that the new version has a lot more customization options for the spells. Is there something I could setup to take advantage of these new options for the mobs in Ars Plus?

unreal summit
#

So apparently Elemancy armor perks are not functioning properly since the addition of the light heavy armor variants, and I am hopelessly at a loss on how to fix it. 😭😭😭

arctic bronze
#

I'm ngl, I've been playing with Claude to help a bit and ts is gas

unreal summit
#

One of these commits broke the perks and I don’t know which one

unreal summit
#

I’m at the point I might even be am willing to pay someone to fix this.😩

I suspect the problem has to either be an error in a registry or in ArmorSet.java

tender karma
#

I can offer a helping hand, maybe. I'm also knee deep in the custom armor trenches so maybe I could help out a little.

radiant depot
#

Because otherwise it's a bit too many jumps to set the particle timeline manually

arctic bronze
#

The lack of referencing the spell color is def breaking a lot for me lol

#

Not sure how I’ll colour the domain shell blocks now

rocky grail
#

your easiest bet is probably copying the spell using ctrl+c in the spell book, base64 decoding it, then deserializing it in your code

rocky grail
arctic bronze
unreal summit
tender karma
#

I'll take a gander and compare with Elemental and my own shameless rip of the code (:P)

radiant depot
tender karma
radiant depot
#

I'm more confused about it crashing on startup rn

#

Ah ok, having the schools in ArsNouveauRegistry makes it classload and init the array before the armorset holders are initialized

#

Main reason why it wasn't working was the fact you were using your own, empty, damage resistance map

unreal summit
unreal summit
rocky grail
radiant depot
#

For spells only

#

The thing defined in the IElementalArmor defines which damage (not just spell damage) they will absorb

#

I made a PR anyway just to be sure

unreal summit
#

On my way to church for Easter service. Will test changes when I get back home.

unreal summit
#

Okay, so to see if I understand what you did:

you moved the dual schools into my own registry instead of being an extension of the base mod registry?

radiant depot
#

The dual schools were moved to a different class from the array of armors

#

Since the armor initialization loads the class where the schools are

#

If the class is loaded while the variable still has to be set, the array will have empty variables while the actual variables get filled

#

The temporary fix was to have the array filled after the variables are set, in the init perks method

unreal summit
#

So why were they working previously? (Prior to the addition of light/heavy sets)

radiant depot
#

because the array was inside the method

#

not outside

#

just like the workaround before your "cleanup" commit

radiant depot
#

make the spell you want on your spellbook then CTRL+C

#

can't remember if it needs more buttons to port that over to the system's clipboard (ok no, it will work)

arctic bronze
radiant depot
#

umh yeah it could work to make sure classload happens at the right time

#

instead of having the usual static final in the mob class

#

just to avoid what was happening above with Elemancy, even assuming the problem could exist

arctic bronze
#

I’m just thinking it might be convenient for myself if I put them all in one place instead of crowding the entity’s class file

arctic bronze
radiant depot
#

as i said, make a spell style for domain

#

copy paste from mageblock probably, should have only the color property

#

then retrieve the color from the particle timeline of the spell

#

tile.setColor(spellContext.getParticleTimeline(ParticleTimelineRegistry.MAGEBLOCK_TIMELINE.get()).getColor());

#

if you just need a patch for testing, use the mageblock timeline as placeholder

arctic bronze
radiant depot
#

then make its own later

unreal summit
#

Okay, everything seems to be working now. Thank you Alex.

I DID say I would compensate whoever fixed it for me, and I am a man of my word, so what do I owe you?

rocky grail
pallid rapids
#

this article makes me think about Hex Casting lol. Incredibly inefficient coding method that makes me happy

tender karma
#

I'm using a SpellResolveEvent to catch when a player may be healing entities other than themselves while wearing a custom focus.

The intent is for excess healing to go back into the caster, however I'm not sure how to actually get how much the spell is healing.

Is this something I could access from the SpellResolve event or would I need to switch to, say, a LivingHeal event?

#

_ _
I'm already checking for the Heal glyph inside the spell and making sure that it resolves on a living entity, I just don't know how to get the heal value back.

Maybe through the spellStats and using the heal calculation?

zealous zenith
#

since the healing event isnt going to tell you what the source was from, just an amount and the entity that is being healed

#

makes me think we need more dynamic data/tag system for addons to manipulate things going on inside glyphs

#

spellstats was a poor attempt at that

rocky grail
#

id probably just check pre and post effect

#

i think theres events for those

#

then check difference in health

tender karma
#

For the sake of learning, I'll try with a mixin first, then if I can't handle it neatly I'll try the Pre/Post events.

rocky grail
#

you can target the call to heal

wheat tapir
#

so there's a GL error that's been bugging me, in my add-on. but i haven't received any user reports about it. yeah because it's my fancy keyboard's scancodes are not being recognized. (edit: this is the keyboard: https://www.zsa.io/moonlander)

#

i'm fiddling with InputConstants.Type.KEYSYM , seems to solve the problem

rocky grail
#

was too big for my asian hands

wheat tapir
#

it being well-suited for ape-sized-hands is a big reason i bought it. 😂

#

i also have an ErgoDox EZ from the same builder

rocky grail
#

i now own a keychron q1 but i havent used it yet lol

#

laptop keyboard is more convenient most of the time

tender karma
# rocky grail id recommend using WrapOperation in that case

I've delved into the Mixins a little bit, but I don't think I understand how to use them to solve my issue.

I see that I can use WrapOperation to access healVal straight from the EffectHeal class, but from what I can tell, I can't then access it from outside of the Mixin. I also can't reference anything from the SpellResolveEvent inside the Mixin either because it's only working with the Heal code.

Any tips on how I may bridge those two together?

craggy ice
#

if you're trying to access a variable from outside, consider using an accessor mixin

rocky grail
#

or set it in a publicly accessible Object2FloatMap<Player> or something

#

or you could set a data attachment on the player to said value

#

map and attachment should also let you immediately query it after the effect resolves

craggy ice
#

why dont you heal the player from inside the mixin? you get a reference to both the "shooter" and the entity the spell resolves on

rocky grail
#

my personal code style would advise you to call a static method instead of putting the action directly inside the mixins

#

but that could also work

tender karma
rocky grail
#

you should be able to grab locals

#

imo if given the option you should always use something from MixinExtras, normal Mixins is a bit lower level and doesnt always have the same compatibility guarantees

tender karma
#

Mmmm, I'll try tinkering some more following your advice during my free time tomorrow/today after I wake up.

radiant depot
#

I wanted to add a Heal Event holding the healer in Sauce but I don't remember if I gave up early or faced some weird wall

#

Probably mostly because it's never gonna be universal and needs to be pretty specific on each of the heal() calls

wheat tapir
#

i could use some codec help/direction. i have a record that contains a NonNullList<ItemStack>.
i've gotten as far as successfully persisting, and synchronizing the list of items, except:
when i make changes to a data component on an ItemStack member of the NonNullList, the data component change on that stack doesn't persist or synchronize.

for example, I'm updating some component data like this, on a vanilla music disc ItemStack:

stack.set(DataComponentRegistry.MULTI_POTION, potionData.withCharges(potionData.charges() - 1));
#

my hunch is that i need some fancier codec setup to make the NonNullList<ItemStack> codec include the ItemStacks' DataComponents?

rocky grail
#

you have to make a copy of the list if you want to edit it

wheat tapir
#

aye i'm copying items into the list and out. and potionData.withCharges() returns a new instance of MultiPotionContents, so that's covered too.

rocky grail
#

could you link the part where youre doing that?

wheat tapir
#

i'll try to clarify: i can move items into, and out of, the container inventory. without dupe bugs, syncs betw client and server, and persists to disk. but the component data on the items in the list does not seem to be included. and sure yep 1 sec.

rocky grail
#

it looks like youre modifying the itemstack within the component directly

wheat tapir
#

i refactored that a bit, moved the logic into the ContainerInventory record, to see if maybe i was linked too deep:

MultiPotionContents potionData = getStackInSlot(i).get(DataComponentRegistry.MULTI_POTION);
int newCharges = (potionData == null) ? 0 : Math.max(0, potionData.charges() - 1);
getStackInSlot(i).update(DataComponentRegistry.MULTI_POTION, new MultiPotionContents(0, PotionContents.EMPTY, MAX_USES), component -> component.withCharges(newCharges));
rocky grail
#

you should be copying all the itemstacks into a new list, editing the one there, then saving that new list

wheat tapir
#

oh i am, 1 sec, i have that too

rocky grail
#

immutability is a pain in the ass

rocky grail
#

i dont think java is aware of ItemStack#copy

wheat tapir
#

actually the third is not doing what i thought

rocky grail
#

the standard is Object#clone

#

which ItemStack does not impl

#

i wouldnt be surprised if youre just getting a new list with the pointers to the same itemstacks

#

or if they are different itemstacks, then itemstacks with pointers to the same component map

wheat tapir
#

i'll dig. that's very helpful, thank you. 🙇

rocky grail
#

you could probably map each item of the list to ItemStack::copy

#

ill also say that ive never seen anyone do copying implicitly inside a codec though lol

wheat tapir
#

i'm so so close to having disc-with-potion-effects working. but i need to get the charges to sync. bc right now it's "1 potion charge, and the disc forever has that effect", which is, like, wildly unbalanced.

wheat tapir
#

anyway, thank you, i'll work on explicitly copying the list items, outside of the codec

wheat tapir
rocky grail
#

this ignores overrides of Object#hashCode

wheat tapir
#

awesome

wheat tapir
#

dammit didn't mean to ping. sorry, still getting used to that behavior.

#

based on that, it looks like the solution to my question is to replace NonNullList with my own List class, ensure items are copied, add codecs, then 🙏 that potion charges synchronize betw client and server

tender karma
# tender karma Mmmm, I'll try tinkering some more following your advice during my free time tom...

Update: Think I finally figured it out. There was no need for a SpellResolve event in the end, I realized if I used Inject targeting the heal (like Qther originally suggested) I could pull the original variables andjust do the heal "cashback" logic inside the Mixin. Took me a minute to understand that though. Thanks, everyone!

            method = "onResolveEntity",
            at = @At(
                    value = "INVOKE",
                    target = "Lnet/minecraft/world/entity/LivingEntity;heal(F)V"
            )
    )
    private void healingCashback(EntityHitResult rayTraceResult, Level world, LivingEntity shooter, SpellStats spellStats, SpellContext spellContext, SpellResolver resolver, CallbackInfo ci, @Local(name = "healVal") float healVal){
        if(!(world instanceof ServerLevel) || !(shooter instanceof Player)) return;
        if(!(resolver.hasFocus(AstroItems.LESSER_SOLAR_FOCUS.asItem()) || resolver.hasFocus(AstroItems.SOLAR_FOCUS.asItem()))) return;

        if(rayTraceResult.getEntity() instanceof LivingEntity target && target != shooter) {
            if(target.getHealth() != target.getMaxHealth()) {
                float healCashback = (target.getHealth() + healVal) % target.getMaxHealth();
                shooter.heal(healCashback);
            }
        }
    }```
wheat tapir
# rocky grail i wouldnt be surprised if youre just getting a new list with the pointers to the...

BTW, it was 100% this, only happening way deeper in the code than the record w/ NonNullList. the solution ended up being leaving exactly zero pointers from outside ContainerInventory to any ItemStack in its list. then ensuring any time I needed to interact with an item from the inventory, it all happened through the ContainerInventory record. those records have some built-in change-detection (which as you already likely know, comes from Java itself)... so it all "just worked", after i replaced all external references to inventory ItemStacks with their corresponding slot indices, then used ContainerInventory::getStackInSlot(index) in their place.

wheat tapir
#

i know this is probably a wild request: does anyone have any idea how Hero Of The Village works, in code?
i was tinkering with it as a hidden effect, but the Villagers don't offer discounts when it is hidden.

so maybe a better question is: does anyone have any idea how Villager discounts work?

#

nevermind, i found what i was looking for

dire socket
#

Hi, I'm not sure who or where to ask this, but I'm working on an addon for Ars Nouveau for 1.20.1 - It adds color variations of all the machines/blocks/etc. To create these, I've been modifying the original textures from Ars Nouveau. I'm wondering who I need to get permission from to use/modify those assets if I plan to have the mod hosted on Curseforge.

unreal summit
#

Permission to use assets for a texture pack or an addon is not required here. Only if you want to use the assets for an outside project.

dire socket
#

Ah cool. Thanks

neat mango
#

why am I getting thumbs down

hasty nacelle
#

idk

rocky grail
#

maybe it wasnt fixed lol

unreal summit
#

If I were to put a recipe into a mod that used a material from another mod, but that other mod wasn’t present in a pack, would that cause the mod to crash? Or would it just be uncraftable?

radiant depot
#

uncraftable with error logs

#

to avoid the error log, wrap it in the conditional block that checks if a mod is loaded before loading the recipe json

unreal summit
#

Gonna try to add an upgraded form of the top tier Elemancy gear for use only in packs with the allthemodium stuff so it’s not overshadowed by the ATAG stuff to the point of being completely obsolete

hasty nacelle
#

Elemental paragon perhaps?

unreal summit
#

Right now it’s just useless to use any gear lower than the ATAG stuff due to the advanced thread slots

#

But I don’t want to make it a full dependency that adds that tier to packs that aren’t at the ATAG level otherwise.

#

So adding a tier with higher thread slots by needing the allthemodium ores to craft would make it only available IF it was in that tier of pack anyway.

simple gorge
#

I'm trying to add threads to a different mod's armor for a addon I'm working on, however I've no idea where to start, as I don't understand the code present in ars nouveau much, and what little I can read doesn't seem to lead me to what I need.

I know ars additions has its Spellweave enchant, but mixins are still hard for me, and it doesn't appear to support multiple slots for threads.

Feel free to ping me with any replies thanks in advance.

zealous zenith
# simple gorge I'm trying to add threads to a different mod's armor for a addon I'm working on,...

if you are in 1.21.1 you need to register it as a perk provider in the PerkRegistry

    public static boolean registerPerkProvider(ItemLike item, List<List<PerkSlot>> tierList) {
        itemPerkProviderMap.put(item.asItem(), tierList);
        return true;
    }

like how ars does it in APIRegistry:

 PerkRegistry.registerPerkProvider(ItemsRegistry.BATTLEMAGE_BOOTS, Arrays.asList(
                Arrays.asList(PerkSlot.ONE),
                Arrays.asList(PerkSlot.ONE, PerkSlot.ONE),
                Arrays.asList(PerkSlot.ONE, PerkSlot.ONE, PerkSlot.TWO)
        ));
        PerkRegistry.registerPerkProvider(ItemsRegistry.BATTLEMAGE_HOOD, Arrays.asList(
                Arrays.asList(PerkSlot.ONE),
                Arrays.asList(PerkSlot.ONE, PerkSlot.ONE),
                Arrays.asList(PerkSlot.ONE, PerkSlot.ONE, PerkSlot.TWO)
        ));

you will also need to attach the armor perk holder as a data component to the item:
.component(DataComponentRegistry.ARMOR_PERKS, new ArmorPerkHolder())

simple gorge
simple gorge
#

Thanks <3 love you

#

Now to find out how to make it accept higher tier threads

#

off to atag

simple gorge
# zealous zenith if you are in 1.21.1 you need to register it as a perk provider in the `PerkRegi...

Couple small questions:

do I need to put a registerPerkProvider func somewhere? I don't understand its purpose here.
I've been playing around with the things, and from what I can't make use of the added thread slots? Im gonna be honest first time modifying data components so I probably fcked up there.

I'll screenshot my relevant code pieces in case I fcked up™

Again, thanks in advance for any help provided.

#

(Yes, I'm aware I should've probably tested when I did that initial image, but Im a bit... happy go lucky so to speak with it)

#

(Also by, make use, I mean, when giving for instance the warding thread and the spell power thread, their attributes aren't being applied when wearing the armor)

zealous zenith
simple gorge
#

okay thank you, will look at it.

zealous zenith
#

next major breaking version it will likely not be required as data components make this type of registry unneeded iirc, but for now its a bit of relic

radiant depot
#

I think you mean you need the attribute from perks applied to the attribute map?

#

It's our armor class so we do in its method, for other armors you would have to use the event

#

Can't remember the name but if you look for the ones with attribute in the name you'll find it

#

Or double check how additions does

misty latch
#

If I were to make an item that reads a player's max mana, it would look something along those lines, right?

        player.getCapability(CapabilityRegistry.PLAYER_CAP).ifPresent(cap -> {
            maxMana[0] = (float) cap.getMaxMana();
        });```

and I would need to create an additonal ModEventHandler for my mod?

I am very new to this and maybe somebody can lead me in the right direction
radiant depot
#

if you only need the max mana, you can probably just query the attribute

#

also no idea why you used a single value array there

rocky grail
#

id rather they just didnt use ifPresent though

radiant depot
#

Yeah but idk, I somehow kinda hate that syntax between all the possible options to do it

#

The max mana attribute won't track the reserved mana penalty, while the query to the capability will

#

There's still little difference I forgot to mention

gleaming fox
simple gorge
# zealous zenith yes you need to register it as thats how the data gets modified from the apparat...

I'm back to ask for more help, please do pardon me:

So, I've made sure that my attempts are registering things are as close as I can get, my constructThreads function to add threads being within the FMLCommonSetupEvent (Like your PostInit function), my modify components function being within my primary event bus (where I init my registered items and such)

The current problem is that now, when I put the example item on the alteration table it shows up as having no perk slots, and the NBT doesn't show as having anything remotely related to perks. I've tried rewriting my modifyComponents function, but I can't seem to get it to a point where it doesn't error while also looking more like the snippet you showed. (The .component(DataComponentRegistry.ARMOR_PERKS...)

And I have tried looking at the ArsNouveau.java, and the APIRegistry.java, but I don't see anything thats comparatively out of place in my code, everything seems to be firing at the right points, everything seems to not error, but I don't get the expected outcome.

As for the ars additions stuff, I've looked at spellweave, but it seems to do everything via Mixins of the alteration table, and I don't understand the code at all.

If you guys are willing I can link you my github so you can see things yourselves, but I'm genuinely lost as to what I'm doing wrong and how to fix it.

simple gorge
#

one second 😔

zealous zenith
#

uhh you need to use the ars nouveau registry, not your own lol

simple gorge
#

aight

#

now im fucked up bro 💀

#

do I need to uhh

#

mixin into the API registry then?

zealous zenith
#

no, just call the same code

#
PerkRegistry.registerPerkProvider(ItemsRegistry.BATTLEMAGE_BOOTS, Arrays.asList(
                Arrays.asList(PerkSlot.ONE),
                Arrays.asList(PerkSlot.ONE, PerkSlot.ONE),
                Arrays.asList(PerkSlot.ONE, PerkSlot.ONE, PerkSlot.TWO)
        ));
simple gorge
#

one second, let me attempt this

#

im gonna eat a good meal if it was this simple bro

zealous zenith
#

anything in the ars api package is intended for mods to use directly, copying it like you did in your file won't achieve anything because it isn't actually wired up to the rest of the codebase like the ars registry is

simple gorge
#

okay, so I do confirm that does bring back the thread slots on the alteration table

#

but

#

the threads themselves are still nonfunctional

zealous zenith
#

as in you can put threads on/off but they don't do anything?

simple gorge
#

'tensura:adamantite_boots[tensura:max_existence_point=750000.0d,tensura:existence_point=225000.0d,tensura:existence_durability=225000.0d,tensura:existence_gain=0.03d,ars_nouveau:armor_perks={color:"",perkTags:{},perks:[{perk:"ars_nouveau:thread_wixie"},{perk:"ars_nouveau:thread_whirlisprig"},{perk:"ars_nouveau:thread_drygmy"}],tier:0}]'

This is the nbt courtesy of kjs

#

but none of the thread attributes get upticked when its worn.

#

and now it looks like this for code

#

lemme push off so you can see

#

which was the original issue

#

where the threads do exist in the slots, within the nbt, but do not actually take effect

zealous zenith
#

yeah, I think you are going to unfortunately need to add more hooks, that map you added it to only backs the recipe system

simple gorge
#

qwq

#

okay

#

can you direct me to what I need to do?

zealous zenith
#

though, I could have sworn someone else was attaching threads to another mods armor. maybe the all the modium armor?

#

ars really should handle all of this for you, but right now its all baked into these armor methods

simple gorge
#

thank you for your direction, I'll see what I can do.

rocky elbow
#

i remember seeing an addon that allowed you to put a sword or smth in a pedestal near drygmys, then it would act like the drygmy killed it with the weapon u had in the pedestal

#

anyone know the name?

#

nvm think i found it

gloomy stirrup
#

Hey there I am completly new to Minecraft modding and wish to know how hard it would be to start. I am currently in the 12th grade of a german school and we are supposed to choose some kind of project we´d like to program. I´m thinking of making an ars nouveau boss addon. Is it something achievable or should I find something easier?

hasty nacelle
#

It's absolutely achievable
I recommend kapenjoes tutorials for modding and checking out the GitHub for ars example addon
Both are great resources

radiant depot
#

I'd argue that the most time consuming part when it comes to entities is the modeling/art part more than the code

#

Not that making the mob act too different from existing ones is easy, but it's possible to pull off something that works even without doing complex stuff

gloomy stirrup
#

thank you guys

unreal summit
#

Alex, how hard would it be to make the Elemancy gear have a different array of thread tiers if, and only if, All the Arcanist Gear was present in the pack?

mossy hollow
spiral pumice
#

hey guys.. i was thinking, I'm new to mod development, even tho I work with java, never created a real mod just played around a bit.. but i wanted to create an addon for ars with curious and gecko, u guys think that is better to wait for version 26.1 ? or 26.x ?

hasty nacelle
#

if you wanna create an addon for ars dont wait

#

its going to be another while I reccon before bailey considers going up a few versions

neat mango
rocky grail
spark wedge
#

I've nearly got my 1.20 backport of the chaining lens made, though I can't seem to access the local glyph lineup of the lens. Looking at the actual implementation doesn't help as much since the whole system was overhauled it looks like, and the set spell command writes to a tag I haven't had much luck accessing either. Is there an easy way to access 'this entity/item [being the spell lens, as equipped by advanced prism] > get list<abstractspellpart>' so I can add that to the list of the incoming spell?

#

getSpellcaster().getSpell().recipe seems to yield nothing, as the resulting spells have no glyph properties

radiant depot
#

Umh, I don't remember the old format

#

Is the problem saving/accessing the spell on the lens or adding the glyphs from it to the output projectile?

spark wedge
#

primarily reading the queue of glyphs from the lens item from what I'm aware. If I add constants like in the pierce lens it works fine, but I can't get a grasp of where the glyphs are stored on the object to add them dynamically

#

I've done a test run where it full overrides the original spell with what's inscribed and it just casts blank spells

radiant depot
#

Tried to double check how spell parchment are coded in that version?

spark wedge
#

I think it may be in part a fundamental misunderstanding of the data structure of it; from what I understand, a lens is 'equipped' onto a prism as an item since it retains enchantments and inscriptions, so I'm referring to an item when it does its thing

spark wedge
radiant depot
#

Remember to use the debugger version of the run and breakpoints so you can inspect the variables instead of having to spam prints everywhere

#

Sometimes it helps digging on what's the situation at runtime

spark wedge
#

That should help a good bit probably. I was running off of observations on what spells did when redirected and saw where I could break them to narrow my field XP

#

I've managed to get it working with what appears to be casting a constant recipe, casting the recipe from the spell that hit it, casting the recipe of the spell that hit it plus a constant recipe

the only last step is finding out where its recipe is located, which nothing really seems to use in their own native scripts. Getspellcaster() sounds like it should get the function that would return the recipe, but that seems to either refer to null or the spell that hits it (? looking into that with debug mode now to see what I can gleam)

radiant depot
#

get spellcaster in 1.21 might be for getting the component with the spell

#

But you can probably just get the nbt of the item stack and extract the spell recipe directly

spark wedge
#

I was thinkin that might be my next place to look

radiant depot
#

1.21 removed nbt tags and forced them into records with seriazable codecs, so it's more structured

spark wedge
#

also may be more generally documented which helps XD
My only prior experience with java was a mobile app for school and a small Slay the Spire mod

radiant depot
#

But with the old way you could do things more...raw

spark wedge
#

I never knew 1.21 and 1.20 were so different

radiant depot
#

The item nbt was one of the major changes

spark wedge
#

10 minutes to open gradle debug.. I think something's up with my MC XD
only in debug mode specifically

#

I'm convinced I've got everything needed except a way to identify the itemstack, which might be a fundamental understanding issue

spark wedge
#

This is more a general minecraft modding question, but what is the data structure for an item? I've got a dozen cursed iterative ways to scan storages but I don't know where to find item data for "this item"
I've done a lot of C# so I'm in a whole world of mindset difference

zealous zenith
#

an item is a singleton and corresponds to a unique key basically, an itemstack is the instance of an item and has a compound tag which stores anything mutable about it

#

well, in 1.21.1 they are data components which is the same concept but only serialize to a tag when its written to the world at save time.

spark wedge
#

Thank ya much!
As one more quick and I'd hope simple question: was forge's approach to object attribution something I can search for like a getcomponent? My history is in unity so I'm used to terms of gamecomponent getobject.parent.getcomponent(type)
I can see that a lens is a form of abstractlens which is a type of item -- i'd imagine something that calls the itemstack of all item objects with the lens component would be my approach, but intellij isn't finding any convenient functions for that

I appreciate the guidance btw! It's learning a new language all over again after picking up hex casting xD

rocky grail
spark wedge
#

thank you and doubly so for your patience, I'm more dense on the subject than I thought x.x
I'll try looking into more generalized examples in a general MC modding discord; I think I should have the Ars part cleared up by this point tho!

spark wedge
#

.......oooohmygoooddd
I got it.

#

The instant I stopped thinking in ECS structure, I noticed the shoot command has a pos that can be used to read the AP tile and then that has the itemstack find tool that I've been searching for the last 8(ish?) hours.

spark wedge
#

aand it's all in working order after that! (except config, but the objective of this server is no glyph limit, so works out)

zealous zenith
#

minecraft modding is a blessing and a curse in that nothing about it is magic, just all hand rolled java

#

no magical engine shenangians to be found

simple gorge
#

Small question regarding the ars nouveau spell damage:

I've tried manipulating it with a onDamageEntity thing for something I'm making testing with a projectile harm spell:

doing a if (source instanceof DamageUtils.SpellDamageSource) or if (source.is(DamageTypesRegistry.GENERIC_SPELL_DAMAGE)) doesn't seem to detect the harm glyph. (For the test I'm just attempting to set the output damage to 0, for reference the code used is provided below.)

public boolean onDamageEntity(ManasSkillInstance instance, LivingEntity owner, LivingEntity target, DamageSource source, Changeable<Float> amount) {
            if (source.is(DamageTypesRegistry.GENERIC_SPELL_DAMAGE)) {
                Float initDamage = amount.get();
                if (initDamage != null) {
                    amount.set(0.0F);
                }
            }
        return true;
    }```

I've checked the main mod (for the addon im making)'s function and it should work, and I've tried some of its own damage types but they dont seem to detect ars spell damage even when its treated as though its those damage types by the mod, so I'm a bit confused on how I should go forward from this.
#

Feel free to ping me with a reply, thanks for the help in advance.

dire socket
#

I just finished v1 of my addon ars-prism and published it on curseforge. If anyone would be willing to help test it for bugs / critique it, I'd be really grateful. https://www.curseforge.com/minecraft/mc-mods/ars-prism

CurseForge

Ars Prism is a colorful extension of Ars Nouveau focused on new ways to use magic and (create) machinery
0 Downloads | Mods

spark wedge
hasty nacelle
#

Ok then, it's finally time,
I need to know how exactly one puts their own entries in an existing guidebook, the patchouli wiki regretfully has no information whatsoever about it and Im afraid of touching anything until I thoroughly understand how it works. Ive been looking through elemental's github for a general idea and while it feels simple I still need to know for sure that Im doing it right.

radiant depot
#

like how to make a datapacked guidebook?

hasty nacelle
#

I suppose so

#

im not good with buzzwords yet

#

or wait not buzzwords

#

frick

radiant depot
#

i think it changed a bit between 1.20 and 1.21 so can't be sure how the structure is defined for patchouli

#

while the 1.21 ars guidebook is mostly code-defined

hasty nacelle
#

so its gone beyond the scope for patchouli?

radiant depot
#

well if you have an existing patchouli book then you would just follow the structure of that

#

in ars case there's leftovers to keep the wiki alive but they don't make a book

#

the ars guidebook is its own thing

#

if you want to create a new guidebook using patchouli you need to check a mod that still use it for their

#

from leftovers you should have seen that there are folders for each category with inside a file for each entry, but i think there should be a file that defines those categories and its icons for example...but we don't have as we don't want the book to show up

hasty nacelle
#

I love how i do something in programing thinking it would be simple
and yes I would be right save for the minor issue of actually its meant to be done another way
anyways yep Im on that

#

you would be talking about the wiki/ars_nouveau folder correct?

#

ah ic now
the actual book is now under a builder in documentation

radiant depot
#

not something included in the mod jar

hasty nacelle
#

i figured that

#

is the documentation builder something that might have a wiki?
I am sure that I can eventually figure it out if it does with far less assistance and far less time taken out of your day, its clear that I dont think I have enough general experience with this yet anyways.

radiant depot
#

Are we in the XY problem situation?

hasty nacelle
#

most likely
i belived that patchouli was still being used for documentation
though i was able to easily see that this wasnt the case I now have the problem of a programming skill issue

#

I might need to jump ship for another project yet again and comeback to this when I actually feel confident in this not being a sunk cost fallacy.

mossy hollow
hasty nacelle
#

Yes

mossy hollow
# hasty nacelle Yes

You can edit the existing pages with a resource pack, but yeah if you want to add new pages you'll need a custom mod, or pull-request to the base mod.

hasty nacelle
#

Already was the plan

#

The issue is that I can't quite glean how to from the code itself

mossy hollow
#

It shouldn't be too much of a barrier to add new pages. If you need any help feel free to ping

hasty nacelle
#

The issue is my skill
It's a skill issue
Thank you however I'll keep your offer in hand

mossy hollow
#

You only need basically the one-file to add documentation.

#
addPage(EntryBuilder.of(MACHINES, AddonItemRegistry.ADVANCED_LECTERN_REMOTE)
                .withName("ars_additions.page.warp_indexes")
                .withIcon(AddonItemRegistry.ADVANCED_LECTERN_REMOTE)
                .withIntroPageNoIncrement("ars_additions.page1.warp_indexes")
                .withCraftingPages(AddonItemRegistry.LECTERN_REMOTE)
                .withCraftingPages(AddonItemRegistry.ADVANCED_LECTERN_REMOTE)
        ).withRelation(block(BlockRegistry.CRAFTING_LECTERN)).withRelation(item(ItemsRegistry.BOOKWYRM_CHARM));

Each of the strings are just language keys.

#

the EntryBuilder.of(MACHINES, ...) sets the category of the page. Then it just builds up the pages/entries

hasty nacelle
#

I see it
There are a few things- fundamental things that I realize I lack however so I'm going to come back to it after trying to make another thing and come back to this in like a month
Or week depending on how quickly I can connect this code with my learnings

mossy hollow
#

For example on Enchanting Apparatus entry, I add a page about wixie enchanting.

#

my personal recommendation is to just jump into the project and ask questions when you encounter problems

#

Learning by doing is, from my experience, the best way of learning

hasty nacelle
#

Valid
But when I say fundamental skill issue I mean I still wish to follow through the rest of kappenjoe's basic ass tutorial as I don't want to simple just do
I want to understand

mossy hollow
#

That's fair, but this project doesn't require interacting with any of the fundamentals really

zealous zenith
#

if it teaches you java and coding then you are making progress regardless of a modding specific tutorial

hasty nacelle
#

Fundamentals like how the hell you set up the workspace

#

I just learned that yesterday

mossy hollow
#

You have IntelliJ installed?

hasty nacelle
#

I've got everything
Had so for a while

mossy hollow
#

Typically just opening the folder/project in IntelliJ is enough to get it up and running

hasty nacelle
#

I mean from a Minecraft modding standpoint
Getting the mappings and everything else right

#

I believe though that if you can show me how to set up the basics I can get a handle on the advanced things easier

mossy hollow
#

You can use the example addon as a base

hasty nacelle
#

Y'know what

#

I kinda expected that

#

Lol

#

Ok

mossy hollow
#

Literally just download the example addon, open it in IntelliJ and click runClient once it finishes importing

#

You'll have a dev environment up and running

hasty nacelle
#

I already did that yesterday actually

mossy hollow
#

Then you're good to go

#

Start tweaking, exploring and building 😄

#

You got this

hasty nacelle
#

Indeed

mossy hollow
#

Best way to understand how something works is to poke and prod at it

#

That's what I said when I got shouted at for disassembling household appliances as a child

#

And look how I turned out

hasty nacelle
#

That's what I said as I broke my mom's 4th parental controls app

#

Well

#

Not exactly

mossy hollow
#

Curiosity is good

#

I'm a computer guy, and also the only person in my high-school that was banned from using the computers

#

They go hand in hand

hasty nacelle
#

That checks out

#

It appears coding shouldn't be like baking
It's a bbq
You should be fucking up

mossy hollow
#

Not sure I agree with fucking up BBQ

hasty nacelle
#

I didn't have a better form of cooking for the analogy

mossy hollow
#

don't mess up my brisket 😤

hasty nacelle
#

You are talking to the person who made taralli cereal

#

Granted I only did it in a humor filled psychotic episode (I thought it was really funny) but still

hasty nacelle
mossy hollow
hasty nacelle
#

god it

#

got

#

I dont got it
in src correct? no other thing is needed?

mossy hollow
#

Correct

#

What's your issue?

#

You may need to bump the AN version in build.gradle

hasty nacelle
mossy hollow
#

src is short for source, which should contain all hand-written code

hasty nacelle
#

ic

#

Im going to guess this error is currently a non issue?

mossy hollow
#

Show full error

hasty nacelle
mossy hollow
#

Go into gradle.properties and change curios version to 9.3.1

hasty nacelle
#

nope

mossy hollow
#

Wdym nope

hasty nacelle
#

same error

mossy hollow
#

Click the reload button that showed up

#

top right of your editor window

zealous zenith
#

curios moved repos or something

hasty nacelle
#

yep

#

wouldn't work if i reloaded them all or just the one in editor

mossy hollow
zealous zenith
#

should be fine then, maybe they just deleted the old versions

#

I had to update some of my older projects too

hasty nacelle
#

ok while we scratch our heads over that one current version of ars is
5.11.5 correct?

mossy hollow
#

No, that's not what's written at the bottom of the link I gave you

hasty nacelle
#

ah

#

theres a .1341 in there

#

mb

#

uh
latest version for jei seems to be this one correct?

mossy hollow
#

I'm going to push an update to the example addon that works

hasty nacelle
#

okie

#

ill take this current old template behind the shed and, well, yknow
unless there is a way to update my clone?

mortal oak
hasty nacelle
#

hi clement

#

technically it would be faster to redo the whole thing
but I would like to learn how to make a branch if you are willing to guide me through that

mortal oak
hasty nacelle
#

basically and literally nothing

#

but again
experience

mortal oak
#

if you are a student / teacher one thing i could recommend is grabbing the copilot pack and prompting copilot cli to update your branch to be updated with the upstream

#

or claude code but that's a paid subscription...

hasty nacelle
#

at this time I need to save my money
let me see what i can glean from the github docs

mortal oak
#

i recommend :

git stash add . && git commit -m "checkpoint before pulling upstream"
git remote -v

in an ideal world, you should see something like :

❯ git remote -v
origin    [email protected]:clcment446/tview.git (fetch)
origin    [email protected]:clcment446/tview.git (push)
upstream    [email protected]:ayn2op/tview.git (fetch)
upstream    [email protected]:ayn2op/tview.git (push)

if you don't have the upstream links :

git remote add upstream $EXAMPLE_ADDON_LINK

then pull the changes from the example addon wiki

git fetch upstream

you'll probably have to do a merge if you modified the 1.21.x branch

git checkout main
git merge upstream/main

can use rebase / merge
rebase is "cleaner" since it brings your edits on top of the new base

or instead of doing all this you can use the github website

hasty nacelle
#

ah

mortal oak
#

wait

#

let me

mossy hollow
#

working version

hasty nacelle
#

nocie

#

ill just make a new one for brevity

mortal oak
#

unless there are major changes you should use github

#

less of a headache

hasty nacelle
#

ic

mortal oak
#

btw i have a question / need help
i've started using mixins recently, after years of putting off learning them, and i can't get them to work outside me dev env

they are present inside the jar when i use an archive explorer, but the changes aren't applied inside the game...

when i use the run-client task they are here but launching outside of the gradle task doesn't work

i updated my dependencies to use a recent version, but it still doesn't work

please somebody help me 🫠

related files / info

ars_trinkets.mixins.json :

{
  "required": true,
  "package": "com.c446.ars_trinkets.mixin",
  "compatibilityLevel": "JAVA_21",
  "refmap": "ars_trinkets.refmap.json",
  "mixins": [
    "AbstractCasterBonusSlotsMixin",
    "AbstractCasterCastValidationMixin"
  ],
  "minVersion": "0.8",
  "client": [
    "GuiSpellBookMixin"
  ]
}

neoforge.mods.json

[[mixins]]
config="ars_trinkets.mixins.json" # for extra glyphs.
tree src/main/resources/ -I "assets|data"
src/main/resources/
├── ars_trinkets.mixins.json
├── META-INF
│   ├── accesstransformer.cfg
│   ├── enumextensions.json
│   └── neoforge.mods.toml
└── pack.mcmeta

2 directories, 5 files
hasty nacelle
#

aight imma wait for that gradlie to build

zealous zenith
#

id look at the ars gradle file, you are likely just missing some strings. tbh I dont know which ones of these matter, but maybe this jar manifest one?

jar {
    manifest {
        attributes(["Specification-Title"     : "ArsNouveau",
                    "Specification-Vendor"    : "baileyh",
                    "Specification-Version"   : "1", // We are version 1 of ourselves
                    "Implementation-Title"    : project.name,
                    "Implementation-Version"  : mod_version,
                    "Implementation-Vendor"   : "baileyh",
                    "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
                    "MixinConfigs"            : "ars_nouveau.mixins.json"])
    }
}
mossy hollow
#

The manifest isn't required

zealous zenith
#

oh thats the only mixin reference left in build.gradle these days

mortal oak
mossy hollow
#

I don't even ship one

#

yours is commented out tho

mortal oak
#

let me uncoment it out and try to run

#

(also thanks for pointing that out)

zealous zenith
#

I dont see anything glaring other than that field, but if jarvas works without it then maybe its not needed

#

the ars project is held up by glue and copy pasted gradle snippets at this point

mossy hollow
#

I don't publish any manifest, it's possible this is auto-filled by MDG

#

but if you explicitly put something, then it probably overrides

zealous zenith
#

but if theirs is commented out wouldnt they have the same behavior as yours

#

or do you mean this jar declaration at all

mossy hollow
#

I have no jar declaration at all

zealous zenith
#

I have no idea if this is even still needed at this point

mossy hollow
#

no jar block, no manifest, no attributes at all

mortal oak
#

tried to uncomment it, and the mixin still didn't apply
very sad

mossy hollow
#

Check your log file to see if it says anything about your mixins

mortal oak
#

[21:42:33] [main/WARN]: Reference map 'curios.refmap.json' for curios.neoforge.mixins.json could not be read. If this is a development environment you can ignore this message
[21:42:33] [main/WARN]: Reference map 'curios.refmap.json' for curios.mixins.json could not be read. If this is a development environment you can ignore this message
[21:42:33] [main/WARN]: Reference map 'geckolib.refmap.json' for geckolib.mixins.json could not be read. If this is a development environment you can ignore this message
[21:42:33] [main/WARN]: Reference map 'ars_nouveau.refmap.json' for ars_nouveau.mixins.json could not be read. If this is a development environment you can ignore this message
[21:42:33] [main/WARN]: Reference map 'nuggets.refmap.json' for nuggets.mixins.json could not be read. If this is a development environment you can ignore this message
[21:42:33] [main/WARN]: Reference map 'ars_trinkets.refmap.json' for ars_trinkets.mixins.json could not be read. If this is a development environment you can ignore this message
[21:42:34] [main/INFO]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.5.3).

mossy hollow
#

You specify refmap, are you sure you bundle a refmap?

#

Try copy my mixins json

#

There's a couple different properties

zealous zenith
#

ohh you are using neogradle

#

hmmmmmmm you might need something extra

mossy hollow
#

Oh yeah

#

eww

#

you should be using MDG

mortal oak
#

also what's that MDG?

mossy hollow
#

It's literally built to not be used unless needed

#

MDG is Mod Dev Gradle

mortal oak
mossy hollow
#

a wrapper around NeoGradle for people who don't want to mess around with advanced gradle things

mortal oak
#

alright ill switch from neogradle to mdg
does it bother you if i steal borrow your gradle related files?

mossy hollow
#

Go for it

mortal oak
#

thanks

#

:3

zealous zenith
#

all gradle files are stolen

#

no one knows how this shit works

mortal oak
hasty nacelle
#

ive had my suspicions \

mossy hollow
#

I'm getting closer to understanding Gradle, looking at rolling out version libraries for AA

#

but build tools/automation are my bread and butter

zealous zenith
#

im going to tell your wife

#

friends dont let friends gradle

hasty nacelle
#

ok build is done
my ice cream is now

#

not

hasty nacelle
#

after a soda worth of ice cream I now have about 3 hours before I crash
lets do this

hasty nacelle
mossy hollow
hasty nacelle
#

ah

#

ty

#

alright one thing left to figure out
how do you get text in there?
it seems like the code is calling it in from another file but i cant find that file

#

also tangent but still important
where can i find the files for the enchanter's sword? i need its palete and how it was done

hasty nacelle
#

also interesting thing
whose skin was this? it seems to overwrite mine when i run client lol

unreal summit
#

That’s one of the default skins

hasty nacelle
#

ah valid

#

I have not seen a default skin in years

tender karma
hasty nacelle
#

lol

hasty nacelle
craggy ice
hasty nacelle
#

why did I never think about the lang files
thank you so much

hasty nacelle
#

oh
wait
so these translatables are used now instead of strings to save space and let them be used in multiple places?

tender karma
#

Sort of, yeah. Lang keys is how you'll be giving names to pretty much everything, including GUI titles, entities, and items.

#

There's ways to datagen them, but I've never ventured to. I just write every lang key each time I need a new one.

hasty nacelle
#

is there a thing i can read up on to learn how to best write them?

tender karma
#

I believe they appear naturally in Kaupenjoe's tutorials. I largely follow whatever structure/convention is used in examples I'm working with.

hasty nacelle
#

called it

tender karma
#

It's not like he dedicates copious amounts of time to lang keys (don't remember that he does, at least), but when he's registering items and such he goes over what he'll call them in passing if I recall correctly.

hasty nacelle
#

shoudl be in #9 then

#

nvm
I think i will end up just doing a ful example mod before touching this again
itll provide some much needed context

#

and I can work on a content mod for ars that I wanted to do anyways so Ill lose no time

craggy ice
#

It's not that complicated, u make a lang file (you can use any mod as an example), then you just define the translations like "key": "translation". And if you don't know what the key is you can easily check, since the default behaviour for when the key is not defined is to use the key as the text. So for example if you add an item but forget to name it, it's name will be something like mod_id.item_id, which is what you need to put into the lang file as a key. Same thing applies in the documentation pages, or any other instance really

mossy hollow
hasty nacelle
#

ah
that gives me a bunch of info that I can def parse
i belive the issue is that im tired
so imma sleep

hasty nacelle
gloomy stirrup
#

first things first omi shards that prolly get made out of crushed source gems and something else

#

my next creation shall be connecting source jars this´ll take a while tho

dire socket
gloomy stirrup
dire socket
#

Ooh. So bigger containers? Like tanks

#

That could be really cool.

mossy hollow
dire socket
#

Sometimes things don't need to be necessary to look cool ¯_(ツ)_/¯

pallid rapids
#

would be funny if it only changed the visuals and didn't connect them together in any other way

#

but yeah, we've gotten the request of bigger source jars that connect across multiple blocks and we always ask "what are you doing with all that source?" and never get a satisfying answer

#

we don't do it in the base mod because we honestly want people to think more about throughput than bulk storage of source

#

also just general disdain for multiblocks

dire socket
#

Disdain for having multiblocks, or disdain for programming with multiblocks?

#

I personally love multiblock structures in-world

pallid rapids
#

well I have a disdain for multiblocks generally, I think for Bailey it was more of a "too much trouble for something we don't particularly want to do"

dire socket
#

"I don't want to" is a valid response. Why addons are great.

pallid rapids
#

but also the things I have already said above

#

game balance does factor into it and we already think people are too focused on source production and not enough on the spending side

#

but yeah, if you're doing the work, not much we can do aside from give our explanations of why we haven't done it

#

we do keep joking about making a bigger source jar... that walks around and destroys things like the Kool Aid Man

hasty nacelle
#

it must be a carticture of buffbuncle

dire socket
#

Hmm. I like the idea of a source - monster. I should create a monster that is attracked to source and just eats it all up. (jk)

hasty nacelle
#

source gremlin

pallid rapids
#

could be a funny way to build a boss. Need to place a huge block of 100% full source jars, then they click together and go on a rampage

zealous zenith
#

I think connected jar is neat, it is visually better than 4 jars side by side. Now I don’t know why people have so many jars in the first place so I’m not going to be the one to solve it, but won’t complain if an addon does it

hasty nacelle
#

flexing ig

unreal summit
#

Make it scalable. I want to see someone make a 100x100x100 jar that just looms over the landscape.😜

spark wedge
#

I fear the source jar equivalent of terraria's torch god
Place 100 full source jars in s small enough space and it starts a bullet hell

#

I would also def encounter it if it were a thing. My spell factories and dozen remote perma-braziers chew through source like no tomorrow

#

Made a remote inventory request system with pneumaticraft so the braziers would toggle and I had a remote inventory terminal but handmade and ugly

#

Very funny walking up to mobs and watching them ash baby into xp crystals

gloomy stirrup
# mossy hollow but why? this is something that has been requested a lot and something we've alw...

This may seem unnecessary in the point of view of a logic thinker like most modders but as I played the mod. This was probably the thing I wanted the most. Sometimes just to have it. I'm also going for a so called omicle who will be an exotic animal like the starbuncle but his job is to walk on a treadmill or something like that and eat source and create energy by walking thus being a source to energy converter. Those 2 things will probably take me 2 weeks thats how slow I am but I think I'll be able to show some results by then.

radiant depot
#

multiblock jar code is already in sauce, it was showed in the april fools vid

#

rendering it as connected though...requires a ton of blockstates or a ctm system to rely on, as well as the textures

#

if i really try to imagine a simplified version, it would require at least 9 textures that must work as a 4 composition too

#

i did the rendering simply by scaling a source jar to the multiblock dimension, but another of the problem is that you can only dominion-wand the core (or the valve) so i had to make it stuck out :/

hasty nacelle
#

Maxmaxmax

#

Bruh

simple gorge
#

ah yes

hasty nacelle
#

Max * max * max

simple gorge
#

World Border x Max Height x World Border

gloomy stirrup
#

is there an existing mod addon on github I can take a look at?

simple gorge
#

several

gloomy stirrup
#

any recomendation?

hasty nacelle
#

Ars elemental

simple gorge
#

Pick your favourite addon 👍

craggy ice
radiant depot
#

probably, hexerei took it for its ctms

#

while having a ctm support in the addon library mod makes sense, unsure how much i want to commit into it

radiant depot
craggy ice
#

house-shaped source jar kek

unreal summit
unreal summit
gloomy stirrup
#

Thats infinite and it just keeps getting bigger

#

Thats how I wanted to solve it

#

Will earth ever get the ban mosquitos update? The pretty much destroy my skin.

gloomy stirrup
craggy ice
#

you could try a PR

simple gorge
#

:)

simple gorge
#

mosquitos prefer banana eaters

hasty nacelle
#

so curios is being difficult again, its quite strange as my own code doesnt interact with it at all so I have no clue how I would go about resolving it

craggy ice
#

U prob put it in the dependencies but didn't define a maven, or something similar

#

That's when u get these errors

hasty nacelle
#

ic
which should be impossible as it ran fine earlier today

#

furthermore Im using the example addon which was just updated yesterday to get around this issue

#

so Im a bit confused

craggy ice
#

The file might have gotten removed from the maven too

hasty nacelle
#

valid

craggy ice
#

If you don't use curios at all, look for the line in the dependencies block of the build.gradle file that has curios in it, and comment it out

#

Should begin with something like implementation or compileOnly

hasty nacelle
#

its the ars nov addon template
its a dependancy

craggy ice
#

You need to use it as a mod, sure, but your project dont have to directly depend on it

hasty nacelle
#

wait
is is supposed to be .pom or .com?

craggy ice
#

Probably com

hasty nacelle
#

hmmmmm

#

where can I find that link exactly?

craggy ice
hasty nacelle
#

i mean in my files

craggy ice
#

build.gradle

hasty nacelle
#

dam nothing

#

imma just sleep and try to catch jarva in the morning

#

thanks though, you are truly being a great help

rocky grail
#

maven could be down

hasty nacelle
#

that checks out

gloomy stirrup
#

Is there a tutorial on how to set dependencies

#

(just ars)

mossy hollow
gloomy stirrup
#

(all)

#

and why the hell is this class red i`ve never even touched it

mossy hollow
#

Your editor hasn't imported the project fully yet

mossy hollow
hasty nacelle
#

no

#

not that I know of at least

mossy hollow
hasty nacelle
#

ok

#

oop there were a few more

gloomy stirrup
#

do you guys by chance have the source jar filling image here just umm by chance?

hasty nacelle
#

you should be able to find the model in the github

mossy hollow
# hasty nacelle

try just remove the octo-studios repository, I don't imagine it should be needed

hasty nacelle
#

ok

hasty nacelle
craggy ice
#

Have you tried not importing curios? Or importing it from another maven like curse maven, or maybe even a flatDir?

simple gorge
#

ba ba bongus

hasty nacelle
#

I can say that not importing curios would fail spectaculaly
and for the other two I wouldnt know how to do that

simple gorge
#

for uhh curse maven you can uh one sec

#

go to this on any file of any curseforge mod*

#

and as long as you have the curseforge repository thing setup (which from the image you do)

#

you can compileonly/implement/runtimeonly basically wtv curseforge mod you want

#

flat dir is similar except it lets you use local jars you have

#

would look smth like this in your dependencies section of your build.gradle

#

(with the flatdir method being that last one, though it requires another step to work)

hasty nacelle
#

it seems like flatdir is already what is being used

simple gorge
#

this step here where you list the library folder as a repository

hasty nacelle
#

yup exactly that

simple gorge
#

doesnt hurt to exhaust your options

hasty nacelle
#

in my pic

#

or where exactly do I put it

simple gorge
#

the build.gradle dependencies section

#

alongside anything else similar

hasty nacelle
#

gotcha so replaces this onwards

simple gorge
#

uh

#

have no clue where that is, but probably not

#

should literally just be in the dependencies section of your build.gradle

#
dependencies {
// stuff here
}```
hasty nacelle
#

yep exactly that

simple gorge
#

well if so

#

hf

#

idk

hasty nacelle
#

oop
yea im out of juice for the night

hasty nacelle
#

taking out this

#

and it gets this

mossy hollow
hasty nacelle
#

ah

#

mistakes were made

mossy hollow
#

do this one

hasty nacelle
#

ok

#

instant faliure

rocky grail
#

use version 9.3.1

#

9.0.14 is crazy outdated

hasty nacelle
#

curios version?

rocky grail
#

implementation "top.theillusivec4.curios:curios-neoforge:${curios_version}+1.21.1" is what ars uses

#

where curios_version is set as 9.3.1

mossy hollow
#

9.3.1 is the one I provided

#

you're using this example addon right?

rocky grail
hasty nacelle
#

its that one

mossy hollow
#

You're still using the old example addon

#

Not the one I updated to use the new documentation

hasty nacelle
#

how though

mossy hollow
#

wdym, how?

hasty nacelle
#

talking to myself

#

huh
yea i appear to be werid

#

welp

#

time to redo the do

#

again

hasty nacelle
#

anyways it works like a charm now
I love having issues that dont follow occams razor

hasty nacelle
#

ok so Im trying to change my mod id from an_addon to what I want and it seems that there are some things im not suposed to rename
how would I go about fixing this?

#

wait i got it

#

LETS FECKING GO

tender karma
#

Is the add-on named Martial Ars?

#

Cuz that's pretty funny I like it

hasty nacelle
#

indeed it is

dire socket
#

@pallid rapids @unreal summit Thank you for your feedback the other day. I created a new addon for 1.21.1 that's more cohesive. It just makes ars blocks dyeable. nothing else. No breaking anything. I expanded it to all 16 dyeable colors and support more blocks - like ars addons blocks too. https://www.curseforge.com/minecraft/mc-mods/ars-deco

CurseForge

Ars Nouveau Blocks, machines, and items - now in 16 dyeable colors
8 Downloads | Mods

hasty nacelle
#

back at it again with wondering what is the best way to add in the item form of the block. following along with kappenjoe he uses a helper method, however I know that names are different there and it also doesn't seem to work where I'm trying to put it, from what I can tell it would likely work if I take out the code that adds in the block from ModRegistery and put it in its own class, though im also wondering if I can just get the line of code remotely without removing it and replacing it and add to it from there.

hasty nacelle
#

some more probing and i only need to understand why it cant resolve ITEMS

hasty nacelle
#

I got a frien currently help me

hasty nacelle
#

ok now another new issue has popped up
i cant make new lines

#

in community edition intelji

#

im doing new line but It just goes to the next one

#

ok i have a roundabout way of fixing thatr

#

oh wait
im in a different cursor mod

#

mode

#

how the feck do I get back to default

mortal oak
#

are you on insert or suppr mode?

hasty nacelle
#

the wide cursor mode ig

mortal oak
#

press fn + suppr

hasty nacelle
#

suppr?

mortal oak
#

the delete key

hasty nacelle
#

ah

#

that removes a line

mortal oak
#

uh

#

maybe just the delete key?

hasty nacelle
#

I think we all know how that will end

#

it goes back a space

#

what would the mode be called? im checking keybinds

#

oh wait found it

#

what is the insert key

#

ah found it

#

there we go

#

so it was in overwrite mode

hasty nacelle
#

ok how do I remove the .item here? i know it will mess things up if i have both items and blocks in one

#

any takers?

zealous zenith
#

just refactor and change the .notation or right click -> add folder -> change the models.item. to models.block

hasty nacelle
#

what about the item directory thats also in there? Do i need to separate them into their own thing?

#

looks like this rn

zealous zenith
#

err there is an intellij command to force those out into their own folders. Right now you have block and item inside an items folder located at models/item

#

if you right click block -> refactor you can rename the position to be at models

hasty nacelle
#

ah ic

#

that.. also deleted every single one of the .jsons in items/items

#

wait no it didn

#

wait yes it did

#

no it didnt

#

Bruh

#

lol

#

ok lets see if that fixed it

#

it didnt
my texture still isnt texturing

#

ah ic

#

ok another one
is rendertype required?

#

doesnt seem to be

unreal summit
#

Someone needs to make this individual SAD😜

hasty nacelle
#

whar

hasty nacelle
mossy hollow
hasty nacelle
#

Jarva!

#

when making a custom creative mode tab kappenjoe wants me to make it in the same folder as the ModItems class
however the ModResgistery replaces the need
so where should the class for the creative mode tab go?

#

im also checking ars's location for the tab

hasty nacelle
#

bruh
why no work?

#

exactly the same in the tutorial so what am I missing

#

oh multiple problems

#

cant be resolved bc the class that which it is part of is static?

#

no wait thats private

#

IM FUCKING BLIND

#

thats one issue out

#

that class was suposed to return VOID

hasty nacelle
hasty nacelle
#

is doing .register depricated or something?

#

oh wait

#

my location was off

#

ok so does this

#

equivilate to this?

hasty nacelle
#

seems like a mayhaps
new question...

#

so I THINK the issue is around here?

#

otherwise it would be in the ModRegistery class

hasty nacelle
rocky grail
#

youre registering more than once somehow

hasty nacelle
#

Ik
And Idk where

mossy hollow
#

@mortal oak @gleaming fox Idk which is the right account now.

Can you ping me when you finish migrating to MDG? I'd like to add trinkets to ArsAddonBuilder

mortal oak
hasty nacelle
#

hello I am attempting to initiallize an item with custom behaviour and im running into an inconvertible types error. can someone explain why this might happen so I can narrow down what I can do to fix it?

mossy hollow
#

Show the full code

hasty nacelle
#

I can also make a commit to the github if that would be easier

mossy hollow
#

It should be a DeferredItem<MushroomWandItem>

hasty nacelle
#

ah

#

ic

#

must have been recent then as that wasnt covered in the tutorial

mossy hollow
#

Which tutorial?

hasty nacelle
mossy hollow
#

Ah

hasty nacelle
#

interesting it still says there are related problems but doest bring me to where they are

#

hell yea

#

it works

#

thank you so much once again jarva

hasty nacelle
#

thinking of the future
how is a spell in an item stored? I eventually will make it so that in each crafting recipe you can put a spell on a spesific item and use that item in the crafting recipe to add the spell to the final product

hasty nacelle
hasty nacelle
mossy hollow
hasty nacelle
#

no more errors! ty!

hasty nacelle
#

so as it turns out EventBusSubscriber.Bus is deprecated
and i don't know how exactly to go about using the newer version
im trying to set up datagen

mossy hollow
#

no harm currently

hasty nacelle
#

alot of harm actually
like wont work harm

#

red error harm instead of yellow issue

#

harm

#

turns out though after some researsch it doesnt apear to actually be required to exist anymore

radiant depot
#

You can remove the bus part and it will auto-detect which one to use

hasty nacelle
#

That's what I gathered

hasty nacelle
#

well that pisses me off

#

it removed every single file in my recipes and loot tables (I didnt even tell it to touch recipes yet) and didnt write anything new

mossy hollow
#

You using AI?

radiant depot
#

Also note that whatever you put in the "generated" folders get cleaned up when you runData unless it was made by the datagen

hasty nacelle
#

it used that instead of my datagenerator
why the fuck would I take the fun out of coding

#

ok
so it seems that I need to go back and put my enapp recipes in that file

mossy hollow
#

new version of Ars.Guide takes over 20 minutes to build and deploy 😱

hasty nacelle
#

I mean
its alot of code

hasty nacelle
mossy hollow
#

About 10k LOC it seems (don't include the yaml or scss)

hasty nacelle
#

so at some point
one of my advanced items (an item with its own class) decided that it's class is just no longer valid

#

I have changed nothing

#

what do you MEAN you cant resolve the symbol "custom"