#help-development
1 messages ¡ Page 457 of 1
so i should delete it?
no
just dont care about the icons, as long as the file structure is good
It has its uses
alr
Difficult
but if IJ starts crashing often remove it
to do things you do once a month
Not even started yet
Can someone explain to me the hate around the mc dev plugin?
It's written in Kotlin
and it likes to take all your ram
there is hate
on IJ ultimate, it's the reason for 100% of my IDE crashes
and it doesnt really do anything
at least for spigot
might be useful for fabric etc, idk
It helps a lot when modding
maven creates my proejcts for me
all plugins on ij ultimate seem to crash for me lol
that's the default way of creating a new project
same with that discord plugin
The discord plugin hasn't worked for me in ages
it works for me
what discor dplugin?
It's been broken for over a year now
it kept crashing when i f.e. let my pc sleep
shows intellij as rpc
what does that mean
there are like 100 issues on their github page for the same thing
look at my profile
it shows spotify
its like that
but intellij
Discord rich presence
But you need to broadcast that ur a mega nerd
so it just shows that you run IJ in discord? that's so useless lol
Yeah
code more
im beating you
dunno why i have been using it, probably to flex đ
Time != code written
literally code more
per day?
per week
weak
Meanwhile he wrote 20 lines in that time
:p
That's weird. I have it installed, but my IDE has not ever crashed because of it.
Also I don't see any unnecessary ram usage out of it either.
It doesnt happen often, maybe once in two weeks. But when it happens theres always mcdec in the stacktrace
only plugins 
It happens randomly
If you see your ram usage spiking you know it's mcdev
So you're saying it could be absolutely anything, not just the mcdev plugin.
About ram, no clue, i set ram to 32gb for IJ so it doesnt cry when decompiling material class
It never happens without it
Yeah i got a profile in settings.xml for that but sometimes it reopens material after invalidating and then it decompiles it nonetheless
Guys
Nice
Ooo, what are they replacing it with?
hehe invalidating caches
Guys I coded this
Or is it just namespaces?
uh oh
Can someone please give me a feedback?
sure
Do u guys still remember my plugin?
yes
It must send an alert to admins when a person breaks something
So this is the code
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.UUID;
public class BlockAlertPlugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
// Register the listener
getServer().getPluginManager().registerEvents(this, this);
}
@Override
public void onDisable() {
// Plugin shutdown logic
}
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
Player player = event.getPlayer();
UUID playerUUID = player.getUniqueId();
// Get the block owner's UUID
UUID ownerUUID = event.getBlock().getMetadata("owner").get(0).asUUID();
if (!playerUUID.equals(ownerUUID)) {
// Player is not the owner of the block
Bukkit.getOnlinePlayers().stream()
.filter(p -> p.hasPermission("blockalert.notify"))
.forEach(p -> p.sendMessage(player.getName() + " broke a block that isn't theirs!"));
// Log the event
getLogger().info(player.getName() + " broke a block that isn't theirs!");
}
}
}
we remember
you made chat gpt write that didnt you
That is not persistent across restarts
Uhm yes?
so you didnt code it
đ¤Śââď¸
Bruh can u check if itâs good?
its fine ig
That's your job isn't it?
it wont work across restarts
just run it broski
blocks owner lol
Ty for this
you put it in a spigot project
shove it in the plugin folder
I got eclipse
restart your server
preferably with maven
Build it?
enter /installplugin
You think I'm Bob the builder or something?
Yes
ItemStack#copyWithCount() đť
Nice QOL that I hope will come to spigot.
Downloads:
Buildtools: https://hub.spigotmc.org/jenkins/job/BuildTools/
Eclipse IDE: https://www.eclipse.org/downloads/
Java Run time Environment (JRE): https://www.mediafire.com/file/9vdm7pncibertov/jre-8u221-windows-x64.exe/file
Make sure to subscribe and like
Thank you for watching
Join the Discord
https://discord.gg/dnfyFjN
11 minutes is too long
Remember 30 seconds or less
its fucked with eclipse
ohyeah
ALL THE OTHER KIDS WITH THE PUMPED UP KICKS BETTER RUN BETTER RUN OUT RUN MY GUN
Have you seen the new bob the builder
Some kind of fucking sleep paralysis demon
the fuck
Actual nightmare fuel
How
I did not need to see that
You're welcome
/restart
sleep well
But how do I do with the main thing with the plugin.yml and the .jar file?
How do I do this whole stuff
Oh my. Does this mean that we are getting classes for every single material?
Probably not
Click build grab the .jar file and put it in the plugin folder for your server
then restart the server
hello. sorry for my bad english, where can i find plugin in which i can give a custom badges next to nickname of player ( like in discord, nitro badge for example) to some players in TAB menu (player list) ? please
We're probably getting
I donât get it, so I have to put it in a .txt file and save it as .jar?
no
đ
what
And what
if you cant build a plugin you are going to get the exact same response as earlier
go watch this https://www.youtube.com/watch?v=kIcwXBaJV30
Downloads:
Buildtools: https://hub.spigotmc.org/jenkins/job/BuildTools/
Eclipse IDE: https://www.eclipse.org/downloads/
Java Run time Environment (JRE): https://www.mediafire.com/file/9vdm7pncibertov/jre-8u221-windows-x64.exe/file
Make sure to subscribe and like
Thank you for watching
Join the Discord
https://discord.gg/dnfyFjN
Isnât this a help channel?
Is that in the stash?
go watch the video
Yes it's a help channel not do everything for you channel
Episode 1 đđđđ
Don't think I ever set that up.
its 1 episode
project menu -> build
you dont need to watch the rest
How many episodes are there
1 to learn for you to build
Lemme see this video
this looks confusing now
Welcome to modules.
and that only because someone rejected my project cuz the main class was not in the right module
cmon bruh
resubmitting will probably take another week
ah yes now this is fucked up
shoudlnt that be in the resources folder?
yeah src/test/resources
that a thing
is it hard to make a customspigot ?
a what
No
?contribute
You can find information about contributing to Spigot at the following links:
https://www.spigotmc.org/wiki/cla/
https://www.spigotmc.org/wiki/guide-contributing-to-spigot/
https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/browse/README.md
https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/browse/CONTRIBUTING.md
It returns the root of wherever java is running
any help?
PluginManager#registerEvent
But why dont you just create a listener class
bruh maybe if i not put resources under java
what do i pass in as the Listener?
easier to do in my case
Can be anything that is a listener
You could just do new Listener() {}
But that seems weird, just use a proper listener lol
why do those work, but when i remove the stuff before tests.txt it doesnt :/
java magic ig
why do both Paths.get and Path.of exist tho, as the one calls the other
Ask the one who made them
how do i modify an item base attribute value, like attack damage?
Google your question before asking it:
https://www.google.com/
i googled it '-.-
Google it again
Use attribute modifiers
declaration: package: org.bukkit.inventory.meta, interface: ItemMeta
First thing on google
i tried, but it seems not changing the base value, it just erase them and substitute, it's like that color (green = base, blue = modifier, i want the base)
Correct
i better hope the win fs class normalisizes my path
You need to manually deal with the base values if you want to change them
Base is hardcoded in to the client
hm you sure?
I mean
hmmmmm
The method is there
Yeah that's just the default values
mhm
No but you can apply them
Which changes the color, no?
Ah you mean the green color
They want to keep the base damage color
Yes that is hardcoded on the client as far as I know
ok, but when i set the modifiers, it will keep that "blue" color, meaning it was changed, i want the default green color
Yeah you could use lore
Yeah you can hide the real attributes and clone them in lore
hide the attributes and use lore
If you're on Paper use translatable components with the Adventure API
hmmm so there is no way to do that at the real modifiers, huh? ok, thank you guys
if you're on Spigot either just use strings or use NMS for component lore
Waiting on Chocos PR intensifies :p
What's the PR đ
Just component support or smth prolly
ah makes sense
Love it when my holograms don't update to the right format
Only the player interface?
is the metadata packet supposed to be sent when to the player? Due to it bugging for no reason. Other holograms work fine
It covers sendTitle, kickPlayer, player list header and footer, item display name, item lore
It's unfortunate it all has to be in a .Spigot() class
Why is CraftBukkit still maintained as a separate project
Most stuff goes into CB these days
I'm not sure why MD doesn't want to merge the handfull of spigot stuff into CB and Bukkit, you'd have to ask him that
fun
@sullen marlin there u go
Should github commit message be based on file changes OR actual changes?
For example if I delete a method named getHistory - should the commit be Removed Class#getHistory because ... or Removed viewing history because...?
I just do âRemoved xâ or âDid stuffâ lelelel
I want my commits to be as descriptive as possible - to stay professional
In general, you probably want to put the actual changes.
The files are already kept track of in the commit
Itâs a good question. The commit message should be based on the actual changes you made to the code. In your example, it would be better to write Removed Class#getHistory because ... since thatâs what you actually did. This helps other developers understand what changes were made and why they were made. However, if youâre making a change that doesnât involve code (like updating documentation), then itâs better to write a commit message that describes the change itself. Does that help?
Right, but in the future it may be more helpful to search an exact change based on the method you remember you modified
this is why I have a debate inside myself
Sure, if you think it'll help, then include it.
It's not a bad thing to have descriptive messages.
This used to be my initial approach, and I would also use the description if the commit message was too long. But recently I noticed that people don't go that way but simply write 1-3 words that briefly describe what changed
I've given up on my commit messages
I think thatâs because people want to keep their commit messages short and sweet. A good commit message should be concise and to the point. If you can describe your changes in just a few words, thatâs great! But if you need more space to explain what you did and why you did it, then itâs okay to write a longer commit message. The most important thing is that your message is clear and easy to understand. Does that help?
so I'm not entirely sure, I now think that sometimes it's best to say what changed and sometimes it's best to say the technical method change
Are you seriously using ChatGPT?
my commit messages are pretty shitty
git commit -m stuff and things
This is exactly what I'm trying to avoid xd
Nop
example:
Yes, thatâs correct. It really depends on what youâre changing and why youâre changing it. If youâre making a change thatâs purely technical (like renaming a variable), then itâs okay to write a commit message that describes the technical change. But if youâre making a change that has more impact (like deleting a feature), then itâs better to write a commit message that describes the change itself. The most important thing is that your message is clear and easy to understand. Does that help?
i usually commit 30 files at once
Yes. Itâs good practice
đĽ˛
laser-y
oh god
yeah exactly lol
Still
if people don't do PRs they are not entitled to see proper commit messages by me
Not committing 30 files per commit did save me even when I was the only dev
Doing the opposite saved my ass when I made like 5 commits and then regretted the changes in the last 2
if I had done a big huge commit, it would be a pain in the ass to copy-paste everything that changed into txt files and then go back
If i mess it up
same
Itâs time for a rewrite anyway
Reminds me between going back and forth between maven and Gradle for little reason
Well the reason is me being to stupid for either only to realize that I have gotten better so that I could do things I previously could
same shit, I made a huge commit to a huge project, regretted it, laid the project off for 2 months and am now rewriting it
work hard, not smart
That sentence makes no sense
but I guess you want to shoot a slimeball instead of a snowball
declaration: package: org.bukkit.entity, interface: ThrowableProjectile
Can someone help me?
Im trying to do a plugin with MySql integration
this is my code
But in the console i never get anyone of the 2 messages
Don't compare strings with ==
Why do you not listen to the highlight on "=="?
^^
god dammit
How do i disable logging from mongodb?
It compares by reference
there are no references on primitives
I just intern every string
UnderscoreEnchants
amazing question
imma make a language where strings can be compared using ==
Make the comparable with ===
we are not going the js way are we
Just overload ==
========= Checks for electrons
imma check for solar waves
Look up why i and j are commonly used in loops
index
j stands for joe
Joe mama
J stands for i++
still waiting
i just downloaded J/connector
consider downgrading server
Particles are not actual objects that get tracked.
They dont even exist on the server. Its just a one-off information
that gets sent to the client.
You can give some a direction
You can also use the redstone particle
it goes away quite fast
Just spawn many of them
worship the fallen
or WATER_DROP
^^
When ur making a server do you use plugin developement like people use skript so it only works on you server with only specific items or do you make a whole plugin that can be used on every server with setup commands or do you make a skript addon and use that to pake skripts for your server
No one here really uses skript
skript is awful and shouldnt really be used
Okok
colorable
colourable
Or that ^
So yall use plugins like awful people use skript
ew
congrats
I run a 1.18 spigot Minecraft server It used to have NPC's through the citizens plugin but it won't work anymore. It says an internal error occurred. could someone send me a working spigot citizens plugin version?
should be a npc under text
said it could not load it
in startup it said that
i googled it. It says it needs vault I have that but can they both be the latest version?
Here is the plugin version
i dont use mysql
Man waited 6 minutes in #help-server and then came here
I would suggest doing this for DBs. No setup hustle.
just shipping a database file đ
i just used db4free.net to test my mysql
"docker"?
Is that a app?
if the user decides to delete it, their problem đ
well, its a app...
You have a fuckin server
Ur bad
i do
ez
Just use docker then. Nothing to set up.
docker run --name mysql -p 13306:13306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
And boom: You got a mysql DB
Docker doesn't work on my pc đ˘
When do we get OurSQL
why not
Docker Desktop just crashes
lol
got wsl?
Cant remember if you can give redstone a direction. But i would try.
No
idk why but i got docker with postgres running on my pc
you cant have docker desktop without wsl
idk i believe it needs it
Well, you cant exactly run docker without wsl2
it uses wsl as backend
for the paths
can you help me? i got a strange error in a code..
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL clien
consider upgrading mysql client
i cant upgrade it anymore
Update your connector version (in your pom)
It didn't tell me that :c
You might be shading something really old
It installed just fine
I just installed the Docker Desktop app
I have a laptop with docker working so it's fine
I do wish they would at least add a warning message or smth is wsl is missing
Instead of it crashing
apperently looks like hyper-v can also serve as backend, but havent tried it, with wsl works just fine
Yeah I have hyper-v
i only remember docker breaking my other stuff
I remember it telling me to enable that
i forgot what stuff
vmware probably
why is it in gray heh
is that some reserved name or smth?
why don't you just save an sql file that setups the DB for you....
i mean setup a mysql server
i can write the sql fine
just cannot be bothered to make a server to store or test stuff with
there isn't really all that much to setup
install, set a user, maybe tailor a couple settings and voila
lmao
db4free was easier
wheres this
declaration: package: org.bukkit.block.data.type, interface: Fire
the site i use to make gradients and tab animations has so many more features now
damn
So who wants to see me scan 900 regions for items in 2 minutes? (1 month of work and its all come together babbyyyyy) xD
md_5's mixtipe is fire
- md_5
uhh question, if i have multiple modules, where should i define the main manifest attrib? (maven project)
dont even know what module its trying to run from
It'll probably break if we watch it
this
1 month of work usually breaks at the last moment
wtf md_5 speak germen?
only one way to find out :L
exactly what i said when i failed my exam
Oh shit wow never mind this server doesnt allow streams rip
đ
*each number is a region completed, look at the current run time lel
even a gui
in the dist module
ah
nearly done
Any ideas :-:?
but i have a module that is supposed to be run from there
special module with main class to run it from console đ
give it some more threads
You preloading the chunk before logging in or something I dunno sounds wacky. Protocol lib usually is with stuff like that
Pffft it already has 8 xD
double it and give it to the next person
lmaooo
But yeah this sucker is scanning shulkers in furnaces fgs and still detecting em and teh gold
i have 16
cores or threads?
4 core 4 thread đ
cores
But etiher way can we all appreciate me and my partner in crime have made an app thats scanning 900 regions in 1:30 and able to detect items hidden within shulkers within fuckin furnaces?
congrats
Anti-Duping app go brt
lol
@tender shard dist gone lmao
is that from what i showed u?
run
how'd i cause pain?
why?
Because you have helped us discover something awful
did you corrupt your world?
Nope
i told you back em up
other way around
then you never committed it
we've accidentaly discovered unbeatable xray
the world corrupted you?
huh
huh how?
im confused where it went then
it never was on your github repo
Now we know how to manipulate the chunk's raw data we can write something that could calculate the perfect 3x3 tunnel to hit the most of any ore you tell it to
in less than 10 lines
lmfao
We have actually debated making the repo public as the working with the raw chunk data is a pain in the fucking ass to figure out (hardly any good documentation on it) but once figured out
deletes the fork of the nbt manipulator from my github
it's actually pretty easy
Working with the binary is not fuckin easy fuck you
xD
nbt explorer
why didnt ij say to commit it lol
lmao
But can it beat antixray?
mhm
Not to mention you could just reverse the world seed and then generate the entire map in 1 step and voila you've done 10x better than calculating on the fly
uhh hows that mainClass supposed to work
it actually isnt that hard to understand
I mean ngl how was i supposed to know ur the mr miagi of fuckin mojangs funky ass binary data storage and pallete system
but REALLY hard to figure out
i had to figure it out in order to modify chunk packets
a shit tonne.
Like why the fuck are we not using this system to store data?
Skip the .java and use . instead of /
also skip src/main... etc
I loaded 900 region files in 1 minute
you know how many blocks that is?
Imagine instead of blocks it was like, actions for a command recording plugin
command recording is text
im confused cuz ij sees files that i dont see
still use sql
but have the actions linked to ids
and store the ids in a pallete
and boom use a binary long
I did napkin math on it and ur looking at millions of actions for like less than mb
*than 1 mb
what are actions?
shit like block break, block place etc
but the trick
is to just assign em numbers
like normal sql
if you're doing simple stuff like that bytes instead
You say "yeah duh" as CP's dev who hangs in here a lot says, the Core protect files go up into the gigabytes before they even hit 100k actions
wait CP stores actions as text?
Eh sorta
They store it as ints
which yeah is great
but store it as a fucking binary long instead?
could be some potential there
leme guess thats not it: ```Caused by: java.lang.ClassNotFoundException:cli.me.fourteendoggo.mathexpressionparser.Main
Why does your package start with cli.
sql is not like a chunk tho where updates are made in memory and saved from time to time
đł
for every change you'll have to append to the binary long
not me.fourteendoggo.mathexpressionparser.cli.Main either
Store it in cache and every restart save to the long
where des it even start from
or every X mins
your main class is called me.fourteendoggo.mathexpressionparser.Main
spawning armorstand / rotate will that do it?
without any CLI
LOL honestly, idk how i didn't just think of that đ
i have multiple Main classes
Look dude doing anything with that library can do dumb shit
i feel pretty stupid rn honestly
but that's the one from your cli module
uhh
I think the main drawback to NBT storage over say, json or yaml is that there is no library for it included with spigot
Thanks for answering but i want to know how i can fix it
If you do make your work public, shoot me a dm so i can have a look a what you made
well im in the dist modules pom.xml đ¤
That honestly is legit ong why I think so many plugins dont get made.
It took 2200 years for the archemides screw to be upgraded (turns out if you dont spin the screw and spin the cylinder instead, it prduces less friction and dust....)
2000 years and noone thought of that..
and it should start the CLI main class?
Id try replicating it down to a science so you know exactly whats causing the problem
It doesn't mattern which module you're in. The path is the package name + class name just like the main class in the plugin.yml would be
in your dist module's pom, set the main class to "me.fourteendoggo.mathexpressionparser.Main"
hmm
@livid dove ^^
Dude im tempted to add u to the damn repo anyway lol
Uve honestly been a big part of it
it was for an entirely different plugin
*app
Tbf I've just shown you what's possible
but we ended up running with it when we realised the potential
how does it work now, it still the same from the beginning đ¤
Ypu did everything
Wanna call?
this is my new general chat
Can't rn
people in general are sending way too big spiders
@remote swallow fgs
In a few hrs sure
general
real
whats up with the spam
Well PDC is just an NBT wrapper
when it doesnt want you to exit
i can store a yaml config in pdc
But it can't be used to save and load files
Technically you can store it as a byte[]
and where nbt stored again đ¤
because you have to type exit()
In minecraft files
Not your own arbitrary files
i thought i was gonna be funny
Also can i get folks thoughts on something? SQL is rather new to me but i have a structure that I believe works 10x better than how most land plugins do their checks in terms of the data structure:
Have I mised anything here?
Step A: Checking the world after a block break (if the world isnt in the table, why carry on with the check?)
Step B: Checking the Regions (if the region location (as found via the block location of the block broke) isnt in the region table, why bother with the rest of the check?
Step C: Using both the newly found region ID and chunk location, find if the chunk is in the table and has a land.
[31m[â] sign working very good on console sighs
now figure out where my lost module went
You can not live check SQL during events, it's WAY too slow
yes i am aware, but the idea is the structure outside of the database (so within the cache).
The check still needs to be done yknow?
Even in cache, why check every single chunk if you can just go world->region->chunk instead?
9/10 it'll be a quicker check no?
quicker than?
Just checking the chunks in cache verbatim no?
every land claim I've seen already works like that
Oh my brother in christ you need to go gander at the Lands Plugin xD
checks for world first, then region
no need
elgarl has towny
I've not looked at lands, but Towny, residences and GriefPrevention
ah yes
didnt you dev towny though
yes
Yeah lemme send u their documentation (get ready to cry)
goddamn netbeans
Their api's documentation https://github.com/Angeschossen/LandsAPI/wiki
No thanks. I completely re did all my land claim
oh dont worry, it wont take u long
xD
*just look trust lmao
I don;t see anythign obviously bad there. But the source is closed so no way of telling what it's doing behind the scenes
@tender shard dist stands for distribution?
No the point is there is no api documentation
thats it
sorry for the stupid question but im thinking of renaming it to smth more useful
yes
gimme some better name
hear me out.
distribution...
looks like all my gitignore files exclude it because of netbeans
mavenisbadsoweneedanothermodulefordistribution
yeah documentation looks a little lacking
shrugs
lemme guess ill call it distibution
They number all their enables in the config too xD
enable_17
enable_11
xD
bruh cmon
Oh cool
also dont know what happened here
You made a program to do it
looks like me breaking stuff
Lol rem when you wanted to scan chunks on load
Went beyond that so quick the moment we realised the speed
This gonna be a pretty sweet anti cheat tool
Still don't understand how xd
Finding duped stashes of shit in shulkers within furnaces hidden below the ocean n shit
xD
You say ig but it goes back to the ol' "People dont make this shit because noone ever thinks about it"
Do you look for chunks with alot of the same item or something?
hes xraying for diamonds
Or it's "People dont make this shit because there isn't a market for it"
Oh no minion, thats the beauty, the filter just filters what to print,.
Its found every fucking item in 1 minute 30
Ye ik, i scanned my entire world in a second, i know it can find every item
How do you know what's duped and what's not?
Its for the more obvious shit like.
X player has duped a crap tonne of elytras and it hasnt been caught for a few months.
Noone wants to sift through the great web of core protect trades
searches for elytras and finds all the stashes
Wouldn't people just get smart and start storing items more spread out? Or perhaps in tile entities like minecarts?
Can u do that?
Searches them too
Tbf how would they know?
and offline inventories
Yeah, but they can spread them out
Its more for unique items like say custom items with custom nbts too
the moment you push your code to gh and realize you forgot to change one line
Next commit be like "oops forgot to register listener"
Dude i could remove protection 4 from every single item in the game if i wanted when this is fully done
Idk seems like a lot of work for a simple chest open -> quick check
this commit is called "Fix dist module somehow being in gitignore"
Ah okay
next commit is gonna be called "remove comment"
It was fun to write and really tested my chops so i cant complain
this better be good now https://github.com/FourteenBrush/MathExpressionParser
Ye learning experience. Practical applications could be more based on visualization
Figuring stuff out is always fun
Ah youve found my trump card
that was the next phase
xD
Gluck with your project
cheers lad
Heading out for now đ
Nw â¤ď¸
It's actually a HUGE coincidence that you messaged here the moment i decided to open thos
Haven't been very active lately
was glad to see u buddy
The formating is shite rn as , yknow, mvp
but â¤ď¸
which ide?
new project from version control
Is it a maven or gradle project
This should work
Or you can clone it and then just import that, either works
I saw you typing coll and wanted to beat u lmao
repository url
and get the url from the github page
?: = elvis operator in kotlin :p
Hello guys, I'm a newbie using java to write plugins. All of my plugins untill now were build using the "Minecraft Development Spigot" template from IntelliJ. The template is awesome and makes my job easier
however
I'm trying to create a plugin from an empty project
since this way I can make plugins for versions before version 1.12
and you cant figure out what files to put where?
I have never used that extension so idk what it does xD
I think this is all right. I can figure It out later
yeah, but I think It will be nice If I can do without the template, so I can see how everything works and all
but thanks, thats a good idea
well
however, I'm very new to java development in general, so I'm thinking
how can I download the spigot library
you'd just be creating a pom.xml or a build.gradle file and creating a java class
no big deal
so I can use the classes from my project?
nice
depends on the gradle project
seems like you're probably using paperweight
either that or your cpu is absolute garbage
gradle be caching half the universe
still single core
Oh, ok, guys so
How can I install de Spigot Library into my project on IntelliJ?
Up untill now It was doing It automatically with the template
oh, I'm not using Maven, but I can
I was trying to follow this guide:
Doesn't seem like the person is using maven or gradle, afaik
yeah!
exactly
it adds the jar
It tells me to go to File -> Project Structure -> Module -> dependencies
and add the jar
you should use maven or gradle instead 100%
I don't know what maven or gradle is, but I'm assuming It's a way to automate this process?
hmmm, I see, what are the differences from just adding the jar, tho?
oh
like
hmmm
so I don't need to add the jar manually? I just put the dependency name on the maven file and It downloads for me?
sorry If this is a newbie question. This is all very new to me
yeah, maven will auto pull from the spigot repository and download the dependency automatically
That makes sense
and if you need anymore, you can add more dependencies
I see
Bootstrap Jar
The main spigot-1.18.jar is now a bootstrap jar which contains all libraries. You cannot directly depend on this jar. You should depend on Spigot/Spigot-API/target/spigot-api-1.18-R0.1-SNAPSHOT-shaded.jar, or the entire contents of the bundler directory from your server, or use a dependency manager such as Maven or Gradle to handle this automatically.
Please read the release notes for further information: https://www.spigotmc.org/threads/9-years-of-spigotmc-spigot-bungeecord-1-18-1-18-1-release.534760/#post-4305163
To be honest, I feel like I'm learning a lot of concepts I didn't know existed. I think I still have to learn fundamental java projects concepts
but If I understood correctly, you use maven/gradle to import libraries that are not in default java
How can I power a trapped chest for 1 second?
(Like opening the trapped chest)
Like, there is a lot I can import in a normal java project, just using the import keyword
I'm assuming spigot ones are external libraries, and I need to use a system to handle the dependencies
Hey, I think I'm beginning to understand these concepts. I just created a new maven project, using java 8
IntelliJ created a simple file structure for my project
including a folder name src and a pom.xml file
So If I want to include the spigot library I have to change the pom.xml to make It add the library?
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
that makes sense
So Spigot is the main library for developing new plugins for minecraft
What is the lowest version of minecraft I can make a plugin using spigot?
Just curious
Some beta or alpha version if you count bukkit
that's awesome
my ultimate goal for now is to create a beta 1.7.3 plugin
a very simple one
if its spigot from the maven repo its only GA 1.8 isnt it
like, just a simple plugin that prints something to the player
I believe spigot goes back to 1.4
release 1.4?
spigot itself might but if u use the repo i dont think it goes back too far
unless it had a different name/package
?hub
Anything before 1.8 is gone
?stash
Becuz DMCA
Would be possible. I believe there's an updated fork of bukkit for that version
Yeah, craftBukkit 1060 if I'm not wrong
but I can handle that later, for now I'm just gonna focus on making a simple plugin for newer versions
without using the minecraft development template on IntelliJ
just a simple maven project
Aren't older versions taken down by dmca?
I'm already looking at the page to figure things out
Yeah don't expect support for ancient versions
aw :/
How are people modding stuff for beta 1.7.3, then?
I know there is not a lot of people doing this
but I saw a couple mods for these ancient versions
and was wondering
The jars still exist, but not officially
I think people have also backported fabric to every goddamn version
is there a way to use **NBT API ** to add tags to player ?
thats cool. Also, thank you a lot for the help, guys
I will continue my journey and will ask for help when I need
theres PDCs if ur using 1.14 or newer
thank you :)
?pdc
Probably 1.8 user

is better than NBT API or what ?
I would like to add the feature to my ChestShop plugin that when a player buys/sells something, the trapped chest get short powered up. Can somebody help me about it?
i dont know, i havent used either
Yes
if ur on 1.14 or higher u should probably just use PDCs, if ur lower, u dont have PDCs.
or 1.13 idk
Is there anything new that is worth upgrading to 1.19 from 1.17?
Yeah being on a supported version is always a good idea
can i use it to add tags to player ?
Yes
I like having performance in my server and not having million height limit
Due to asking the api upgrade if I should
I mean
You can view the changelog
View the Bukkit, CraftBukkit and Spigot changelog.
Hi, I'm modifying the xml file on my maven project to add spigot. I just added the new repository:
<repositories>
<!-- This adds the Spigot Maven repository to the build -->
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
as the tutorial told me to
however, when adding the dependency
Oh bell api I must upgrade now
<dependencies>
<!--This adds the Spigot API artifact to the build -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.19.4-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
reload maven
It gives me an error on the version segment
Why is the player not in the list?
Pdc api is the spigot nbt api
wrong reply?
Oops
It worked!
Now I can import the libraries using the keyword "import" and just start building my plugin?
You forgot to register the player manager listener
Sorry got it
most ide's should import it on tab completeion
Are PDCs available in the spigot api?
yeah
Yes
pdc is in spigot api
No that isnt the problem i forgott to set the instance
They are the official spigot way to interact with nbt
If you want to store your own nbt use Namespaced key with your plugin
If you want to modify Minecraft nbt use persistentdatacontainter.Minecraft
Or whatever itâs Called
PDC won't let you modify vanilla nbt as far as I'm aware
^
If I want to change my plugin to 1.18 do I just need to change the dependency in pom.xml to the respective version?
thank you i do it (:
There are API methods for that
Yes
makes sense!
all right
I think I just have to create the correct file structure now
is there any guide on how to structure the files?
the guides I followed just show It using the minecraft template on IntelliJ
oh
now that I think about It
I can just look at It
I mean
That's just the standard maven project layout
look at the template and recreate It on my folders
oh
that makes things easier
oh, well, I don't seem to be able to post images here
so I can't send my file structures
?img
Not verified? Upload screenshots here: https://prnt.sc/
but If you say Its the standart
If you dont own your own domain you can user
Me.myname/ign.projectname
oh, ok!
