#help-archived
1 messages ยท Page 129 of 1
@sturdy oar looking at the last picture you sent, this isn't how my multi module projects are set up, what I have is just MYPLUGIN-CORE and MYPLUGIN-SPIGOT in the root not under MYPLUGIN
I just followed someone's else project structure because it's my first time using Maven modules
he was doing the same way as I
like a pom.xml in the main directory, and various modules where each has its own pom.xml
i do the same
Yeah, that's what my structure ends up looking in git too, however in IDEA, the modules are at the root
oh i know why
do you use this?
i usually use "Project" view
so i see the main folder as well
Pretty sure I also use this, haven't ever touched it
weird, i have no idea why this is not working btw, I had correctly setup an identical project with Gradle and was working
Is the packaging in the parent pom set to "pom"?
What the fuck is retrooper on about
Probably high or smth
๐คทโโ๏ธ he always acts like a mentally damaged individual
block
anyway i appreciate your effort to help
but i realize this is an issue of mine
and i should fix it myself since it's not entirely related to spigot
No problem ๐
sk id der
...
holy shit fendi ily
what does "ily" mean
i love you
Retrooper are you okay?
what did he do now? ๐ค
Sent weird messages
seems normal for retrooper
guys
i need hewp
i have a .xml file
which doesn;t work in eclipse
so i wanted to add every jar
so i cant find alot
of those
i could add 1.8.8
idk about bungeecord api
or vaultapi
Hi i opened a new server and used eggwars new ownership plugin but idk how to create an arena
Does someone know
Retrooper are you okay?
@fossil shoal no
do /ew and test
dep ressed
dep ressed
@frigid ember talk to someone (irl obviously)
@subtle blade, man, you so missing out on this
Do you guys know a way to get png of Banner from game item?
Hi, can't I just move a whitelist from a server to another?, isn't working
Copy the whitelist.json file over
Or if you're using another whitelist plugin you'll need to copy that plugin's whitelist data over
I need some help, so I'm trying to code a custom creeper that will attack a chicken but idk the pathfinder goal to make a creeper attack, like this.goalSelector.a(4, new PathfinderGoalMeleeAttack(this, 2.0D, true)); . So how would I do that?
i cant import a xml file as maven bc idk how :{ {in eclipse}
Are non-deterministic RegEx(es) prone to the use of more computing resources?
expecially with the introduction of lookaheads
Yes
A lot of tasks don't actually require regex.
So try to use regex sparingly
And regex really doesn't have much of a performance impact on smaller text, so if you're just processing a chat message or something like that you'll be fine
i don't think regex would be the best choice in a lot of cases imo
Yeah i'm processing chat messages, so it will always be processing inputs of small size , although technically the chats packet allow for a maximum string length of 32767 characters
You don't need regex for chat filtering
Although this is not the "correct" way to measure resources usage, i've tried to print the nanoTime() at beginning and end of operation
it was basically insignificant
You don't need regex for chat filtering
@gleaming helm Well I wouldn't know how to do it properly otherwise
Looping through each character of the message doesn't seem like a simpler idea
Regex is the simplest (decent) solution
But there's a good chance the regex you're using can be easily bypassed:
FU(K
i'm aware
but trying to over engineer regexes to "stop" bypasses
it's probably not worth it in my opinion
i have simple stuff like this
cor ona
My chat filter is a little overengineered but that should work alright
Try making substitutions
of course, stuff like commas bypass sadly
There's a lot of stuff that bypasses mine
For example, fu ck will bypass it
But my strategy kinda allows for that, as my goal is not to aggressively filter everything, possibly filtering out real words, and rather just serve as a warning to players
Do you do the "fake message" thing?
no, the process where you make the user believe that they sent the message
but in reality, only they see it
Yeah that's shadow filtering
I never figured out how it's done lol
You just format the chat message, substitute in the name and message, and then send it to the player
Very simple, can be done in 2 lines
e.getPlayer().sendMessage(formattedMessage);
e.setCancelled(true);```
ye i guess you gotta hook in into stuff like Vault
or EssentialsX for the chat format
Oh lol I don't gotta hook anything
what happens if other plugins handle the formatting?
The benefits of running 40k lines of your own code
I know, in my use case, the only code that's running on the server is spigot-related code and my code
we used a chat filter on my old server for a while, and eventually just thought "eh, who really cares" and threw it out
We're targeting a younger audience so we kinda need a chat filter
aggressively filtering just takes way too much tweaking
The best strategy is not to aggressively filter
np
If you want an alternative filtering method, look into filtering based on phonetics
it can actually work better than simple word for word filtering
actually i was surprised when i read on Wiki.vg that a message can technically be 32767 chars long
like how is that even going to happen?
i don't think client even allows you to write that long
pretty sure the chat packet has a hard requirement on 255
for client -> server?
oh
Clientbound it's way longer but the max message the client can send is 256 chars
time to crash the clients with giant messages
They just disconnect
server can write so damn fast
yeah i've experienced that with particle packets flood
netty has a channel.isWritable() method
??'
that servers can use on a client
you can disconnect clients with a tiny message
just put a null component in a hover event
channel.disconnect();
I was surprised that my client was handling correctly 50'000k particle packets being sent concurrently from server
with netty
@frigid ember Or just kick them like a normal person
You can crash clients by sending incorrect packets, it is not hard, but is against the rules.
just call disconnect method on the client
the rules of what
im generalizing
Spigot
not only about mc
Retrooper what you're saying has no relevance to the conversation
ok
Retrooper what you're saying has no relevance to the conversation
@gleaming helm like always
I mean anyone that uploads malware to spigot resources is just stupid
Imagine uploading opensource malware
LOL
though obf premium plugins are basically malware
i feel like everything that is not anticheats or highly security related software should be open source
๐ค
@knotty surge How do you explain obfuscated anticheats that are obf'd for the purpose of preventing bypasses
Or
Well
security by obscurity is not security at all
I'm not saying it is
If you don't obfuscate your premium plugin it will get cracked and leaked in minutes
๐ Obfuscation ๐ does ๐ not ๐ prevent ๐ code ๐ readability ๐
choco...
intel did it from 80' with their architecture ๐
that's why you just be a good boi and already have your source code available
I think after seeing what my obfuscator does you'd disagree
and charge for support instead
I know
That's not allowed on spigot
What plugin IS that lol
wouldn't be that hard honestly
That is allowed. It's name obfuscation
Obnoxious? Yeah. Allowed though
wow this is a 1 liner lol
and you haven't seen this
Only the main package/class is needed to be non obfuscated as far as i read.
though luckily where I review plugins we don't allow obfuscation except for minecraft internals
Your decompiler might just be trash smh.
no
only using 1 decompiler
CFR?
That's good because JD-Gui isn't good anyways
let me try with a disassembler

yea JD is trash
I see, well go ahead and report it then.
JD is trash
And yeah with some renaming that would be totally readable
funkemunky and Fozzie always go strong on obfuscation
who
Some decompilers do that even without obfuscation
yeah it happened to my own opensource plugin lol
I wish more people used https://docs.gradle.org/4.9/userguide/working_with_files.html#sec:reproducible_archives so I could just review their source
Yeah lol
what's that?
it would allow you to take a hash of their uploaded file and compare it with a hash of the one you build from source
if they're the same then you can just review source
oh.. i don't do that either
nobody does
Hi guys there's a method for create client side npc
You have to send a spawn entity packet
yes
you have to use NMS ๐คทโโ๏ธ
Spawning? pretty easy
moving it around? glhf
^ lol
let me find a snippet for how i did spawn
Yes but there's a n example of npc
kotlinn
@gleaming helm, since you talked about server authoritative movement too, islandscout did a nice write up, I just passed that on to helen, she will make sure that reaches the java dev team. she also mentioned, that bedrock is moving towards such a model for movement in betas
Wait so bedrock getting authoritative server?
woah
Ok THX Is for a very big project
aw MAN I want bedrock
apparently?
That's awesome
she doesnt know for sure, she just said she know that somebody at the bedrock team is working on something that sounds similar to this
told ya they care ๐
Well I knew they cared but I didn't know they cared THAT much
That's awesome
Very excited to see if this actually ends up happening on java edition
well, stuff like this will take time
I would be surprised if that hits 1.17, since I know what else will be part of 1.17
Yeah I'd be surprised if it hits 1.17 too, but with any luck it's in at 1.19
@hoary parcel I mean I'd take promises from Mojang with a grain of salt, didn't dinnerbone talk about a modding api like many many years ago too?
misread haha sorry
this isnt more than an idea I passed on
yup, re-read it
and modding api is happening, with every release we get better apis
wait fr?
oh right didn't they say starting with 1.15 they'd publish mappings?
pog
but those have a big scary legal disclaimer
which he currently working with mojang to get rid of
or get fixed
When should I be saving config?
Every time it's changed?
When the server does /save-all?
What's the best practice?
Depends
depends
depends
preferably not
minemen (except dewgs is stupid)
Like, a save on change will be fine with smaller changes
Is the FileConfiguration returned by JavaPlugin#getConfig guaranteed to be the same instance between reloads? How about ConfigurationSection?
No
Every time JavaPlugin#reloadConfig() is called, a new FileConfiguration is created
You should not hold reference to a FileConfiguration and expect its values to update post-reload
Ty
Hey, I'm looking to recode a discontinued plugin on spigot, how would I transfer the code from github to my IntelliJ?
Fork the project so you have your own repository with an upstream and clone your fork
Once cloned, import using your IDE depending on the project build system. If it's maven, import with maven, etc.
ty
ok and lemme get this straight, in order to change the version of a plugin, you just change the pom.xml?
or is there anything else
ohh right
The version of a plugin is dictated by the plugin.yml
also remember to use semantic versioning :) big help to everyone
If the resource uses Maven and filters through the resources directory (including the plugin.yml), it's possible that the version is dictated by the pom.xml already
am I allowed to recode someones plugin without the original authors consent?
It's a free plugin
Anyone know whats going on here? I have a Villager entity that I want to be invulnerable ( cannot be damaged/killed ). I do that with this:
gateKeeperVillager.setInvulnerable(true);
Yet, the villager can still be killed.
There are no exceptions in the logs
Depends entirely on the license, Blitz
Though if it's open sourced, it's very likely they're using GPLv3 or MIT. I advise reading the LICENSE file
Usually yes
@subtle blade Sorry to single you out, you know whats going on with the above?
Any bugs you're aware of?
(not word by word, but at least know what license it is lol - GitHub tells you if it's a common one)
You're certain that line is being called?
Yes I am certain
@rapid yacht Makes it so other devs can work independently of the main branch
Lets you commit to the repository without modifying the original one
It's basically a copy
^
ok good to know
Don
Some licenses require you to document all changes
@subtle blade The following code is run together. Everything else on the entity works fine:
gateKeeperVillager = (Villager) Bukkit.getWorld(Statics.worldName).spawnEntity(location, EntityType.VILLAGER);
gateKeeperVillager.setCustomName(ChatColor.BOLD.toString() + ChatColor.DARK_AQUA.toString()
+ Utilities.capitalizeFirstLetter(capturable.getCapturableName()) + " GateKeeper");
gateKeeperVillager.setCustomNameVisible(true);
gateKeeperVillager.setInvulnerable(true);
gateKeeperVillager.setAdult();
gateKeeperVillager.setAI(false);
gateKeeperVillager.setBreed(false);
gateKeeperVillager.setCollidable(true);
gateKeeperVillager.setSilent(true);
gateKeeperVillager.setProfession(Profession.WEAPONSMITH);
gateKeeperVillager.setVillagerType(Type.PLAINS);
if (capturable.getClass() == Nation.class) {
Nation nation = (Nation) capturable;
gateKeeperVillager.setCustomName(nation.getChatColor().toString() + "GateKeeper");
return;
}
gateKeeperVillager.setCustomName("GateKeeper");```
That might be a little annoying...
Often times GitHub commit history will suffice, Fendi
hopefully he dosen't care who does what
Changes are public and explorable on demand
๐คทโโ๏ธ I don't know I've just read AGPL
It's the only license I've actually read
I think it's probably the best out there
I guess we'll just have to see
ยฏ_(ใ)_/ยฏ
choco u said clone ur fork
do I put it in a zip or what
it's giving me a bunch of options
nvm
@rapid yacht Just clone it to your local repo
Is it on GitHub ?
I wouldn't really call it "forking" if the author didn't put open source code anywhere
Maklegend I got it
I ended up with a zip file of the plugin
so far so good (I think)
Choco I fork your premium plugin and make my own version. No worries I renaming everything
If he has it public i think you would be just fine forking it?
Is there any plugin for when someone reports a play for cheating/exploits it will send to my discord Server and do it come with the bot link
Rephrase?
is there any sort of way to make a world wait a specific amount of ticks before doing something
word .wait() work and is that in seconds or ticks? i just came across it with world, meaning i have world.wait().
wait is a function defined by the Object class.
Used in concurrency
Don't touch unless you absolutely know what the fuck you're doing
(And if you're asking in game ticks, you don't)
what is it you're trying to do with making the world wait before processing anything?
That just sounds like a seriously bad idea
You can also touch .wait() if you want to see your console do some fireworks
I don't recommend it though
Is there any plugin for when someone reports a play for cheating/exploits it will send to my discord Server and do it come with the bot link
so the verdict is: i most likely worded it wrong
i basically want...
do something
wait x amount of seconds
do it again
wait x amount of seconds
etc...
probably some basic java stuff but idk, was thinking bout doing it through ticks but that was probably just a brainfart ig
thank you
For a cancellable task, https://hub.spigotmc.org/javadocs/spigot/org/bukkit/scheduler/BukkitRunnable.html
(or use one of the Consumer<BukkitTask> overloads in the scheduler)
Bukkit#getScheduler() btw
alright, thank you so much!
o/
you're quick on the jd links lol
I usually have them pre-typed into my browser's search bar so writing, for instance, "scheduler spigot" prompts me with the javadocs. Right arrow, Ctrl + A and Ctrl + C
Should event handlers always be public?
Yeah
I don't think they can be private
Honestly think they should be, but last I recall, Bukkit was not designed around the privatization of listeners for some reason
It's not like they should be called by a plugin for any reason
They can't
After reading the source code (trying to fix a bug with some events randomly not being fired when cancelled, even though ignorecancelled is false... weird.)
I can confirm that it only works with public access
@subtle blade Otherwise it would have to make a call to reflection to allow access to a private method, which imo is kinda dumb for something that, by all programming best practices, should be public anyways.
They're reflectively accessed anyways
๐
It was likely not done for the sake of performance though
There's the possibility that an event listener can be called upwards of 20 times every second so I can't imagine that's all too great setting it accessible each time
Hi, im looking into a way to make my items identificable by adding some kind of uuid, is this possible? i found this: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/inventory/meta/tags/CustomItemTagContainer.html but theres no info on how to use it
Will this work for older servers?
Deprecated and out of date. See the deprecation notice
That one was present in 1.13, was replaced in 1.14
Gotta work with NMS and NBT on your own
ok thx
Or you just become a normal person and cache your NMS methods
Or, rather, become and even MORE normal person and use the latest and greatest APIs
The persistent data api is awesome
Made use of it last night and today, had a few custom data types. Feels great being able to just say "Yeah, get my custom object from this item stack ktnx" in just 1 method call
how can i add my BungeeCord custom version to be known?
@subtle blade I built a lib for my project probably about 3-4K lines or so to manage custom items on top of the persistent data api. That thing rocks.
I am using it right now!
NamespacedKey namespacedKey = new NamespacedKey(archaeology, "Artifact");
PersistentDataContainer container = itemMeta.getPersistentDataContainer();
if (container.has(namespacedKey, PersistentDataType.DOUBLE)) {
Double aDouble = container.get(namespacedKey, PersistentDataType.DOUBLE);
}
``` Working on an archaeology plugin atm.
I'd send an ss of mine but NDAs are a thing lol
Yeah don't send it xD
Not tryna get sued lmfao
wow nda bad
Wait is the api publicly available?
Oh yeah yeah
Just
PersistentDataContainer
Check it out in the javadocs
It's awesome
Oh I thought you were talking about your library
ye u can do ItemMeta#getPersistentDataContainer()
and its on blocks
like furnace and chests
Yeah I am coding with persistent data containers right as we speak
Oh I'm still using the tile entity NMS for my custom blocks but
Ah okei
That's also because I'm doing the big fancy on custom blocks
C++ threading sucks lol
It isn't too bad tbh
GPU or bust
bust
GPU acceleration works really really well on fractals
haha
We didn't get taught it tho
yea i was working in unity for a bit
but I hate unity's structure
so i was like let me write my own engine
and then I was like fuck OpenGL
hehe
How far did you get into writing your own engine?
Once you render a triangle though you can do anything
Honestly if you don't like unity try unreal or godot.
I mean unity is fine it just forces you into a certain workflow
My favorite free time project is working on an active-controlled TVC model rocket
and it just wasn't optimal
That shit is cool
WAIT HAHA
And also ITAR
whats the best way to get someones distance from a player? (which wont go above 3 unless you know)
If you're trying to make a reach check
Well Unity is trying for a more data driven design approach. The Entity Component System is becoming very powerful.
Don't think that location.distance is going to work
I did a research paper on it.
so like i can get up to 5
yea i need to look into the new ecs
writing your own ecs is kind of annoying
what
ok then teach me math
Uhhh well
Unity's ECS has a large overhead which is annoying. Also the rendering hasn't really been optimized. "Apparently" it will get updated in the 2020 version
The client does a raytrace from the head position to the edge of the hitbox where you're looking
And will only attack if that distance is less than 3
raycast?
Yeah whatever you wanna call it
๐
I mean you gotta adjust for tps as well
Not TPS, but you have to adjust for latency
^^
yea lol
what uwanna know then?
just more on how to get the distance the best...
If you want the distance between the center of the hitbox of entity a and the center of the hitbox of entity b (or any corresponding point), then the only math to do it is the math performed by location.distance
There's only one distance.
Pick 2 points, then pythagorean theorem
but that would give a higher result then 3
Unity's ECS has a large overhead which is annoying. Also the rendering hasn't really been optimized. "Apparently" it will get updated in the 2020 version
@velvet halo Oh yeah, Unity is only good for certain types of games Imo
@frigid ember Are you trying to make a reach check for an anticheat?
You could never make Minecraft in Unity for example
Yeah I wouldn't recommend.
yea lol i have made a couple which will false because i cant just get the right distance.
Yeah you can't do it like that
I have been working on a RTS in Unity and it is a pain in the ass.
I'm not going to tell you how to do it accurately but
There are some tricks you need
Don't start with a super high accuracy 3.1 reach check
My 3.1 reach check is 300 lines of code (not including the libs it shares from other checks)
๐ I swear to fucking god if one more person says "ML model"
tested noting really bypasses
:^)))))))
I bet I can bypass
oh boy
nah because you'll just patch it lmfao
no lol, because you wouldnt be able to
i have tested it with most clients, and noting tends to bypass
Which clients
mostly all the paid ones
Hi I have been asking for help with this for sometime now, but to no avail, anyway so I'm trying to make a custom creeper mob that blows up chickens (lol) but idk the pathfinder goal to make creepers attack something I tried melee attack but that didn't work so idk (if it even is a pathfinder goal)
For some reason, I can't get data from my HashMap (line 25) after adding it to the HashMap. It just returns null. I've already confirmed that the HashMap put (on line 141) is working, but during the unload method, I'm unable to get the data from the HashMap without it returning null (lines 151-154).
Code: https://hastebin.com/hojalikoqa.java
PlayerData class: https://hastebin.com/ayequsavut.java
Just to confirm here
Are you getting a NPE on line 151?
Also, your get for the all case always returns airMask
well... no it doesnt
Is it possible to track when individual food items are crafted, harvested, caught or cooked? I'm thinking of making a plugin that makes food go bad.
If you're getting an NPE on 151, it's because the entry is no longer in the map
Make sure you're not creating a second data manager object or something like that
I did that with chunks for the concept of claimed chunks by factions. Is that bad to do? :P make a wrapper class for minecraft objects?
It is possible. What I would consider doing is putting an NBT tag on the food items when they're first created to set the expiry time
What's an NBT tag?
An NBT tag is how you would store custom data inside of itemstacks
It's the base unit of persistent storage across the entire minecraft game
Interesting
If your plugin is only targeting 1.15 (and maybe 1.14, not sure) you can use PersistentDataContainer
Otherwise you'll need to use NMS
Looks like that was it! I was doing DataHandler data = new DataHandler(); and that was the problem
Thanks for the help!
np
This isn't Spigot- but best place I can think to ask
I'm trying to do this in Java
curl -H "Content-Type: text/html; charset=UTF-8" -X POST --data "Some test data" https://api.cl1p.net/uqzskrriefufr
My code is
private void webPOST(String address, String body) throws IOException {
String encodedData = URLEncoder.encode( body, "UTF-8" );
URL u = new URL(address);
HttpURLConnection conn = (HttpURLConnection) u.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty( "Content-Type", "text/html; charset=UTF-8" );
conn.setRequestProperty( "Content-Length", String.valueOf(encodedData.length()));
OutputStream os = conn.getOutputStream();
os.write(encodedData.getBytes());
}```
No exceptions are thrown but the upload fails
I.e. I go to the page to view the note at https://cl1p.net/uqzskrriefufr but there's no text
Yeah but there's no text there ;-;
They have an API to upload text: https://cl1p.net/sys/api.jsp
The string I pass is definitely not ""
Print your HTTP request. Does the curl command work?
Yeah
Print out the request youโre making and make sure it matches what you see with curlโs -v flag
Also.... close your goddamn connections, youโre going to leak like mad
Also... look at their api spec.
All posted cl1ps are destroyed as soon as they are viewed. Either via api, or the webapp
If a cl1p is already in use it can't be written to.
Specifically that last part
Yeah I did
With the curl I can view it once after
So unless Spigot visits the URL before me I don't think that's the issue :p
And are you generating a new random sequence of characters for each request?
Also use hastebin, itโs probably better for what youโre trying to do
Has a much better designed API that generates the ID for you
would also probably help in these scenarios if you used some additional network tools to catch more info
specifically so you can see what exactly is being sent and received like headers and content. Might not be what you are expecting it to be.
Well thatโs not always possible. Itโs intentionally impossible to mitm my test network for example.
But thatโs what I meant when I said to print out the request
Ah, I haven't done much raw network stuff with Java so I've never used any tools or anything
Letโs be clear here this really isnโt โraw network stuffโ
But I see what you mean
Thereโs a ton thatโs abstracted away here
Agreed
Definitely not in java
Agreed
Iโll take my low level in C please
Haha
(I do software development for a semiconductor company, so you can probably imagine I do a fair bit of C)
JS is NOT nice lol
Oh sweet
I just graduated and starting a grad scheme in like 2 months
m8 js is lovely
In Java you have to use libraries to print objects
or like, implement toString on everything
True
I remember when I first started JS I hated it
And it made me rage
but now that I'm familiar with it, incl. some of the spec it's nice
Js makes no fucking sense
Makes perfect sense if you understand it
And all the attempts to add strict typing on top of it are laughable at best
the only thing in your code that posted that I could see probably screwing it up, is the encoding part at the start. Otherwise if you still can't get it to work I would recommend what Kevin said and use hastebin. Best part with hastebin is you can also self host a personal hastebin as well.
but the trade-off is understandable
Ty will look at it
Also, the -v flag doesn't print the post body?
> Host: api.cl1p.net
> User-Agent: curl/7.58.0
> Accept: */*
> Content-Type: text/html; charset=UTF-8
> Content-Length: 14
>
* upload completely sent off: 14 out of 14 bytes
< HTTP/1.1 201
< Content-Type: text
< Date: Tue, 16 Jun 2020 04:21:44 GMT
< Server: Apache/2.4.43 (Amazon) OpenSSL/1.0.2k-fips
< Content-Length: 0
< Connection: keep-alive
That's the response I think
Oh oh youโre right lol
I need to be faster it seems. Kevin is quick on this tonight ๐
well it says it created it
Yeah so after that Iโd expect to see a double new line followed by 14 bytes of data
since it is replying with 201
Which is what happens seeing as the creation works, and presumably the paste has 14 bytes in it
Hm with https://httpbin.org/ the body is the raw text
I'll try without any encoding lol
Can you just print out the request headers and body?
Also you call os.write but that does not necessarily guarantee that the stream is flushed.
Oh wait
Wait a minute
Oh I added .flush and .end after
You never actually send the fucking request
wot wot
LOL
Jesus how is this on SO still?!?!
Lol can't believe I missed that
LOL
also the other thing I was going to point out, that site uses an outdated version of openssl XD
Thanks :)
Thatโs the dumbest thing Iโve probably seen all day
And itโs not your fault letโs be clear
This happens daily for me
Also @zenith palm I just got a warning for typing omg twice, can you please remove the warning?
Oh yeah Ik, everyone gets stuff like this
Also it's 5:39 AM and I didn't sleep
so I'm surprised at how good the rest of my code is
I always hate it when its the very slightest simple thing
that throws everything off
lol
Iโve been pushing hard to get an initial release out for like a week now
Hopefully like 3 weeks maybe if Iโm lucky? F in chat
Nice what you working on?
I'm making an adventure map server. Just made a whole interpreted scripting language for Bukkit
A fully custom 1.15 server
Up to 40k lines now
Language?
Well, unfortunately. When it comes to needing performance etc, have to go with custom
For a few friends of mine, itโs a skyblock type of gamemode, with some very large differences
On the order of hypixel skyblock
Ah
I mean, unless you have some Hypixel sized server performance isn't that important Imo
Thanks for the help guys!
Np
Actually the system is designed to scale to 2000 players without code changes
Havenโt load tested to that amount but should work fine
โShouldโ
Ah very nice
And if youโre wondering how, the answer is magic
I wonder how much stuff people make that goes unreleased
I've made several things for sure
Trying to make stuff that I can release atm so even if I don't use it someone else might
Yeah same
Out of motivation?
Yeah partially that and partially other people involved
Good thing about this project is Iโm a solo dev so I pretty much only have to rely on 1. Myself, and 2. The speed at which docs get written for features
Lmk if you want to work on something with someone
For me at least it helps with motivation
I see some errors when looking into the code of an old 1.7 plugin, I see getName() but it shows an error (I'm updating to 1.12.2) Is there something I shoudl rename it?
lol
He is trying to use the Vault API
If itโs a plugin, use getDescription().getName()
looks like it depends on vault
here
Ok yโall overrule me I know nothing about vault
one sec
Just do "Hooked into vault"...
Just look at the updated vault api stuff
Nnnnope no idea, sorry
I don't see why you would need a getter
Kevin is actually correct
like I said I'm redoing it
Oh shit I was right?
not that I said anything otherwise
Haha Iโm a fucking genius
the Author
Milk bowl is the author of vault
weird name
I guess I can't be talking though
If itโs a plugin, use getDescription().getName()
Do you guys pour milk first or the cereal?
the github page I linked also states how to set up Vault too
and basically says the same thing lol
Oh hereโs the issue
You donโt have vault set up as a dependency
If youโre using maven, paste the dependency from vaultโs github
If youโre using gradle do the same
If youโre not using either then I have no idea how to do it, but either way, add the jar to your build path just as you added the bukkit api to your build path
where do I check for mavin
usually theres a little box on my right when I use maven but I don't see it
if the project has a pom.xml it is using maven
and that file is where you add the dependencies
it's Houses.xml
What.
If I were you I would just convert it to either a maven or gradle project
not that difficult to do
oh
Oh no no thatโs iml
Yeah Iโd convert the project to maven
Keep in mind this was made in 1.7
Maven existed a decade before 1.7 but ok
seriously?
doesn't matter when it was made, going to take some work regardless. But has no bearing on whether it can be a maven or not
Eh idk the exact date but it definitely existed
alright
and yes Kevin again is correct on that.
how do I convert?
Minecraft just increased its popularity though I would have to say XD
I canโt share my pom.xml because I have an NDA, but there are plenty of examples Iโll try to find one
where it brought it out to be more mainstream
Just create a maven project, toss the source code and anything else into their relevant directories
kevin
Wait you donโt have a build config @velvet halo
what do I do with what u just pasted
nope
Make a maven project
???
And paste that in to the pom.xml file
don't need the build tags if you don't need to modify anything
Project sorry phone and fat fingers
That would be your best option tbh
then what
Well the least annoying
Yes, make a new maven project in your IDE, and just copy and paste all of the code files over
by far the easiest way since the IDE generally sets up the structure and files for you. But you can do it manually too
Iโd not recommend a beginner to do it manually
I agree
Also you should probably use the other pom.xml file that was posted
It already has vault as a dependency all set up
Can just copy and paste the file structure of the src folder
No you just need the repositories and the dependencies from the pom.xml Kevin sent
or can I change it to like me.remence.houses or something
ohhh
so I'm copying stuff from the new project
to this one?
ok
No
Youโre copying stuff from the OLD one to the new one
Copy the contents of the src folder of the old one, to the src/main folder of the new one
ok
and u want me to copy paste the pom.xml correct
then paste it into the milkbowl plugin
?
What?
Ok weโre going to try another solution
Remember how you set up your project and you added the bukkit jar to your build path?
Do the exact same thing with the vault api jar.
Iโm not sure, if you go to the vault github you may be able to get some info on where the jar is
I do believe you can also just use the vault plugin jar itself but you should really avoid doing this if at all possible
Go to the releases section
I think the jar is probably there
rip it's not
I'll download it from the maven repository real quick for you
oh ty โค๏ธ
tysm
np
yep
nice
You don't need to specify sources for it though
There we go!
now the milkbowl issue is fixed
but we still have https://gyazo.com/93bc0a1d571e3f9e948e3289cc281c89
ty for that help tho
Your right
The problem was, we didn't have the dependency set right, so IntelliJ (correctly) was unable to find the getName method
Makes sense
In the future though, just use maven.
that actually fixed a lot of errors
Makes it soooo much easier to manage your dependencies
Yeah that's why I kinda aborted on the maven idea
I just imported straight into intellij
1 more thing tho
why's it red?
oh, and this
then, it's all clean
The block data stuff has changed since 1.7
And the .iml file, you can ignore that, it's not an error
It's likely to do with revision control or something
hi blitz nice pfp
ty retrooper
lol
yes
looks clean
anyone looking for a job? i want to hire an assistant
I am a Chinese user. . . I can't open spigotmc
Use VPN
I can open spigotmc without VPN, but spigotmc cannot be opened in these two days
My machine (VPS) on my service provider can open spigotmc but it cannot be opened on my local computer
That sounds like a problem you're having with your government, not spigot's problem
that sucks
Is there any way to assign a permission to the default group so that players will be able to use commands from my plugin without assigning permissions necessarily? Or is that bad practice?
Hello
Does bungeecord have an inbuilt method that finds offline players by their uuid
even if they never joined the server?
@gleaming helm do you know?
Hello?
Does bungee have a method to find offline players, even if they never joined the server by their uuid
;/
alright ima just do a http request to mojang api
@frigid ember request API if there is none and cache them in a file
i meant get player uuid by username
but if they offline,they can change username i cant cache it and it would not work
If you want to guarantee the correct username then you'll just have to request API each time
yea
But like, usually it's enough to just cache username -> uuid
Rare case ยฏ_(ใ)_/ยฏ
No clue
https://cdn.discordapp.com/attachments/483698357488058398/722350778655703100/unknown.png
I made a scripting language and these are methods that are called from within scripts
?
I'm not sure how to store the event handlers though
idk how we can helpif its your language
hm
in java what we usually do its use reflection
im sure bukkit does this
Nono that's the Java side
No has nothing to do with reflection
My screenshot is Java
That's not what I mean lol
what then lmao