#help-development

1 messages · Page 899 of 1

fluid river
#

i thought about this in the beginning

#

but

lost matrix
#

And create a group inventory which holds quest items. Dont let them interact with it. Just place quest items in the groups quest item inventory.

fluid river
#

i'd like to let players actually do quests separately in some cases

rapid pelican
#

So depending on the quest type you change it

fluid river
#

but if they are close to each other and both come to a quest giver, i can give quest to both of them

lost matrix
#

Then abstract it away. Have an abstract QuestHolder and PlayerQuestHolder, GroupQuestHolder.
Assign quests to each holder depending on if its a group quest or not.

fluid river
#

but if one collects the knife, second get's quest state update same as first one

lost matrix
fluid river
#

maybe

rapid pelican
#

Too many edge cases?

fluid river
#

i still need to think about it

#

yeah maybe the way with having group quest item container and group quest list is a good solution

#

best actually

lost matrix
#

I think before thinking about a solution, you should try to properly fetch out the actual problem.
Because this sounds like you are not even sure what you are trying to do in the first place.

fluid river
#

not just questing

rapid pelican
#

then abstract them like @lost matrix said

fluid river
#

that's the only goal

#

no matter if they do it separately or together

#

world should change for both

rapid pelican
#

First test them using QuestHolder and PlayerQuestHolder, GroupQuestHolder

lost matrix
#

In that case you will have to create a decent system for keeping track of who has which active quest.
And dont forget that offline players can have active quests which might be done when they log back in.

rapid pelican
#

Afterwards make a system where it checks if they are in a specific radius

fluid river
#

also a funny case

#

for example player logged out in a dungeon

#

and other player triggered it's collapse

eternal oxide
#

You just populate their active quests when they log in. Cycle over any they have ane remove dead ones.

fluid river
#

what would happen to player when he logs in

lost matrix
#

Each POI should have a default safe spot. If a player logs in while inside any POI, they simply always get teleported to the safe spot.

eternal oxide
#

Player logs in, you check their assigned quests and remove any that are dead/invalid

fluid river
#

am i actually allowed to continue the game if some of the players leave during the playthough...

#

for example For The King doesn't allow it

lost matrix
#

Depends on what you are aiming for

eternal oxide
#

if you store the active quest in the Players PDC you check if it's still actiuve/valid when they log in, if not you teleport them out

fluid river
#

just trying to get if open world rpg is even syncable

fluid river
eternal oxide
#

ah

fluid river
#

but yeah i do have player pdc anyways

#

just differnt naming

eternal oxide
#

same principle

fluid river
#

I think i should actually copy mechanics from for the king

#

Its not an open world rpg but

#

It has some kind of separate questing

#

Even tho 3 players are in the same world

#

But what's actually interesting is that to continue journey you need to wait in a lobby for all saved players to connect

#

So if you start a coop with two playes, you need to wait for the second player to continue the next day

proud badge
#

What is a good pathfinding API/Algorythm that I could use?

#

For mobs

fluid river
#

So the host player stores server saves

eternal oxide
#

Most use a modified A*

#

But there was a BIG thread on mob AI

fluid river
#

And if his pc gets smashed, play through stops for everyvody

#

What do you guys think?

eternal oxide
#

No player should be dependant upon another for their game play.

#

They should have the option of restarting the quest

granite owl
#

this is more of a general java thing but yea, can someone explain to me exactly how java's serialization's forward/backwards compatibilities work what i can do and what i cant do?

#

because the docs are rare sparse on this

granite owl
#

network communication not using the servers standard communication

#

also storing data to a database

lost matrix
#

Ok but the versioning is of no concern here. Thats an uninteresting implementation detail.

rough drift
#

Sorry didn't see the convo

#

World Unloading Memory Leak

granite owl
#

and then try to deserialize an older version on the harddrive back into an instance of the updated class

#

if data is simply lost if fields are deleted thats fine as theyre obv no longer needed but if it throws exceptions thats bad

lost matrix
#

I would just use json then. Serializing to binary blobs is kinda outdated imho.

granite owl
#

hm

river oracle
#

If you do wanna serialize to binary

#

Use a binary format like NBT

slender elbow
#

protobufs 🙏

proud badge
#

whats the method to make an item enchantment not show in lore?

#

As in make the item glow

#

nvm discovered ItemFlags

young knoll
#

Y2k NBT serialization api when?

slender elbow
#

no

#

what does that even mean lol

#

typical intellij

hazy parrot
#

Goofy ij

granite owl
warm mica
#

Or bson

granite owl
#

i wonder does the server just crash when it tries to exceed the specified heap size limit?

river oracle
#

They're a pain in the ass

granite owl
#

and if every instance has the chance to trigger the OutOfMemory exception, shouldnt virtually everything be wrapped in a try block to avoid the exception being propagated across the stack to the server?

river oracle
#

Pretty sure out of memory is an error

#

If it isn't thatd be wild

granite owl
#

sec

river oracle
#

If you're trying to recover from OOM you're doing something wrong

granite owl
#

error

river oracle
#

That's kinda irresponsible imho

granite owl
#

so just let it crash?

river oracle
#

Yes that's why OOM exists and why it's an error

granite owl
#

by propagating to the stacks top that the jre terminates the process?

river oracle
#

You're not supposed to recover from it

granite owl
#

hm

#

ok xD

river oracle
#

Errors mean oh shit this should never happen panic!!!!

#

Not yeah this happens sometimes whatever lmao

granite owl
#

but by that logic, certain plugins or java programs in general simply stop working at certain complexity

icy beacon
#

?

granite owl
#

if not run with more heap size limit

icy beacon
#

Yehs

river oracle
#

If you run out of memory even your OS will crash

icy beacon
#

System requirements are a thing if you're talking about that

river oracle
granite owl
#

in any reputable os

river oracle
#

Os tend to recover but it's because it controls that

#

But that's the lowest level lol

granite owl
#

just download more ram?

#

why is here no kekw meme

river oracle
#

I refuse to elaborate more but if you try and recover from OOM in a high level non important application you're stupid as hell

icy beacon
#

Has anybody yet figured out how to register an enchantment in 1.20.4+

#

I need dat glow on those items

#

Yeah

undone axleBOT
icy beacon
#

??

#

I can't just browse all mappings in hopes of finding what suits me exactly

river oracle
#

Unfreeze the registry

#

And use nms

icy beacon
#

Ah fucking hell nms

#

Aighty I'll try ig

granite owl
river oracle
icy beacon
#

That is exactly what I implied I couldn't do

#

?mappings is all mappings, did you want me to browse everything

undone axleBOT
granite owl
#

hm

river oracle
granite owl
#

i mean i could with the jni but that defeats the purpose of plattform independency

icy beacon
#

That is closer to the truth. The reason I'm asking in the first place is because I didn't know what classes were relevant

#

Dude

granite owl
#

and i did before

river oracle
#

Or you could use Unsafe to just kill all the memory and use the empty space

young knoll
#

Did someone say unfreeze registry

icy beacon
#

Do you want me to guess blindly

river oracle
icy beacon
river oracle
#

Teach the man

icy beacon
#

Idk, is there?

#

That is precisely why i am asking. I do not know

#

Yes

river oracle
young knoll
#

Cursed code incoming

#
public static void unfreezeRegistry(Registry<?> registry) {
        try {
            Field intrusiveHolderCache = getField(MappedRegistry.class, Map.class, 5);
            intrusiveHolderCache.set(registry, new HashMap<>());

            Field frozen = getField(MappedRegistry.class, boolean.class, 0);
            frozen.set(registry, false);
        } catch (ReflectiveOperationException e) {
            e.printStackTrace();
        }
    }```
icy beacon
#

This is infinitely more cursed than it was before 1.20.4 lol

#

Thx

young knoll
#

Actually I guess you need the full class

#

?paste

undone axleBOT
young knoll
icy beacon
#

I mean you were never supposed to register custom enchantments in the first place

young knoll
#

Now I gotta run before MD bans me

#

Kek

icy beacon
worldly ingot
icy beacon
young knoll
#

Oh no choco is here to ban me instead

worldly ingot
#

Technically they shouldn't be unfrozen at all

eternal night
#

not that registering custom things there is remotely a "supported" thing even if you'd have a way to edit the registries kekwhyper

worldly ingot
#

So the best way is the worst way possible lol

icy beacon
#

I wish there was just a way to make an item glow

#

How is that not a thing

#

Why does it have to be hacky

worldly ingot
#

Mojang pls

eternal night
#

Yea, throw things at mojang

#

I mean, we have VisualFire

#

where is VisualEnchantment

worldly ingot
#

Always forget about visual fire

icy beacon
#

Client does not recognize them

#

Or is that your question

#

Ah

eternal night
#

Angry_Arthur_Fist mojang

#

jk jk they have been implementing some sick changes for devs

worldly ingot
#

Well, enchantments are server-sided, their translations are client-sided

shadow night
worldly ingot
#

:p No I think they just straight up don't render non-vanilla enchantments

young knoll
#

tbf

icy beacon
#

I don't see the reason why translations couldn't be done server-sided imo

young knoll
#

Thew only reason the client doesn't understand custom enchantments is because they are communicated by id

icy beacon
#

Take the player locale, return the string

worldly ingot
#

Translation strings are best hosted on the client so the server doesnt' have to have a bazillion language files

#
  • you can change strings whenever you want
young knoll
#

You don't want lolcats on the server?

worldly ingot
#

make your own languages

#

etc.

shadow night
icy beacon
#

Makes sense

slender elbow
worldly ingot
shadow night
#

I like the prereform russian langauge

young knoll
#

No one is stopping you

young knoll
granite owl
#

i keep asking myself why NMS mobs have methods defined to set their bounding box when the bounding box is client sided

worldly ingot
#

I mean yeah there is also the fact that you have to send lots of variable and potentially long String data to the client

#

And that's just for messages that get sent

#

Item data isn't sent each time it's looked at, for instance

young knoll
#

The NMS bounding box does work for some things

#

Like collision

worldly ingot
#

What if my item is in English but I throw it to my friend who's language is French?

#

or LOLCAT? :D

young knoll
#

kek

#

Idk choco maybe if that PR was merged

#

D:

proud badge
#

Hi, is there an API or some way to make a passive mob attack a player, or do I have to just damage the player when the mob is nearby?

worldly ingot
#

It's probably like "omg itme"

granite owl
# young knoll Like collision

yea but i tried to enlarge mobs to create custom bosses which naturally didnt work as intended by creating a custom mob all the way up from the base class

young knoll
#

You can make passive mobs angry yeah

granite owl
#

to figure that the actual fields are private

young knoll
#

It takes some... effort though

granite owl
#

that determine size server sided

shadow night
young knoll
#

Yeah you can

proud badge
#

Ik about pathfinding

#

Dk about attacking

young knoll
#

You also need to hack an attack damage attribute on to them since they don't have it by defau,lt

worldly ingot
granite owl
young knoll
#

Hence the attribute hacking

granite owl
#

^^

young knoll
#

I have code for that too but it might kill choco

worldly ingot
#

plsno

granite owl
#

because polymorphy

worldly ingot
#

because this is a 2008 codebase

young knoll
#

what about a 2008choco?

worldly ingot
#

and we are in Java after all

#

Composition isn't its strongsuit

lost matrix
granite owl
#

i did make a murder chicken to test xD

#

u cant make the chicken deal dmg but the player can take damage that in turn can be attributed to the chicken as source

worldly ingot
#

It's not horrible, but it's no C++

#

Languages with actual templating make composition a lot easier

young knoll
worldly ingot
#

Java has to deal with generic hell

echo basalt
#

Your reflection utils are doodoo

granite owl
young knoll
#

You got a problem with my reflection utils?

#

smh my head

worldly ingot
#

tbf, you can probably support a lot more versions if you're indexing by type rather than indexing by field index or by name

young knoll
#

Yeah that's why I do field type and index

#

Since the name will just be some magic obfuscated letters

#

I'll get on that when Mojang hires me

#

tru

granite owl
young knoll
#

glowstone

#

I think it died tho

eternal night
young knoll
#

Man I am tempted to poke plugin loading today

#

But idk if I want to cry

granite owl
young knoll
#

no

#

That'll never happen

granite owl
#

🥺

young knoll
#

The game just isn't designed for it

granite owl
#

xD

young knoll
#

Get a faster pc

#

:p

#

tbf 1.20.5 should massivly help with startup time

proud badge
#

ok I just had a genious idea

icy beacon
#

Coll I need your help because I do not want to browse mappings, what types are this map of

proud badge
#

Im gonna put a zombie ontop of the cow (riding it) and make it invisible

granite owl
#

when i wrote my server architecture in C++ i made sure to make my /rl command safe to use (dlls tho/different project) just because i wanted it to just work xD

icy beacon
#

If you don't remember ig I'll ahve to browse

quaint mantle
river oracle
#

My server starts up in like 3 seconds I think it's a pc issue

ivory sleet
young knoll
#

private Map<T, Holder.Reference<T>> unregisteredIntrusiveHolders;

icy beacon
#

I presume T is Enchantment in this case?

young knoll
#

Should be

icy beacon
#

Ty

granite owl
#

i mean spigots "vanilla" functionality

#

but the whole server thread is by default single threaded anyways no?

rotund pond
#

Hello everyone
I'm looking for a spigot post explaining why we shouldn't use "Main" as a name for our spigot plugin.
Is there a command here ?

granite owl
#

with only a couple more for chatserver and login queue

quaint mantle
#

Pure spigot plugins should work perfectly when with rl but plugins thats depend on nms dont

rotund pond
#

W/e, th

#

Ty

ivory sleet
tardy delta
#

a thread being single threaded ah yes that sounds about right

proud badge
#

Has anyone else noticed that with maven § works but with gradle it doesnt

quaint mantle
#

Do utf-8 encoding

#

when build

proud badge
#

Non english characters also dont work with gradle

proud badge
quaint mantle
#

lol the snakeyml api is so confusing

#

why do they use a list for a map

icy beacon
river oracle
#

wait till he figures out maps are just fancy lists with extra steps pepeLaugh

quaint mantle
#

yeah but the class doesn't even act like a map

#

to insert values this is how

river oracle
#

what does a NodeTuple do

quaint mantle
#

prob a class with a bunch of data

#

ig it makes sense to a certain extend

river oracle
#

what a NodeTuple does is kinda important 🥲

#

for example HashMaps have nodes too well atleast in separate chaining

#

@young knoll you gotta let me know when the slime merges something Commodore.java so I can begin the work I was put on this earth to do

bleak eagle
#

question - are the address and telephony fields in the cla reeealllyy necessary? i know they're marked as such in the form but i'm not too comfortable providing those and email is good enough to contact me

icy beacon
#

How do I add a NMS enchantment to an item

remote swallow
bleak eagle
#

yeah no i'm aware, but is it just a "gotta have this on paper" kind of thing/will anyone get in trouble if i leave the fields empty/gibberish?

river oracle
#

MD will not leak your address or telephone they are purely used for legal filings

#

they are not public either

icy beacon
river oracle
#

you can also specify your stash name to be a username instead of your real name if you are uncomfortable with that

bleak eagle
#

no my name is fine

#

just extra personal info

river oracle
bleak eagle
#

but yeah fuck it

river oracle
#

this can be done with reflection

icy beacon
#

Really did not answer my question

river oracle
#

idk exactly how to do it lmao @young knoll is the master of registry unfreezing

icy beacon
#

No like

#

This is literally not even close to what I'm asking

#

I'm not asking how to register an enchantment

river oracle
#

NMS enchantment extension should provide you all the data you need to setup your enchantment

icy beacon
#

I have a NMS enchantment

#

How do I add it to an item

river oracle
#

you can than retrieve it from the bukkit registry using Registry.ENCHANTMENT

icy beacon
#

O

river oracle
#

I'd reccomend making static fields with all your enchantments

#

then you have the bukkit version of your enchantment

icy beacon
#

I have direct access to the variable which is my nms enchantment

#

Can I just convert it to a bukkit enchantment

river oracle
#

to do that you go through the registry with bukkit

icy beacon
#

Kk

river oracle
#

Registry.ENCHANTMENT.get(NamespacedKey.fromString("key:myenchantment")

icy beacon
#

Wait uh

river oracle
#

also note it might be like Registry.ENCHANTMENTS or Registry,ENCHANTS

#

or something

icy beacon
#

When creating a NMS enchantment I do not specify a key though?

river oracle
devout pivot
#

I asked this before but didnt get any ans so asking again

I dont know anything about plugin development. theres a plugin i want to use but it isnt up to date. the last version it was updated to was 1.19 and I want to know how much do I have to learn to update that plugin on my own

river oracle
#

you have to specify a ResourceKey

icy beacon
#

Ah yea

#

I forgot I did that

river oracle
icy beacon
#

I provide a String though and it's also accepted

river oracle
icy beacon
#

Convenient

#

Fair enough I'll try that

river oracle
#

I highly reccomend you use your own namespace though

icy beacon
#

Tyty

#

Yeah I will try that

river oracle
devout pivot
river oracle
river oracle
#

it'll work on latest

#

no internals are used 👍

devout pivot
#

then when will it stop working

#

i mean at one point it has to stop working with the latest versions right?

icy beacon
#

Not unless spigot introduces a breaking change into some of the API you use

#

Or unless you use NMS (which you most often shouldn't and currently you don't)

devout pivot
#

alright then thanks

#

and i want to get into developing plugins for my server so can you suggest me how i should start

chrome beacon
#

Start with learning Java

#

?learnjava

undone axleBOT
#

For Beginners:

Codecademy - Learn Java: Interactive Java programming course from basics to more advanced concepts. Perfect for absolute beginners.
https://www.codecademy.com/learn/learn-java
JetBrains Academy - Java Developer Track: Learn by doing with projects and challenges. It covers Java fundamentals to advanced topics.
https://www.jetbrains.com/academy/
Udemy - Java Programming Masterclass for Software Developers: Updated courses that cover Java 8 to Java 17 features. Suitable for those who prefer structured learning.
https://www.udemy.com/course/java-the-complete-java-developer-course/

For Intermediate to Advanced Learners:

Oracle Java Tutorials: The official guides by Oracle for Java programming—great for understanding the depth of Java.
https://docs.oracle.com/javase/tutorial/
Baeldung - Learn Java and Spring: Focus on Spring Framework and modern Java technologies. Best for intermediate learners aiming to expand their knowledge.
https://www.baeldung.com/

Practice and Hands-on Learning:

Exercism - Java Track: Solve exercises and get feedback from mentors. Great for practicing coding skills.
https://exercism.io/tracks/java
LeetCode: Practice your coding skills and prepare for technical interviews with Java.
https://leetcode.com/

Free Resources and Documentation:

Java Programming and Documentation: A comprehensive collection of Java programming guides, tutorials, and API documentation.
https://docs.oracle.com/en/java/

Community and Support:

Stack Overflow: A vast community of developers. Great for getting help with specific problems or understanding concepts.
https://stackoverflow.com/questions/tagged/java
r/learnjava on Reddit: Join the community of Java learners and get advice, share resources, and discuss projects.
https://www.reddit.com/r/learnjava/

Remember: Learning to program takes practice and patience. Don't hesitate to experiment with code and participate in community discussions. Happy coding! 🎉

remote swallow
#

thats so long now

icy beacon
#

Not long enough

devout pivot
#

alright

echo basalt
#

baeldung my beloved

surreal hornet
#

if you prefer learning from video you can learn both java (or kotlin) and spigot from Kody Simpson

#

Kaupenjoe also has a super great and short java series that learn most of the thing you need in a super short time period

river oracle
#

has kody gotten better at coding?

#

much of the code from his videos is icky atleast the ones I watched

#

the real meta play is to watch The New Boston

surreal hornet
#

i mean yeh sometimes he do questionable things (i still dont know why he used linear search instead of hashmap on his gson video) but i* think hes a great starting point

icy beacon
#

His videos shouldn't be used to learn coding but they are good to get a grasp of the Spigot API imo

surreal hornet
#

yep i agree

proud badge
#

Whats the keybind to make this appear on intellij? It sometimes does and it sometimes doesnt

eternal night
#

its called "parameter info"

#

check up what your keymap has it set to

proud badge
#

Ok thx

surreal hornet
# surreal hornet yep i agree

i say you can learn spigot api and basic stuff from kody (u just need to watch 30 video at must) then u can learn designing patterns from Geekific series. (bc kody sucks at designing patterns)

minor junco
#

for a small amount of elements

echo basalt
#

Here's my mask -> Mask barrierMask = BukkitAdapter.adapt(Material.BARRIER.createBlockData()).toMask();

icy beacon
#

Shouldn't sessions be committed or smth

#

1 sec

echo basalt
#

Already tried that

#

what if I invert the mask

#

Yeah that worked lmfao

#

im an idiot

icy beacon
icy beacon
#

GG

twin venture
#

Hi , uhh just a question does sqlite not work with latest version?

#

the file is being created , but nothing happens when player join , or leave it does not load , nor create , or save his data to the sqlite data file

echo basalt
#

did you register your listener

twin venture
#

but if i use mysql it works just fine , and btw the sqlite was working for older versions

#

only for 1.20.4 it stoped working .

echo basalt
#

show code

twin venture
#

the same code i use for other versions , for example 1.16.5 , or older it works , and the data is loaded ..

#

idk why it happens .. for only 1.20.4

quaint mantle
#

lmao that class name

minor junco
twin venture
#

yeah sorry abt that

#

gonna remake it sooner or later

minor junco
#

That is for real the longest name that is not a troll I've seen in a while god damn

rough drift
#

May I introduce you to

minor junco
#

SkyPvPSQLiteProfileDataManagerProvider dataManagerProvider = new SkyPvPSQLiteProfileDataManagerProvider(plugin);

#

Jesus

#

(no I don't use var)

rough drift
#
GitHub

FizzBuzz Enterprise Edition is a no-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes. - EnterpriseQualityCoding/FizzBuzzEnterpriseEdition

minor junco
#

What the frick

vocal cloud
twin venture
#

haha thanks god , my class is not the longest xD

#

anyway , ihave another question .. about libraries

#

so for example i have been using a library but its removed from github , but i have the latest version my pc , i mean the source , how i can use it in maven? the one that is in my pc

#

it does not support 1.20.4 , and i want to add support for that cuz my plugin stoped working :p

rapid pelican
#

if it was removed from github I don't think it should be removed from mvn repositories

rapid pelican
#

You want to modify the code?

twin venture
rapid pelican
#

If you can obtain the latest build, try contacting the developer if he allows the modification of the code

remote swallow
#

if you have source just modify andmvn install it

rapid pelican
#

You can do that

twin venture
#

Hi iam getting an error ..

#

iam trying to install 1.20.4 using buildTools , i downloaded the latest one from spiot just now

proud badge
#

What else extends Golem?

#

Is it only IronGolem?

twin venture
blazing ocean
undone axleBOT
blazing ocean
sullen canyon
#

Hello I have a question related to redis/mongodb and designing my minigame network the right way

So, generally it would be better if I loaded statistics from database when I needed it instead of keeping the data in redis once the player joined?

For example for now I actually cache data so I do not ask neither redis nor db to get the data when I only need to display it. Also I load statistics from db to redis when a player connects to proxy and upload it from redis to db when a player disconnect from proxy. Is it a good way of doing this or there is something I would want to change to improve the current base I have?

(Also, when I need to change player's statistics and he is online then I do this on redis's side, when he is offline I directly change it in the db)

#

because as minikloon said it's overcomplicating and doesn't make much sense using redis since the query response time of redis and mongodb relatively unnoticeable

chilly hearth
glad oriole
#

Would any help with configs on /quests /menus and real scoreboard?

icy beacon
#

?ask

undone axleBOT
#

If you have a question, please just ask it. Don't look for staff or topic experts. Don't ask to ask or ask if people are awake or available. Just ask the question to the channel straight out, and wait patiently for a reply. Make sure you use the right channel regarding the topic of your question. Create a thread in case the channel is already in use!

icy beacon
#

Has anybody worked with both Kodein DI and Dagger? What is your preference and why? I want to use some DI lib for but not sure which one would be a better fit. Is it just a matter of preference? I already sorta have experience with Dagger (Dagger Hilt with Android but not just Dagger)

#

Ping me if you respond plz

blazing ocean
silent cove
#

is there anything that can be done about your plugins ending up on black spigot

chrome beacon
#

Yes you should be able to DMCA them since they're distributing your copyrighted stuff

#

might not be worth it though

silent cove
#

that's unfortunate

#

does spigot about licensed plugins that are premium? seems like the rules kinda tie the hands of the developer and just say welp, nothing you can do to stop it.

chrome beacon
#

There's not much Spigot can do

#

So you as the developer have to take action

#

which most likely will cost more than just letting it be

silent cove
#

yeah, its not really about money. its just the point of it.

#

I make like .60 per purchase of my plugin after fees usually.

#

spigot could do things, by allowing developers to obfuscate their code, and allow for licensed plugins

chrome beacon
#

Obfuscation and licensing won't stop anything

#

all it will do is introduce potential security problems

silent cove
#

they why isn't intellij ultimate/webstorm, any jetbrains products being pirated? they're all java applications

chrome beacon
#

I wouldn't say theres a need for it

#

besides you could probably find them pirated if you wanted to

#

but you might end up in trouble if you try to sell anything you make with it

twin venture
#

how i can fix this?

#

i have been trying for 2 hours now

chrome beacon
twin venture
#

yeah i tried

chrome beacon
#

Try running Spigot without the GUI using Git bash

vocal cloud
worldly ingot
#

There's a strong difference between you, a nobody developer, and IntelliJ, a software conglomerate with lawyers out the ass

silent cove
#

for sure, that 's much is understood. I just mean that there's really not ample resources out there for pirated of 'cracked' versions of jetbrains products is all i was saying

worldly ingot
#

They can usually enforce the legal documents they draft :p

silent cove
#

counter to the "that won't help" claim

#

so its not a matter of the systems working, you're saying its the threat of punishment that works?

worldly ingot
#

They may just be tougher on it. It's relatively difficult to find good Adobe cracks as well. They're on top of things like that legally

vocal cloud
#

If a server steals your software you'll know because to provide support you ask for proof of purchase. Just ask Alex he gets plenty of pirates coming to him I'm sure. The secret sauce is the people stealing it probably don't have a server worth anything anyways.

worldly ingot
#

I believe there are some Adobe cracks that do work, but they're severely outdated and at that point it's just not worth the effort because it drives interest to their newer versions and ultimately benefits them

#

"Hey, want new features? Now that you've tried it for free and your workflow relies on it, buy them!"

silent cove
#

alright

rough ibex
#

they reel you in

vocal cloud
#

People will pay for the convenience of having direct access to you for support. Providing good support to proof-of-payment customers.

worldly ingot
#

It ultimately comes down to "Stay on top of things legally, anything willing to stay out there probably isn't worth your effort anyways"

vocal cloud
#

No one has come here complaining about mass piracy. You could use bstats to track some metadata (or use your own API) but at the end of the day it's not worth the effort.

tame wolf
worldly ingot
#

I mean listen, hiding versions I can maybe understand. Hiding plugins and authors is annoying

#

I never put a permission behind my /<plugin> version commands so if someone really wants to hide that my plugin is installed, they have to install a plugin to block my commands :p

silent cove
#

I'm not complaining about mass piracy. I don't have some super populate plugin. It was just a passion project in university that actually turned out pretty cool. I don't do it for money, I have nether even withdrawn the funds I've accrued from it. I have a career, it was just the ethics of it all that bothered me and I wondered if there's anything to be done.

tame wolf
rough ibex
#

hypixel
/s

silent cove
#

most servers hide their plugins..

worldly ingot
silent cove
#

not justifying it, but your statement is false

twin venture
#

i have made a plugin and i got 91 buyer over 2 years of hard work , is there a way to get more customers?

remote swallow
#

hypixel has icanhasbukkit last time i checked so its good enough

worldly ingot
#

Make something a bit more unique I suppose. It comes down to a good balance between unique but still useful enough

rough ibex
twin venture
rough ibex
#

and it said running on a modified version of Spigot

hushed scaffold
worldly ingot
#

TikToks might work, but it's a paid product so ehhh

tame wolf
worldly ingot
#

You've gotta convince a TikTok viewer to buy something

river oracle
rough ibex
#

making a tiktok about it is going to be forced and disingenuous

silent cove
worldly ingot
#

It's snuffing out the hard work of the plugin authors

hushed scaffold
worldly ingot
#

You did not make that plugin, it's not fair to hide our names

rough ibex
#

I think hypixel actually uses a modified version of Citizens

#

and they have a small base dependency on NCP

worldly ingot
#

I can totally understand hiding version numbers though for vulnerability reasons

#

Bugs get fixed, bugs get abused, all that

river oracle
# hushed scaffold ? ?

If the exploit exists and there is someone who wants to abuse it hiding the plugin name won't stop you e.g. the Vulcan exploit I'm sure most servers hid that they had Vulcan but that didn't stop them from falling victim to the exploit

twin venture
vocal cloud
worldly ingot
river oracle
worldly ingot
#

There really are some dogshit premium resources that get way more downloads than they deserve lol

vocal cloud
#

This crap

river oracle
tame wolf
river oracle
#

Never seen it

tame wolf
silent cove
#

the baitest thumbnail and title ever

worldly ingot
#

lmao no it was them checking for GUI functionality via inventory names

vocal cloud
# tame wolf Log4J

Yeah, they claim that Log4J is a "java exploit" and therefore not applicable facepalm

tame wolf
#

Wat

#

That makes 0 sense

worldly ingot
#

So someone figured that out, renamed a chest to one of Vulcan's administrative GUIs, and allowed them to run any command

#

This is the reason you don't use inventory names to check for GUIs

river oracle
#

Yep

worldly ingot
#

Honestly impressed nobody found out sooner

river oracle
#

This is why hashes rain Supreme lol

rough ibex
#

wow that is pretty bad

vocal cloud
tame wolf
#

Is there even a reason to check for inventory name?

rough ibex
#

not even permission checking the actual actions?

proud badge
#
            if(getNearestPlayer(golem) != null) {
                golem.setTarget(getNearestPlayer(golem));
            }
            if((count.get() & 30) == 0 && count.get() != 0) {
                golem.setVelocity(new Vector(0, 1, 0));
            }
            if ((count.get() & 10) == 0 && count.get() != 0) {
                golem.getLocation().getWorld().playSound(location, Sound.ENTITY_WARDEN_SONIC_CHARGE, 1.0F, 1.0F);
                Bukkit.getScheduler().runTaskLater(HeeseDungeons.getInstance(), () -> {
                    drawParticleLineBetweenEntities(golem, getNearestPlayer(golem), Particle.REDSTONE, 10);
                    getNearestPlayer(golem).damage(5.0, golem);
                    golem.getLocation().getWorld().playSound(location, Sound.ENTITY_WARDEN_SONIC_BOOM, 1.0F, 1.0F);}, 60);
            }
            count.getAndIncrement();
        }, 20, 20);``` Hi, is it not possible to run a runTaskLater inside of a runTaskTimer? The code at runTaskLater does not get executed later
rough ibex
tame wolf
#

Like, if you open the GUI then no need to check the name

charred blaze
tame wolf
#

You know what you're on

river oracle
#

The best way to do this is hashing with a handler

tame wolf
#

Fair

#

Or even adding an invisible character

river oracle
#

Map<Inventory,Handler?

worldly ingot
rough ibex
river oracle
rough ibex
#

again, obscurity

proud badge
rough ibex
#

also 'invisible character' can be defeated by a rspack

worldly ingot
#

Oh, there's also the fact you're using & to compare instead of ==

#

:p

vocal cloud
#

It's terrible design because you should only check permissions. If someone has permission who cares if they're renaming things?

worldly ingot
#

Or, rather, you probably want %

silent cove
#

also spigot says plugins can't be obfuscated, but I own multiple plugins that are heavily obfuscatred that I purchased from spigot. I guess its about who you know

proud badge
worldly ingot
#

Yeah, you want %, not &

proud badge
#

Oops

kind hatch
charred blaze
#

yea just check permissions

silent cove
#

literally one of them reports a virus on windows defender, and they say "just ignore it, its our plugin obfuscation"

river oracle
kind hatch
silent cove
#

i just laughed. i havent played in months but i stil lurk in the discord

proud badge
#

Though why does the SONIC_CHARGE part get executed but not the SONIC_BOOM?

charred blaze
#

how do spigot staff check plugin's code if its obfuscated

#

they dont?

silent cove
#

highly doubt anyone is checking code

river oracle
river oracle
#

It's why it can take months to be approved

charred blaze
vocal cloud
#

I imagine if reported it is

silent cove
#

well i can guarntee you that this plugin IS compeltely obfuscated to the point where it cnanot be read, and windows defender thinks its a trojan

river oracle
#

Likely they'll give them a chance to change it then remove the plugin

silent cove
#

this plugins has many thousands of downloads. dude its about who you know. they're not gonna do crap

eternal oxide
#

plugin name?

river oracle
kind hatch
silent cove
#

i haven't played in several months, I just recently saw in the discord players complaining about a "virus" and they just responded with oh you can ignore that, its because of the obfuscation. so i looked at the plugin and its completely obfuscated to the point where you cannot make heads of tails of anything

river oracle
#

then you should report it instead of being all doomer about it

#

its likely this was introduced after the plugin was approved

shadow night
#

Java apps are commonly recognized as malware, so I don't see unusual stuff lol

silent cove
#

im not going to, because i think they should be allowed to obfuscate it

charred blaze
#

what are u trying to achieve

silent cove
#

im all for protecting your work

river oracle
#

obfuscation is the least close thing to protecting your work xD if I had 14 dollars to spare I'd crack it open and de-obfuscate it

tame wolf
#

Then what are you complaining about

eternal oxide
#

Its likely YOU can't understand it but basic obfuscation is permitted. Report it if you are concerned and believe it's breaking the TOS

silent cove
river oracle
#

and I've got exams this week

#

maybe at a later date

#

with Cmarco's stuff

silent cove
tame wolf
#

Just report them then?!

kind hatch
silent cove
#

Dude, no.

river oracle
#

I'd report, but I haven't bought the plugin so I couldn't

#

so i can't see for myself

tender shard
river oracle
#

ta fuq pepe_laugh

#

yeah that looks pretty obfuscated

remote swallow
#

kekw

#

thats way too much obsfucation

silent cove
#

maybe theyt removed it after the virus warning and complaints? i don't know

kind hatch
#

You know, if windows defender is throwing warnings about a file, then something probably infected it.

river oracle
#

yeah especially since it never touches jar files xD

silent cove
#

i havent used it in like 8 months, i wouldn't know

kind hatch
#

Then why are you complaining? xd

river oracle
#

I've run so many windows viruses jars you can do insane shit without getting detected

silent cove
#

who's complaining?

remote swallow
#

you are

silent cove
#

wrong.

eternal oxide
#

I've seen a lot of poeple get infected jars from NON spigot site and end up having all their plugins infected.

remote swallow
#

you were complaining about 5 minutes ago

silent cove
#

wrong.

twin venture
#

i had removed everything and , run it in an empty folder :

#

any fix?

valid burrow
#

league is crashing my audio but everything is up to date idk what to update anymore 😭

twin venture
#

trying to download 1.20.4

river oracle
kind hatch
#

Resource temporarily unavailable? tf is that error?

twin venture
river oracle
#

also @twin venture show @kind hatch the full error

#

he is the GUI wizzard

kind hatch
#

?paste your log

undone axleBOT
twin venture
river oracle
#

Shadow my guess is that its GPU issues

kind hatch
river oracle
#

It mentions some Cwlng I believe it was

river oracle
kind hatch
#

Ohh

twin venture
river oracle
twin venture
#

i have gtx 1050 ti oc editon 4vram ..

remote swallow
#

gpu doesnt matter on bt

chrome beacon
twin venture
river oracle
twin venture
#

it fail here :
like it finish download and patching the classes

#

but after a while it send that

#

btw i run the buildtools in a empty folder nothing in there..

river oracle
#

just try restarting your computer

kind hatch
#

That's a wild error.

river oracle
#

windows usually fixes this itself on restart

twin venture
kind hatch
#

May also want to check for system updates

#

A lot of stuff I see related to cygwin is around GitHub desktop.

chrome beacon
#

^^ recent windows update fixed my stability problems and bugs

#

Not sure how LTSC ended up so unstable and bugged

proud badge
#

What seems to be the issue, why is it red?

#

Nvm I imported the wrong bossbar

plush gulch
#
Location l = target;

Vector direction = sheep.getLocation().toVector().subtract(l.toVector());

sheep.teleport(l);
sheep.getLocation().setDirection(direction);

I tried using this code to hava a sheep look in the direction it's "moving", but the direction stays the same

kind hatch
#

@twin venture Did that restart help?

brazen badge
#

Kindly, could anyone send me an example of a region setter using the PlayerInteractEvent event? I just need to know how to get the points and that there is only one player who can do this and therefore prevent the event from blocking if other players place blocks.

twin venture
#

i gaved up i will just use

brazen badge
twin venture
#

<systemPath>${project.basedir}/libs/spigot.jar

#

to maven

plush gulch
#

can you get pitch and yaw from a vector?

lost matrix
plush gulch
#

yaw is what I want

lost matrix
#

Relative to what exactly?

plush gulch
#

I want an entity to look in the direction of a vector

#

so relative to its location?

solemn meteor
#

I feel like this is a mega beginner version but the answers that appear on google doesn't clarify this. In CommandExecutor, the onCommand() method, is there a difference by returning true or false? They both just end the code, so I'm confused. Some forum commenter said that false is for misuse or bad usage but I still don't get it. Is it just to make your code more readable?

lost matrix
eternal oxide
remote swallow
plush gulch
plush gulch
remote swallow
#

a lot of people just return true and send there own usage, but its designed for true for a valid and passing command and false for invalid or failing

solemn meteor
#

What does the usage message look like

remote swallow
#

whatever you define in plugin.yml

solemn meteor
#

and it just sends that?

remote swallow
#

iirc yeah

solemn meteor
#

alright alright

chrome beacon
#

^^

solemn meteor
#

makes everything clear to me

#

thanks for help

brazen badge
eternal oxide
plush gulch
eternal oxide
#

why teleport before setting direction?

plush gulch
#

because it has to move

eternal oxide
#

set direction before you teleport

lost matrix
plush gulch
#

why? I calculate the direction beforehand, so it shouldnt matter no?

eternal oxide
#

because you are modifying a copy of it's location

#

speep.getLocation() returns a copy of it's Location

lost matrix
solemn meteor
#

Does adding a permission on a command checks the player's permission for me instead of adding a permission check code?

solemn meteor
#

damn

brazen badge
solemn meteor
#

alright thanks

plush gulch
chrome beacon
#

Like a Map for example

chrome beacon
brazen badge
plush gulch
#

so how do I change it

lost matrix
# brazen badge my problem is to take the two locations with two different clicks

Create a class like this and put it in a Map<UUID, BoxSelection> where every player has its own selection.

public class BoxSelection {

  private Location first;
  private Location second;

  public void setNext(Block block) {
    if (first == null) {
      first = block.getLocation();
    }
    second = block.getLocation();
  }

  public boolean isComplete() {
    return first != null && second != null;
  }

  public BoundingBox buildBox() {
    return BoundingBox.of(first.getBlock(), second.getBlock());
  }

}
eternal oxide
plush gulch
#

oh

#

yeah

#

I'm stupid, sorry

chrome beacon
brazen badge
chrome beacon
#

Use the uuid

#

and store the uuid of the one who ran the command

#

in a set or smth

inner mulch
#

Arent enums breaking the open closed principle?

lost matrix
inner mulch
young knoll
#

yes

rough ibex
#

you made an OOPsie

inner mulch
#

yes :(

#

but in this case i would never use enums, as im never sure if i ever need to add categories

#

i might be sure in the momnet

#

so when to ever use enums?

#

you cant ever be 100% sure

lost matrix
#

When you know your set of values is final.
For example ordinal directions: North, East, South, West

inner mulch
#

as there could be more settings in the future

rough ibex
#

Yes, as you're also storing state

lost matrix
#

I mean you could always add more values to your enum later on

inner mulch
#

i can but that would break the open closed principle

lost matrix
#

Well, sometimes you need to break those principles. You wont always be able to fully follow SOLID for every design decision.
But yeah, preferably you wouldnt want to edit them.

quaint mantle
#

I know how but kinda confused i think im brain farted.

How would i make a check to test if player rode a minecart in last 10 seconds

rough ibex
#

SOLID is like a guide to get you to a good design spot

lost matrix
quaint mantle
#

Sorry. Stupid question. I feel dumb for asking

rare rover
#

what would be the best way to create boosters? I was thinking of adding the multiplier to the player's PersistentDataContainer

#

although feels like there's a better way

lost matrix
rare rover
lost matrix
rare rover
#

just right-clicking an item which gives you x amount of multiplier for x amount of time

#

ik how to do all of that just i'm wondering the best way to store them

quaint mantle
#

What happens if your server crashes or restarts? What you going to do when players complain about lost boosters.

If its more than 20 mins for a booster id use mongo to store it

flint coyote
#

PersistentDataContainer values ain't lost over restarts

rare rover
#

mongo is mid

quaint mantle
rare rover
#

sqlite ftw

#

that's metadata

flint coyote
rare rover
#

not persistentdata

lost matrix
rare rover
#

👍

quaint mantle
#

Not even joking, i was deadass confused ab PDC

rare rover
#

wait since we are on the PDC topic, i am accessing the PDC everytime the player breaks a block (i am making a prison server), which checks for all the enchants. Is there a better way then? Since you said its not recommended

flint coyote
#

Now you know. Whatever you store is never lost unless you specifically delete it

rare rover
#

could store in mem ig but thought that would've been a mid idea

lost matrix
rare rover
#

oh so store the whole pickaxe data inside memory?

twin venture
#

help setup 1.20.4 into maven

lost matrix
rare rover
#

thought that would've been worse but ig that works

#

well i mean i just need certain values of the pickaxe therefore i can store inside a custom class

lost matrix
#

Ideally you would apply the same principle to ItemStacks.
Adding the data directly to the PDC this way is fine

twin venture
#

hi 7smile7 , do yk how i can fix my problem?

rare rover
#

okay so my current system is okay? It is running async since i'm running it on a duplexchannel so

#

i dont see why i would need to worry too much

twin venture
#

trying to build 1.20.4 into the maven , but with no avail

quaint mantle
#

If i store data in PDC, is it for all worlds? Like lets say I travel to the nether will i have to also save data for this world in my code?

lost matrix
rare rover
#

👍 i will read that, tysm

lost matrix
lunar shuttle
#

Is there a utility to get the cooked version of a food item?

inner mulch
#

When using classes extending from a superclass instead of enums, would i pass a new instance of the subclass or, would i just make the superclass and the subclass static like enums?

ancient marsh
#

Hello i have 2 Questions.

First of all i have the: PacketPlayOutExplosion Packet.

What is the code for this: ``((CraftPlayer) target).getHandle().c.a(new PacketPlayOutExplosion(Double.MAX_VALUE, Double.MAX_VALUE
, Double.MAX_VALUE, Double.MAX_VALUE, Collections.EMPTY_LIST, new Vec3D(Double.MAX_VALUE, Double.MAX_VALUE,
Double.MAX_VALUE,
Explosion.Effect.a,
ParticleParam.a, ????
ParticleParam.a, ???
SoundEffect.a(MinecraftKey.) ????

    )));``
#

the second:

In: PacketPlayOutScoreboardScore there will have the "NumberFormat"

chrome beacon
#

unmapped 💀

ancient marsh
#

NumberFormat ->package net.minecraft.network.chat.numbers;

chrome beacon
#

Do yourself a favor and use mojang mappings

ancient marsh
chrome beacon
#

?nms

atomic niche
#

I can't believe I am asking this, but does anyone remember how the hell to launch a server and pass a command to it from the same bash?

    java -args -jar whatever.jar --nogui
    [something] stop
#

I'm trying to make it so that a server completes startup and immediately stops.

chrome beacon
#

Try expect

#

Not sure if it works for Spigot 🤷‍♂️

atomic niche
#

Trying now! (sorry, I'm a inexperienced with bash)

#

Never used expect before, but this seems to be exactly what I need

twin venture
#

how i can make this lib :

used insted of this one?

eternal night
#

mvn install it

twin venture
#

i did , but it didn't update it

#

should i restart?

#

btw its not on github anymore :/ or any other website so i want to update it for my plugin usage until i make my own

slender elbow
#

let's go

crimson scarab
#
        Bukkit.getScheduler().runTaskAsynchronously(this, task -> {

            frames.forEach(frame -> {


                frame.getBlocks().forEach(block -> {

                    int x = block.getX();
                    int y = block.getY();

                    Location newLocation = location.clone().add(new Vector(x, y, 0));


                    Bukkit.getScheduler().runTask(this, task2 -> {
                            newLocation.getBlock().setBlockData(block.getMaterial().createBlockData(), false);
                    });
                });



                Bukkit.broadcastMessage("Displaying Frame");
            });

how can i delay around after each frame

spiral kindle
remote swallow
#

?nms

atomic niche
#

This doesn't work...

    java -args -jar whatever.jar --nogui
    expect "[Server thread/INFO]: Done (*)! For help, type \"help\""
    send -- "stop"

But I'm guessing it's because I have no clue what I am doing?

spiral kindle
spiral kindle
remote swallow
#

did you run buildtools with --remapped for the version you want

atomic niche
#

that's the question though; how do you send it?
is it possible to java -args - jar whatever.jar --nogui <<< stop?

#

I guess tehre's only one way to find out.

bleak eagle
#

need some help with setting up a dev environment for craftbukkit
i've:

  • forked the repository in stash
  • cloned the fork
  • ran buildtools in another directory
  • applied patches from /buildtools/path/work/decompile-latest with shell script to the forked and cloned repo
  • opened the cloned&forked&patched craftbukkit project pom.xml in idea
    at this point idea absolutely shits itself with several pom errors including, but not limited to
    Could not resolve dependencies for project org.bukkit:craftbukkit:jar:1.20.4-R0.1-SNAPSHOT <-- like it's missing a respository definition in the pom?
    Cannot resolve symbol 'describe'
    Cannot resolve symbol 'project.build.outputTimestamp'
    Cannot resolve symbol 'shadeSourcesJar'
    Plugin 'org.apache.maven.plugins:maven-checkstyle-plugin:3.3.0' not found
    Dependency 'com.puppycrawl.tools:checkstyle:8.45.1' not found
atomic niche
#

(I could launch a screen and send it that way, but I'd prefer not to

bleak eagle
#

already tried

#

it actually builds fine over maven>spigot>lifecycle>package if i open the cloned sources from the buildtools folder

atomic niche
#

got it

#

java -args - jar whatever.jar --nogui <<< stop is perfect

spiral kindle
remote swallow
#

what version do you want it for

spiral kindle
#

1.20.2

remote swallow
#

thats good, did you change the dependency in your pom and reload?

bleak eagle
spiral kindle
remote swallow
#

what class do you want to import

spiral kindle
#

I tried to do just do net.Minecraft but what I need is tileentityhopper

remote swallow
#

thats a spigot mapping

#

the mojmap class is HopperBlockEntity

spiral kindle
#

...

remote swallow
spiral kindle
#

but even doing import net.Minecraft.*; it says Symbole not found

remote swallow
#

?paste your pom

undone axleBOT
spiral kindle
remote swallow
#

you have the wrong dependencies

#

you only need the following ```xml
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>1.20.2-R0.1-SNAPSHOT</version>
<scope>provided</scope>
<classifier>remapped-mojang</classifier> <!-- Important! -->
</dependency

#

you also dont have the special source plugin

#

?nms read this again

spiral kindle
#

I posted the wrong one -_-

#

that was a diffrent plugin sorry

remote swallow
#

remove the spigot api dependency

spiral kindle
#

still only get sugested md_5 when i do net.

eternal night
#

can you share the output of mvn dependency:tree

#

in a

#

?paste

undone axleBOT
brazen badge
eternal night
#

Welp, dependeny is there

#

have you tried to repair intellij ?

#

File > Repair IDE

tender shard
#

did you set your IDE to use java 17 or later?

#

in IJ File -> Project Structure

spiral kindle
#

It is java 17 and reparing didnt chang eanything

tender shard
#

what happens if you import some random NMS class and then compile anyway? e.g. import net.minecraft.core.BlockPos;

spiral kindle
#

oh wow it builds no problem.

#

so it is Intelj that has a problem

tender shard
#

have you already done File -> Invalidate Caches -> Invalidate and restart?

spiral kindle
#

didnt help either

#

oh wow it solved itself... I klicked on the error in IntelJ and klicked add maven dependency. and now it is there. No idea how that makes sense as the pom.xml didnt change but well.
Thank you very much for the help!

river oracle
#

does it compile?

bleak eagle
#

nope

#

maven itself errors out

river oracle
#

odd?

bleak eagle
#

the main error is cannot resolve the bukkit dep

#

the pom.xml is unmodified straight from the craftbukkit stash repo

river oracle
#

did you clone bukkit and install it?

bleak eagle
#

huhh?

river oracle
#

did you clone bukkit and install it using mvn install

bleak eagle
#

shouldn't it do that for me?

river oracle
#

no

bleak eagle
#

neat

#

where do i clone it

river oracle
#

the bukkit repo

remote swallow
#

or ur own fork

bleak eagle
#

no no i understand but where

#

in a separate folder or within the craftbukkit project

river oracle
#

separate folder

remote swallow
#

seperate folder

young knoll
#

Wait wait

bleak eagle
#

alright and then mvn install will set it up in my home ~ globally ?

young knoll
#

Do IntelliJ people need 2 windows to edit Bukkit and craftbukkit

river oracle
#

petition to make CraftBukkit a multi module project 😈

young knoll
#

Ha

tender shard
river oracle
tender shard
#

idk

#

on mac you can have more than one project in one window

bleak eagle
#

hmm okay that makes sense, i just thought the pom would do it magically for me

river oracle
young knoll
#

Meanwhile eclipse let’s me have them both in my workspace

bleak eagle
#

thanks for the help i ripped a bit of my hair out trying to solve this since cloning bukkit first isn't mentioned ANYWHERE in the dev guide

young knoll
#

I can even control click on Bukkit classes from cb to jump to them

river oracle
river oracle
#

cuz if you can do this on linux it'd open a whole new world to me

bleak eagle
#

oooh i might know why

#

i don't have maven installed at the system level

#

as in, the maven package from apt or whatever

river oracle
#

yeah that'll likely do it

tender shard
river oracle
#

wtf no love for any other system!

bleak eagle
#

why specifically mac

tender shard
#

idk

river oracle
#

probably a cash deal with Apple to keep all the important features on mac

spiral kindle
#

I want that too -_-

bleak eagle
#

oh, one more question, how do i edit wiki pages. i do not see any sort of edit/create page/whatever buttons

tender shard
remote swallow
#

@young knoll i make a janky version that works

river oracle
#

yeah but if you do it badly I hear you get destroyed by the wiki police

#

they usually come to your house with the swat team and take you to jail

bleak eagle
tender shard
#

which page?

bleak eagle
#

any page

#

i tried at least 10 of them

#

i'm logged in obviously

river oracle
#

probably not enough posts lol

tender shard
#

which page exactly?

bleak eagle
#

eerrrm one sec

river oracle
#

not being met

remote swallow
#

it is

#

its either 5 or 10

tender shard
bleak eagle
#

nope yeah

#

i have 0 posts

remote swallow
young knoll
#

Maybe?

remote swallow
bleak eagle
#

alright, third question - buildtools gui, on linux. how?

remote swallow
#

run the latest jar

bleak eagle
#

nope

#

just runs as a cli app

remote swallow
#

@river oracle wake up

bleak eagle
#

it's not that i struggle with the command line, it would just be handy having a little thinger running on my taskbar i can use whenever i want to without moving my tired fingers too much

eternal night
#

iirc it has a special check for that

#

to not open the GUI

bleak eagle
#

i'll check the source

tender shard
#

GUI only opens if ran through double click

#

if you do „java -jar …“ it will not open the GUI

hasty prawn
#

i didnt even know it had a gui

tender shard
#

It was merged in january

hasty prawn
#

oh thats why

bleak eagle
#

totally tripping this off yeah

#

i can't run thru double click because it opens it as an archive

#

i can try and add an alternative

tender shard
#

Cant you create a shortcut to java -jar … that you can open with double click

river oracle
bleak eagle
river oracle
#

you'd need to manually make a .jar launcher .desktop file or just double click in the file explorer if your distro comes with one automatically