#help-development
1 messages ยท Page 373 of 1
Only if you use mongodb
You need a running redis server
yo I heard you liked tasks
let's make them go 15 layers deep
this sure is a lot of work for a feature people will complain about
Eh nvm dont use it. Its quite outdated. CF is a better approach
Just run a redis docker
oj
ah yes this is great code, where you can both win and lose at the same time
Noice
winning and losing are just two sides of the same coin
is that going to be like mobarena?
I don't know what mobarena is but I assume from the name that yes it will
probably a bit more elaborate but w/ever
its a minigame which players choose kit and go on to the arena to fight the mobs
oh no he's hacking into the mainframe
mobs will be spawned randomly
this creates an instanced arena with a boss that has custom scripts for powers and you use your own gear to earn the right to enchant your gear, and your gear is on the line
Thats cool
there's a default pool of 10 different arenas but the bosses are fixed inside of those arenas
and you can just make more
Anyone know how to improve the rayTraceEntities consistency
raytrace is accurate
If you are using the Player#getLocation() getDirection() you are tracing the direction the body is facing not the head.
use getEyeLocation() if you want it to rayTrace the direction you are looking
public static HashMap<Player, Double> map = new HashMap<>(); How do I save and load the hashmap from a file
You can just save the map
And the key should be UUID
No, they use โplayerโ as key. One should never do that
Ah trur
The player object is not consistent across restarts
Erm
Rejoins*
the playerโs UUID should be used instead
alright
BlackCloverUHC.api.getPotionEffectProvider().applyPotionEffect(player,new KTBSEffect(PotionEffectType.INCREASE_DAMAGE,0,60));
the getPotionEffectProvider is not true can you help me ?
player.getEyeLocation().getDirection()
Ah thanks
It wouldnt matter if .getPotionEffectProvider() returns true or false. Both cases would make no sense.
Where is "BlackCloverUHC" even from?
BlackCloverUHC from the class
Is this your class? Is it an external api you are trying to use?
yes

If someone asks you "x or y" then you answer either "x" or "y" but not "yes"...
yes i use a api extern
Send it, then we might be able to help
Anyone knows why the entity player is not showing up
MinecraftServer server = ...;
WorldServer world = ...;
character = new EntityPlayer(
server,
world,
new GameProfile(id, name),
new PlayerInteractManager(world)
);
character.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
PlayerConnection connection = new PlayerConnection(server, new NetworkManager(EnumProtocolDirection.SERVERBOUND), character);
character.playerConnection = connection;
if(world.getEntity(id) == null) {
world.addEntity(character);
world.getChunkAt(loc.getBlockX(), loc.getBlockZ()).addEntities();
}
i'm sending a second nms packet but it sometimes duplicated for some reason
"not showing up"?
wdym?
when i log in to server, there isn't any npcs in the location
Why do you send nms packets when actually trying to spawn a physical player?
you have to send the "yo, there's a new entity" packet to every player
I currently do not recall the actual name
yeah im doing it but it duplicates when i left & rejoin the server
sending an addplayer packet to user when joined
whut? at first, you said there's no entity at all. now you claim it gets duplicated
If i send it it duplicates if i dont send any nothing shows up
Again: You dont need to send any packets yourself when you actually spawn an entity in the world
ok i got it but where's the entity?
You either have virtual or a physical entity. Not both.
i'll try again
What version are you on and are you trying to spawn an actual player (which will get attacked by mobs and draws actual server resources)
or do you just want a fake player to spawn?
using 1.16.5. I needed to make a right click to an npc handler and it was a bit hard than i tought cuz right_click_air is not emitting when user is not holding anything. so i made it an real npc
I've now disabled ADD_PLAYER, PacketPlayOutNamedEntitySpawn and REMOVE_PLAYER packets which i send a user when they log in.
here's the result https://media.discordapp.net/attachments/1072278481850867802/1077206890842443877/image.png?width=742&height=621
additionally: i tried to disconnect & join 3 times. nothing happens
The client sends interaction packets when right clicking a fake entity. You just wont see the event being fired but the packet
will be received
should i use protocol lib etc for it, as built in spigot thing is not working?
Yes if you want to check for interactions with fake entities then you need a packet listener because the server
itself is unaware that those entities exist and just throws away the packets without firing any events.
it'd be better i guess this thing is hiding from me
i cant place blocks to its location, so it exists but i cant see for some reason
Getting an actual player with a live connection to spawn is pretty hard. Way harder than just spawning a fake player
and listening for some packets.
Keep in mind that you need to keep track of your entity ids somehow (Map<Integer, YourFakeEntityHandler>) so that
you can check which of your entities got interacted with
Hey, what is the best skyblock plugin full customizable ?
@tender shard do you still have the code for evaluating the chunks around a center chunk?
very crappy solution here
if you scroll down a bit it should increase in quality @hybrid spoke
?paste
This is probably not the right place to ask this, but I'm not sure where else to ask:
I'm using MongoDB in my plugin (with username+password auth). When first starting my plugin it will auto generate a password.
The logs show a successful connection as far as I can tell (https://paste.md-5.net/ovajalavob.md), however this combination of username and password shouldn't work.
When trying the same combination in MongoDB Compass I get an error "Authentication failed".
This is my Database class https://paste.md-5.net/kehekizeve.java
?paste
@twilit summit i dont answer dms, ask it here
use some location.add().getBlock() stuff
what is minestom
me struggling with terrain generation
so these chunks get generated whenever the client joins
pizza box chunk
what's the problem tho
uh just creating a reasonable landscape
why are your blocks separated then
whole terrain looks like this
but i have no idea what im doing lol, just copied the perlin noise tutorial
^
^
i gotta add so many code just to implement events that arent doing anything rn lol
light engine kinda fucks up tho
question
isnt minecraft lighting super simple
like
if light source each adjacent transparent block one less
idk
๐คทโโ๏ธ
i havent looked into the code
and i have no clue how it works or how to implement it
i dont envy the guy who declared hes writing minecraft server software in rust
bruh chrome crashed and my pc had a stroke
oh, sorry for dming, actually don't have any idea to do it, sorry, never worked with vectors :/
just ask here
Goodmorning I'm looking for 1.8.9 plugin that will allow me to summon NPCs which when I hit particles generate
Some way to get block 2 blocks far ways of the left side of player?
Hola is there any custom model data that's built into spigot, more specifically if the old parrying models still exist?
are you talking about ItemMeta#setCustomModelData?
Yep
Hello, is there any way to archieve that when ItemStack is given to player then he can't place that block or craft with it?
me doing weird stuff lol
With placing a block, u can create BlockPlaceEvents, and check if the block, which is placed hasItemMeta that your item, then cancell event
just to modify stuff on runtime i shouldnt be modifying lol
ohh thank you
fucks a static block
Does anyone have example code of creatingSection in custom config file? I am trying to log BlockPlacement into my config, but i get some errors, and I probably do it wrong, so any links or examples ?
You need to be able to identify your special item in place and crafting events, so it would be probably best to make use of the persistent data container and add a boolean flag with a unique and known key, like "interaction_forbidden". Then, check for that flag in events and cancel them, if applicable.
hello
i need some help about an error i've got in my plugin. I can't use the setCustomModelData(int data) method and i don't know why. Does anyone have a clue ? https://helpch.at/docs/1.19/org/bukkit/inventory/meta/ItemMeta.html#setCustomModelData(java.lang.Integer)
also, i don't know why but i can't send my code with the ```
?notworking
"Does not working" is a useless statement. Please describe what exactly is not working, what you expect it to do, and what actually happens. If you get any console errors, also ?paste the entire stacktrace.
?paste
thank you for idea, I'll try
!verify
Usage: !verify <forums username>
Description Resource Path Location Type
The method setCustomModelData(int) is undefined for the type ItemMeta CraftsCustoms.java /BC9_Plugin/src/main/java/me/jesuismister/crafts line 44 Java Problem
what version of Spigot?
1.19.3
probably
...
yes i forgot i had to change for 1.19.2 in order to have optifine 3D model
but still, why can't i use only this method ?
i'm quite a newbie so where should i run the command ?
fuck
Which IDE do you use?
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27)
Artifact of the reload?
best IDE ๐
i don't like where this is coming
this is my new favorite image
i probably shouldnt be mutating final double fields on runtime
justy openign Eclipse so I can tell you precisely ๐
unsafe is crying at me
i'm force to use it at school sorry lol
web storm the goat
vscodeeeee
Select project, Project menu -> clean
oh wait I forgot I'm the only insane man here
ok, i figure it was that, so i already did it but nothing change
I'm glad my professors never force me to use their IDE, since they IDE of choice is usually the worst option. NetBeans for Java? Notepad++ for JS/WebGL anyone?
then use right click -> Maven -> update project
Netbeans is awesome
hello , iam trying to remove all enchantments from itemstack
cool!
use item meta
nothing change either
did you tick to force update SNAPSHOTS?
ok
then theres no reason you are getting that error.
maybe recompile server?
Try removing the itemStack.setItemMeta(itemMeta). Pretty sure you're removing the enchantments directly from the ItemStack, but then you're not changing the ItemMeta so they're still on that, and then you're re-applying them.
The error show up in eclipse at first, so i don't think it's from the server
may be due to my pom.xml, but i've already have verify on the Bukkit server
have you run buildtools?
yes
looks fine then
for the 1.19.3 version
for 1.19.3?
java -jar BuildTools.jar --rev 1.19.3
i know my server is in 1.19.2 but no reason to get the error in eclipse ?
your stacktrace says the error is on 1.19.2 your pom is saying 1.19.3
they are devving against .3 for a .2 server
i can pass my server in 1.19.3 if you want
change to 1.19.2 in your pom
uhh is there any chance that access violations in the jvm corrupt it?
its still working so ig not
so i need to use : java -jar BuildTools.jar --rev 1.19.2 ?
yes as you have no repositories in your pom
ok
else
else put the spigot repo and spigot-api dependency is where he was going i think
<repositories>
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>```
i dont see any reason why this would cause a access violation?
its either unsafe or reflections and idk if reflections can easily modify final fields
also depend on spigot-api not spigot
earlier, i was told to pass to spigot (on bukkit ds server)
but i can rewrite spigot-api if you want
Hey guys, when i spawn an EntityItem using packets, the item drops on the floor, i wanna to leave it fixed on the location, how i can do that?
if i do that, the packages :
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
are not resolved
are you using those for skins?
yes
i was doing this in my old 1.17 plugin so i thought i could still do this in 1.19
Spigot now has a profile API
ok
can i still create head by using the head value ?
https://minecraft-heads.com/custom-heads/alphabet/60386-smooth-sandstone-d
with this new method
Is there a way I can change the way Spigot runs from a plugin or replace components of the API with my own implementation?
ofc all the stuff im looking at is native
Make your own fork
Not an option
lol
Then no..
Sample code https://paste.md-5.net/jebijosiwa.java
Alright
you can't be using 1.18.2+
but you said it was the new method for 1.19 ?
yes it exists in all versions above 1.18.2
and i'm in 1.19.2 or 1.19.3
I have this exact code in a tst plugin using 1.19.2
Maven, gradle or none?
maven
can I somehow calculate/get the system resources, spigot uses when loading/generating world?
So I can see eg.
world - 10% CPU 15% RAM
world_nether - 15% CPU 8% RAM
i've copy paste your example and i've got the same problem
?paste yoru current pom
now show me a pic of yoru project structure
in a per-world manner, no. Not possible without stupendius amounts of hackery
oh aight
gradle AND maven?
๐ That's a first
yeah, no IDE is going to be ok with that
Only maven is being used though, the grade nature does not seem to be present
no problem since then ๐ญ
Actually I would need to double-check there
Send the projects .classpath file @drowsy elm
I'm guessing it's the issue as your maven setup is all correct now for spigot 1.19.2
Can you expand your Maven Dependencies and give us a screenshot
maybe some lost file lol
maybe i've tried this afternoon
i did a lot of manipulation
I have a method and I want to call it and attach any another method to it.
So I can eg. generate new world and after thats done, print something to player. Without having to have additional argument in my methods
How shall I do it?
I guess you should try excluding bukkit from vault
Can someone help me with my ram i launch my server and after a few hours of running it i come back and if it was on 6GB of RAM when i come back it would be like 8
ok
they are added in order
can i delete bukkit 1.13 ?
Shouldn't make a difference
If you added it manually anywhere yeah otherwise no
THAT'S IT !!
it affects the order dependencies are searched
Yes but spigot doesn't provide bukkit these days
it still has the api
ah that you mean.
so whatever comes first gets to provide the api, in this case vaul was offering up 1.13 by th elooks
I'll keep that in mind for my maven resolver.
this better works lol
and sorry for the bother ๐
Can someone help me with my ram i launch my server and after a few hours of running it i come back and if it was on 6GB of RAM when i come back it would be like 8
can someone pls help me with that
why do i receive this error?
java.sql.SQLException: invalid database address: jdbc:mysql://localhost:3306/tickets```
everything was working fine before i restart the server
bruh if only the dude from that library took the time to write a toString
lemme just write a proxy for it lol
bruh ofc he also made his class final
pfff
nvm just needed to add Class.forName("com.mysql.jdbc.Driver");
wait if i have an array that i obtain from Field#get, does changing it also reflect to the original array?
i might drop my varhandle then
Custom Advancements
I want to change the message if a banned player joins (picture). So I tried it using:
BanEvent.java https://paste.md-5.net/iwovavejem.java
Main.java https://paste.md-5.net/dotetidegu.java
Why is it not working?
PlayerLoginEvent?
Did you tried PlayerKickEvent too?
eh
then nvm
i think that even tho PlayerLoginEvent would be working well they cannot change the kick message since PlayerLoginEvent is no really based on banned players right so i guess PlayerKickEvent should work fine
for some reason it sais ALLOWED
man I would kill to have a 24/7 gym
this is seriously messing with me
I keep having to go to the gym pretty early during my workday and then I'm just too tired to work efficiently
Thank you. That's working:
package com.koner.the5utils.punishments;
import org.bukkit.ChatColor;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerLoginEvent;
public class BanEvent implements Listener {
@EventHandler
public void onBannedPlayerJoin(PlayerLoginEvent event) {
String reason = "Hacking";
String player = "CONSOLE";
event.setKickMessage(ChatColor.RED + "Du wurdest gebannt!\n\n" + ChatColor.RESET +
ChatColor.BOLD + "Grund: " + ChatColor.RESET + reason + "\n" +
ChatColor.BOLD + "Autor: " + ChatColor.RESET + player + "\n"
);
}
}
eh
cool
is there anything wrong with jdbc:mysql://localhost:3306/tickets as jdbc url? server can't stop throwing weird errors for no reason
Like this: ```java
package com.koner.the5utils.punishments;
import org.bukkit.ChatColor;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerLoginEvent;
public class BanEvent implements Listener {
@EventHandler
public void onBannedPlayerJoin(PlayerLoginEvent event) {
String reason = "Hacking";
String player = "CONSOLE";
if (event.getResult() == PlayerLoginEvent.Result.KICK_BANNED) {
event.setKickMessage(ChatColor.RED + "Du wurdest gebannt!\n\n" + ChatColor.RESET +
ChatColor.BOLD + "Grund: " + ChatColor.RESET + reason + "\n" +
ChatColor.BOLD + "Autor: " + ChatColor.RESET + player + "\n"
);
}
}
}
it does actually
con = DriverManager.getConnection(url, user, password);
the url is this and the user is root i guess
lemme check
oh
i think i found the problem
the mysql has no password but i've given that a password
Can I append multiple values onto CompletableFuture?
Im returning it with <Component>
And I would like to return multiple Components via same call
thanks for detailing the password and user
Im quite new to plugin development, and i've been wondering for a while now; Why are methods like getDisplayName() and setDisplayName() deprecated? Sorry if its a dumb question.
oh dayum
tysm even tho ๐
they are not deprecated in Spigot
Makes sense, thank you! I wasn't aware that it was paper deprecating them.
minestom also uses components ๐ฅบ
wth is going on with my internet connection today
I can't reach authentication servers, I can't reach nordvpn, half the time I refresh a page it fails
are auth servers down for anyone else?
also I can't join discord vc
routing issues or you are getting ddos
I'll eat my own shoe if someone is ddosing me, I am almost always behind a vpn these days
man playing around with directory cloning is, uh, fun, and very consistent too
turns out File.copy with replace_existing will create a directory when what you are moving is inside a directory, but not when it isn't?
what a bizarre issue
but hey I got it to stop crashing
yikes
@EventHandler
public void onCraft(final PrepareItemCraftEvent event) {
if (event.getInventory().getMatrix()[3].hasItemMeta()) {
event.getInventory().setResult(null);
}
if (event.getInventory().getMatrix()[0].hasItemMeta()) {
event.getInventory().setResult(null);
}
}
Why it's work only for the first matrix and don't for second?
Is there a way to set it as any or every?
any or every what
like if item has meta and will be put in any of the 9 matrix(crafting table windows) then set result
how do I save information per player, for example: skills, stats and more?
loop over all the slots
i kinda like the syntax
an keep a boolean value to decide if you need to reset the result
only ArgumentType.String ๐ค
?
no
yeah saving it into the player's pdc would also work
okay well then I would look at that first
?pdc
or read this
tried it but same result only for slot 0 work
If I use Bukkit.getBanList().getBanEntry(event.getPlayer().getName()).getReason() it sais I need either Type.IP or Type.NAME, but how can I have both?
@EventHandler
public void onCraft(final PrepareItemCraftEvent event) {
for (int i = 0; i < 9; i++) {
if (event.getInventory().getMatrix()[i].hasItemMeta()) {
event.getInventory().setResult(null);
}
}
}
wdym both
I want to get the ban entries of IP Bans and Name Bans
just call it again
wait can a player be name banned and ip banned at the same time?
oh
but which ban reason is then showed?
wdym what call again, loop?
should you even use /ip-ban?
ahh okay np
sure!
@EventHandler
public void onCraft(final PrepareItemCraftEvent event) {
for (int i = 0; i < 9; i++) {
if (event.getInventory().getMatrix()[i].hasItemMeta()) {
event.getInventory().setResult(null);
}
}
}
oh your right my bad
ERROR Could not pass event PrepareItemCraftEvent to CITPicker v1.0-1.19
20.02 18:04:17 [Server] INFO java.lang.NullPointerException: Cannot invoke "org.bukkit.inventory.ItemStack.hasItemMeta()" because "org.bukkit.inventory.CraftingInventory.getMatrix()[i]" is null
see thats another issue xD
ok then I'll add it to my commands.yml xD
command-block-overrides: []
ignore-vanilla-permissions: false
aliases:
icanhasbukkit:
- []
tell:
- []
w:
- []
statisticshare:
- []
statshare:
- []
statsshare:
- []
unban:
- minecraft:pardon $$1
pardon:
- []
ban-ip:
- []
pardon-ip:
- []
yes because empty slots will return null
which is the reason why if there is nothing in the first slot, it fails since then it throws the error
Thank you! is working, appreciate โค๏ธ
yes continue { not return;
soo that's right?
@EventHandler
public void onCraft(final PrepareItemCraftEvent event) {
for (int i = 0; i < 9; i++) {
if (event.getInventory().getMatrix()[i] != null) {
if (event.getInventory().getMatrix()[i].hasItemMeta()) {
event.getInventory().setResult(null);
}
}
}
}
@EventHandler
public void onCraft(final PrepareItemCraftEvent event) {
for (int i = 0; i < 9; i++) {
if (event.getInventory().getMatrix()[i] != null) continue;
if (event.getInventory().getMatrix()[i].hasItemMeta()) {
event.getInventory().setResult(null);
}
}
}
}
I do like this and it's stop working
ahh let me try like you
this one with double continue not work but that work perfect:
@EventHandler
public void onCraft(final PrepareItemCraftEvent event) {
for (int i = 0; i < 9; i++) {
if (event.getInventory().getMatrix()[i] == null) continue;
if (event.getInventory().getMatrix()[i].hasItemMeta()) {
event.getInventory().setResult(null);
}
}
}
thank you very much again, I learned a new thing today and really appreciate it
yeah it's really lovely that so many of the people here are using their time to help other people
Anyone know if itโs possible just spawn a firework explosion without needing to spawn and detonate a firework?
Hello everyone.
So, Configuration config value still null even if loaded, can you help me please?
ConfigHandler class:
https://paste.md-5.net/cibudelezo.java
onEnable:
@Override
public void onEnable() {
instance = this;
new ConfigHandler().loadConfig();
initDbHandler();
registerListeners();
getLogger().info("Persistify has been enabled!");
}```
StackTrace:
```cmd
19:30:36 [WARNING] Exception encountered when loading plugin: Persistify
java.lang.NullPointerException: Cannot invoke "net.md_5.bungee.config.Configuration.getString(String)" because "config" is null
at it.mikeslab.persistify.Persistify.initDbHandler(Persistify.java:41)
at it.mikeslab.persistify.Persistify.onEnable(Persistify.java:22)
at net.md_5.bungee.api.plugin.PluginManager.enablePlugins(PluginManager.java:265)
at net.md_5.bungee.BungeeCord.start(BungeeCord.java:295)
at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:67)
at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15)
Why not just spawn an exploded firework?
call saveDefaultCOnfig()
i believe calling JavaPlugin#getCOnfig loads it if first time
I'm using BungeeCord
There's no method like that
Because then you have the sound of the firework launching and the launch particles and you can briefly see a firework
I used ArrayList for block place event and it's cancel placing but only when there is one item in hand, when more then one in stack then it's just not cancel placing
Instead of just having the explosion
And itโs sound
Are you sure? Let me try that...
@EventHandler
public void onBlockWithMetaPlace(final BlockPlaceEvent event) {
Player player = event.getPlayer();
ItemStack heldID = player.getInventory().getItemInMainHand();
if (citPickerList.contains(heldID)) {
event.setCancelled(true);
}
}
private final List<ItemStack> citPickerList = new ArrayList<ItemStack>();
Or are you meaning that there is a FireworkExplosion entity?
If that's still about the items you want to block, I just want to tell you ahead of time that an ArrayList is only in main memory and will be lost after a reload or restart. Don't think that's intended. But sure, play around like this first, before thinking about the persistent data container.
yeah ik with persistent data but wants just for now to test it etc.
Send initDbHandler, as that's what's causing your stacktrace.
did you know maybe what causing the problem that when more items then one in stack then it not block the placement?
private void initDbHandler() {
Configuration config = ConfigHandler.getConfig();
String connectionString = config.getString("connection-string");
String database = config.getString("database");
String collection = config.getString("collection");
dbHandler = new MongoDBHandler(connectionString, database, collection);
}
or do I need to add Persitent data for that to read integer when more then 0 then do the cancel?
ConfigHandler.getConfig, what's that? You only sent class Config, but I'm still missing the ConfigHandler
Hard to explain, as you're quite new, but the contains checks on memory location equality. If you stack two items, it's not guaranteed that the item is at the same location in memory. I guess they take either A or B, increment by the other's amount and use that onwards, but I'm not sure. It's best to have a "scalar" value like int, string, etc, which you can pick out of that item-stack in question to then compare. That's what the data container would be for, so you can attach that value to the item.
okay thank you I will do it like you said then to just make sure
Your boolean logic on makeConfig seems off, but I don't really have the capacity to investigate that deeply rn, I'm sorry. Just remove the if statement in loadConfig, call makeConfig beforehand, and always call loadConfig
For starters, you could just give the item a unique name and check for that. But I don't think that it's always applicable to use the name as a unique identifier.
@EventHandler
public void onSneak(PlayerToggleSneakEvent event) {
if (event.isSneaking()) {
return;
}
Location playerLoc = event.getPlayer().getEyeLocation();
Location fireworkLoc = playerLoc.add(playerLoc.getDirection().multiply(8));
World world = event.getPlayer().getWorld();
world.spawn(fireworkLoc, Firework.class, firework -> {
FireworkMeta meta = firework.getFireworkMeta();
FireworkEffect effect = FireworkEffect.builder()
.flicker(true)
.trail(true)
.withColor(Color.RED)
.with(FireworkEffect.Type.BALL)
.build();
meta.addEffect(effect);
firework.setFireworkMeta(meta);
firework.detonate();
});
}
Detonates the firework before it is being spawned. No launch sound and no firework rocket visible.
My bad, that Boolean logic messed up the whole logic
Schneebombe? Sounds like fun! :)
20:00:05 [WARNING] Error dispatching event ServerConnectedEvent(player=Jaamin, server=net.md_5.bungee.ServerConnection@96bf875) to listener it.mikeslab.persistify.listener.UserConnectedEvent@51684e4a
java.lang.NullPointerException: Cannot invoke "net.md_5.bungee.api.connection.Server.getInfo()" because the return value of "net.md_5.bungee.api.connection.ProxiedPlayer.getServer()" is null
Help?
I'm doing this:
public static User reduce(ProxiedPlayer subject) {
return new User(subject.getServer().getInfo().getName(), subject.getName(), subject.getUniqueId(), 0);
}
Sure. You need to create a custom font in your resourcepack and replace a character with an image.
Afterwards you simply rename the inventory with just your one character.
hey why when i try to send something in help server it automaticly send with folder
Got repaired it with:
if (citPickerList.contains(heldID) || player.getInventory().containsAtLeast(heldID, 1)) {
interesting, this is what I was doing and it was causing the visible firework with the noise etc:
final Firework firework = arrow.getWorld().spawn(arrow.getLocation(), Firework.class);
final FireworkMeta fireworkMeta = firework.getFireworkMeta();
fireworkMeta.addEffects(PersistentDataAPI.get(arrow, Keys.fireworkData, DataType.FIREWORK_EFFECT_ARRAY, new FireworkEffect[0]));
firework.setFireworkMeta(fireworkMeta);
firework.detonate();
I'll try switching it to work like that
I think this event is fired pre connection. Get the server from the ServerConnectedEvent and not the ProxiedPlayer
@EventHandler
public void onUserConnected(ServerConnectedEvent event) {
ProxiedPlayer subject = event.getPlayer();
User user = User.reduce(subject);
dbHandler.addPlayerData(user);
}
Get the server from the ServerConnectedEvent and not the ProxiedPlayer
You can also use the javadocs to see all the events and when they are triggered
I think they are really useful for this things... i always use them but some time they are not pretty descriptive
https://www.youtube.com/watch?v=kGXlJ2KHueU
This one explains it quite nicely
Are discord images ssytem bug?
Because a friend sent me 2 images, and discord is displaying them as the same image
Nothing that a 1.5x can fix or 2x
made the changes from this to act like yours does and just remembered I can't actually test them atm because server went down xd
If you dont to your message get lost, please open a thread on the channel. Its better than just replying to your message or reposting it every x time
Oh my bad
Wrong reply i just realized
(all good)
So, every BungeeCord task should be executed Async but it constantly says this.
What does that mean?
20:05:49 [WARNING] Plugin listener it.mikeslab.persistify.listener.UserConnectedEvent took 126ms to process event ServerConnectedEvent(player=Jaamin, server=net.md_5.bungee.ServerConnection@2f2061fe)!
That is not an error
Its just a warning telling that your listener taken much time to be processed
It meant that you've weighed down the whole chain of observers by taking a whopping 126ms to process the event, xDD.
observers? BungeeCord doesnt use them, they use an event-driven system which is totally different from observers theory
Only because the event is async doesn't mean that you shouldn't open a new task for heavy processing, btw.
I've never touched Bungee, could you explain the difference?
There are different ways for creating event-listening, one way is using observers based and the other way i dont know its real name
I will read and i wil lexplain you, 1m please
The observer pattern is within the family of event driven design, as far as I know. In simple terms, it means nothing more than an interest registry, which calls all registered callbacks if the subject changed. Don't get why that doesn't apply here, as the whole reason for notifying about long callback durations is because they're weighing down the chain.
Take in care that the events are pulled once netty channel input, so if the proxy server doesnt have good resources, it will takes more time to process the request, which makes the event to take more time
I will look in the github code and sent what line sends that warning
Exactly what I said, xD.
fyi you can shift click to select line on github
fyi? What that new slang
But I get that you're nitpicky about calling an event-bus an observer-chain. I will call it bus next time.
oh thanks
I would but i have currently 60 tabs per each chrome instance and 6 instances
i mean i thinking that 64gb is too low for a dev, i would think i need around 128 or 256gb to work well
oh lol, how you can code '
My vanilla IJ on sleep process just eat 12gb
16 can get tight, but 32 is kind of the sweet spot for me, xD.
And even up to 24gb when coding a multi module project
Currently coding a 20 multi module project and ram is 26gb ๐
Its pretty crazy the IJ ram usage, but there is no other IDE better than it
how
scheduling moment, its somehting difficult tho. I alays have problems with them
i don't have any problem with 16gb lmao
Lol me with 64Gb and need the priority of 256gb atleast for working correctly
Well, some people compensate bad software design (IntelliJ) with just buying more RAM, xDD.
very very very very very useful and interesting ๐
The problem is that so far im joining to multi proxy coding, i need to have many instances of same network to achive the multi proxy testing
tbh my ij never goes above 4 gb
dk what you guys are doing xd
Lol jesus christ, i would like to have that
IntelliJ Bad Designed? Are you for real?
Yeah, it's a bloated pice of crap.
Yes IJ is not well designed
ITs take to much ram compared with VScode for example, in Vscode you can even do more things
IntelliJ > VsCode.
more?
If it impresses you, just know that most of the features come from an external language server. IntelliJ only augments some functionalities, no need to hold them in high esteem. They've produced a heavy and laggy IDE for giving you a hand full of more features.
I wont think that, IJ is more resource intesive rather Vscode where you can literally code what ever. When IJ doesnt allow it for free and also they paid version is the same as the free one because resources are not even optimized
I totally agree with your message, pretty well described IJ problem ith few worlds
What do you think about Eclipse, instead? 
VSCode is also quite bloated, but it's still a lot faster than IntelliJ, xDD.
Eclipse ๐
I really need to stop postponing my vim setup, xD.
I wont touch that thin in the rest of my life
I think its really oddy
Eclipse = OG, xDD
dk what are you doing with that much ram xd
big cap i cant event read
and i dont have a small screen if you think about it
we are discusing about IJ problem
Yeah, well, I got three instances open, so 9GB seem fair.
and i say my ij is taking 2gb
That they created a heavy IDE which is too much resource intensive, too adding some extra functionalities
Fair for bloatware, that is, xD.
Howw?
I can open 1 IJ project per IDE
Hello, i have a problem, i want to compare a location with another location and but the locations don't want to overrule even though they are right
?paste
open in new window lol
I guess you've literally got a huge monolith of a project open which you've visited and thus cached every single class in, xDD
But thats make have to change the screen
I just want to see then like does eclipse for example, where you can see all proejcts and swap to them, without chaging the screen view
Why heck the ItemStack doesnt use @SerializableAs("ItemStack") annotation? ๐ค
Lmao my english is awful today
you mean me?
Hmn, wait i reply to you?
Its a general question but maybe i acccidentally replayed to you
hmm
can I trigger PlayerInteractAtEntity programatically?
so yeah even with this im still getting the issue that it only registers the entity if you are jumping
Bukkit.getPluginManager().callEvent(new PlayerInteractAtEntityEvent(<>));
First of all:
Location bed1down = new Location(Bukkit.getWorld(event.getPlayer().getWorld().getName()), bed1downx, bed1downy, bed1downz);
Can be just
Location bed1down = new Location(event.getPlayer().getWorld(), bed1downx, bed1downy, bed1downz);
Good one
thanks
A simple fix for you would be: Get the block on that location and check for Block equality instead.
And keep in mind that Beds have multiple locations! They span over two Blocks!
why, Bukkit#getWorld() ? just use Player#getWorld()
ik because of that i have two locations for every bed

Thats not... how you do this. But ok.
Then try using Block equality for now
He? Please explain your final goal
MlgRush
I cant understand what you are doing, the why, etc
wait i translate from german with google
so there are 2 beds on the map one for player 1, one for player 2 and if player 1 breaks bed 2 he gets a point and vice versa
player.getWorld().rayTraceEntities(player.getLocation(), player.getLocation().getDirection(), attackRange)
I've got the following line of code to get the entity that the player is looking at. For some reason it misses the entity unless I jump. Has anyone worked with raytracing and knows what else I should be using as variables here?
getEyeLocation().getDirection()
that also doesn't work :/
yes it does
do i need to do that for the location as well or only the direction vector?
location-direction is the BODY facing direction. Eye-direction is where teh player head is looking
its still not returning the entity any idea what could be causing it?
use EyeLocation for both, what is your attackRange?
5 blocks
then it will find any entity in line with the player looking for 5 blocks
yup but even 1 block away it wasn't finding anything ill try again with both as eye location
what is the best minecraft thing that I can use to visualize and debug direction stuff
like can I make an arrow point from the player or something?
yeah still doesn't work
impossible unless you are leaving soethign out you are not telling us
you are looking at an actual Entity?
if(p.getWorld().rayTraceEntities(p.getEyeLocation(), p.getEyeLocation().getDirection(), attackRange) != null
Entity entity = p.getWorld().rayTraceEntities(p.getEyeLocation(), p.getEyeLocation().getDirection(), attackRange).getHitEntity();
LogsUtil.testing(entity.getName());```
this is the entirety of everything
iron golem should be an entity right?
yes so long as it is real and not somethign spawned by packets
hm?
don;t do a rayTrace three times
^
store it
var hit = world.rayTrace(...);
if(hit != null) {
var entity = hit.getHitEntity();
}
yeah was gonna store it once I got it working but ill just clean that now then
is var actually a java thing?
Yes
So no types?
But please its really ugly to use it ๐
Thats what I was about to sy
lazy type don't use if you don't need to
say
im not no
should i be?
How do you build the latest versions for plugin development again
Apis jar?
?bt
build a working plugin?
is it ?bootstrap
If you mean building the api and server jars, must use Build Tools
?bootstrap
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
yo um
so i just decided to output my raytrace
and its literally calling me as the entity
TESTING: RayTraceResult [hitPosition=-150.202164979308,71.48623147739568,312.8580864423452, hitBlock=null, hitBlockFace=SOUTH, hitEntity=CraftPlayer{name=Rynnth}]
its returning me
so it is finding a collision as I said, just use the rayTrace which accepts a predicate so you can exclude yourself
Any reason that can cause object list deserialization not getting done from a yaml file?
Verano i did my system in like 15 lines new
nice
Now i need to find the why of my previews not getting deserialized from the data file
๐ฌ
That moment when you try to patch chunk packets and you messed something up, lol
can you get flint and steel and right click on a tnt block?
Any reasons, previews not getting load?
sorry to bother again, how would I convert player in to type Predicate?
A predicate usually just takes in n input parameters and outputs a boolean, so you just need to receive the entity and respond only with true if that's not you. Something like entity -> entity != player, where player is the reference to yourself.
I would recommend reading about predicating its something really useful when coding
ill take alook then
location.getWorld().rayTraceEntities(location, location.getDirection(), 5, collision -> collision != player);
ill take a look thanks sorry about the bother
COnclure, such a long time i rlly miss u
Specially when u help me because you really have patient for helping me
You're not bothering anybody, this is help-development after all! :)
predicate comes from mathematics where its some statement concerning some variables and when passing values to the variables the statement becomes truthy or falsy
even the method
boolean hi(String x) {
//...
}
can be considered a predicate
Conclure?
Is discord image system broken?
nope
they are bad displayed, maybe its my own discord
at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[commons-lang-2.6.jar:2.6]
at org.bukkit.craftbukkit.v1_19_R2.CraftWorld.rayTraceEntities(CraftWorld.java:878) ~[spigot-1.19.3-R0.1-SNAPSHOT.jar:3652-Spigot-19641c7-6aeb5e4]
at org.bukkit.craftbukkit.v1_19_R2.CraftWorld.rayTraceEntities(CraftWorld.java:873) ~[spigot-1.19.3-R0.1-SNAPSHOT.jar:3652-Spigot-19641c7-6aeb5e4]```
basica java, its giving you the issue on your eye
i have eyes :(
my code is fine, so long as location = player.getEyeLocation();
So? What can cause a List of custom obejct not being deserialized from Yaml filesss?
is there a way to disable git stuff in intellij
a power cut
but still use git outside of it?
im being serious
settings if imt no wrong
So am I ๐
where
bruh really i want to just fix my issue
Not enough information
wait i sent code and pictures
im using new ui
and also I still see no option there to turn it off
Im running 2021 version
yeah theres a new one
2022 is not beta xD
wdym
Stable versions are supoused and must not to having issues that why tey are stables
with the screenshot you sent I still cant figure out how you are supposed t turn it off
In my case appears enable version control ,because the project doesnt use git
But if you already have git, shopuld tell to disable vesionm control
So what can be the reason of custom ConfigurationSeriliazable not being deserialized from file??
many reasons
right, i listening, because i dont find the reason
not registering yoru class before touching the file
okay i think that the issue
if its in your config you MUST register your class object before you ever call getConfig
Yeah it was that
i think because i was loading the manager
and then understand registering the custom obj
When adding arguments to a command, do you need to register it somehow in plugin.yml?
if (args.length == 2) {
if (args[2].equalsIgnoreCase("settings")) {
return Arrays.asList("test");
}
This code does not work and I can't find a reason why it wouldn't on youtube. Does anybody know why?
I also have an on command function with
else if (args[1].equalsIgnoreCase("player2"))
This also does not work.
I can not find a reason why? Anybody
?notworking
"Does not working" is a useless statement. Please describe what exactly is not working, what you expect it to do, and what actually happens. If you get any console errors, also ?paste the entire stacktrace.
If args length is equals to 2, args[2] will always throw exception
This is what every other youtuber used though.
That is the problem, I do not know why this does not work.
OK?
What I said is still true
You can't have length==2 condition and args[2]
It will throw index out of bounds
Ok but you need to describe what exactly isnt working
If you cant then you did not understand a line you just wrote
?paste your whole code and we will see
I am still learning java and I do not know much. I have been learning for about 2-3 months now (properly) and I do not know much. I have mostly been learning from youtube and java websites. I do know how to code though and I coded about half of the code by myself
Then you should probably learnt that array indexes start at 0,not 1
Ah.
I thought that it was 1 and 2 before that in java.
I did not realise it was the same as javascript.
Thanks
It's same in nearly every language
Except for visual basic for example
It all originated from c pointers
I know some languages that use 1 and 2 before that.
I thought that it was like that in java.
Sorry
You don't have to be sorry, we are all here to learn ๐
Not me, I'm perfect ๐
How come
if (args.length == 1) {
return Arrays.asList("start", "end", "forfeit", "player1", "player2", "settings");
This code works as expected then?
TabComplete the first space after the command gives args.length of 1 it's an empty arg as you've not typed anything yet
Ah ok
as you begin to type letters they appear in new events in args 1 until you hit space again
Oh ok.
else if (args[1].equalsIgnoreCase("player2"))
That code does not work though even though it works in tab complete?
Is it because of args[1]
no idea on yoru code logic
I learned that by watching a youtube tutorial.
args[1] will be equal when you have typed that in or selected it
but only when it's actually IN the command line
you can see what its doing by sysout args[1]
ok..
Is there any documentation for using the factions plugin as a dependency? Everything I try gives the problem.
I believe I have fixed the error now. I'm going to try what I think is the fix
Shouldn't there be a like factions plugin documentation where you download the plugin
yes
can I get rotation from PLayerInteractAtEntity event?
rotation of what?
the direction it was interacted with
you can get the Entities direction
and you have the players direction
you can calculate where you interacted
but why?
Basically
what I am trying to di
is that I have an armor stand that stands in front of another armor stand
and I need the PlayerInteractAtEntity event to go through the first armor stand and call the event for my second armor stand
so what I was planning to do
is when the armor stand is clicked. it checks what direction it was interacted with and then proceeds to call that event for other armor stands behind it
if that makes any sense
why?
I am making a mini block plugin
so you can build with blocks that are the size of armor stands
for example here if I want to right click to place
I would need the armor stand behind it to get the event called
and not the one I am actually looking at
why?
so I am checking if the armor stand was interacted with below the head
so I cann make the event pass through the first armor stand
to the second
If you click a place surely thats the place you want to build
so the block places correcty
yess but the way my stuff works
is that if you click on the right side of the armor stand
the block will be placed on the right side of the armor stand
but if there is something already to the right but on another height level
for example the image I sent
I would need the first armor stand to ignore the click
and rather pass it back to the armor stand behind it
you don't pass events from one stand to another. Thats not how MC/Spigot works
you recieve the click event and YOU deal with it there and then
you could raise an event and pass in the stand behind
that was my plan
but I am trying to figure out how to implement
should I maybe just use raycasts?
NMS remapped issue.
?nms
why cafebabe?
I already understand all of that. and done all of that. But the 4th jar isn't populating in the target folder.
no it's not. Not with mojang mappings.. There should be a 4th jar that is remapped.jar
I only have 3
that is the issue
no the jar with the shortest name is the one you use for deployment
it looks like you are missing a Minigame.jar
did your build complete?
It did. The only reason you have "Planter.jar" is because you dont have it setup to add the snapshot messages
I need help figuring out why I'm not getting the remapped.jar
No clue your pom is pretty much identical to mine
yeah that is why im confused lol
it is creating it
Replacing /Users/rootuserirl/IdeaProjects/smash-minigame-plugin/target/Minigame-1.0-SNAPSHOT.jar with /Users/rootuserirl/IdeaProjects/smash-minigame-plugin/target/Minigame-1.0-SNAPSHOT-remapped.jar
that isn't in there
that isnt in that directory
yeah that definitely isnt in that directory. triple checked.
yeah no clue
Hey. I'm getting some very weird TPS drops on my timings report. Specifically this line.
I'm trying to understand what I'm looking for in the source code to this
It says task $2. Which I assume is the second task queued for the plugin
when im starting my server its giving me this error. Can anyone help me fix it?
This is a 26 minute video with IP leaks in it
Event handlers don't work like that
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
i think i need help with that too
It has to do with public void hit(EntityDamageByEntityEvent event, PlayerInteractEvent playerInteractEvent) {
i have missed video
hi guys , i wanna make a plugin for calculate ms of an item switch , like this
i dont think...
do u want mp4 format?
videos are directly displayed over discord
in mkv not
So that must contain smth else but dont worry i will can it
and then watch it
double work >> running a virus
When working, with events right, where should be implemented cancellable? On the master event or in the sub types? Im open to suggestions
like this
but modding != plugin, mainly spigot != forge || fabric
depends whether that parent class is also cancellable
All the sub types events will be able to be cancelled
probably do it in the parent class then
right thanks
my event isnt working, giving errors when loading server
https://paste.md-5.net/elizayimiy.cs
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!
someone can help me to create this?
bruh
We cant help with no issue, no context hat your doing ๐ค
what error? npe?
Dont reply to own message to get fast support, if you want to get persist your message open a thread on the channel, thanks!
also is two event types in one event method possible, i heard ElgarL talk about it or smth
ok not
oh ok sorry
Some reason this dependency isnโt found:
<dependency>
<groupId>com.github.BeYkeRYkt</groupId>
<artifactId>lightapi-bukkit-common</artifactId>
<version>5.1.0</version>
<scope>provided</scope>
</dependency>
Any suggestions?
hi guys i wanna make a plugin for
did you reload maven?
I would recommend reading about even listening
Yes
and you added the repo if theres one?
by not found do you mean when compiling or what?
In case not working, try invalidating cache or installing the dependency to your local repo, using mvn install:file <path/to/jar>
There was no repository provided. The link to the api is here: https://www.spigotmc.org/resources/lightapi.4510/
So you its make sense the not working, you cant use a maven dependency which is not on a repo
best "help-development"
?? this is a community if people ignore you you cant complain, no one is getting paid to obligatory helpi ng๐
i tought i was getting help when its written ther
I cannot imagine you asking for help on paper comm, its 3x worst than here
๐คฃ
So what should I do then, if thereโs no repository?
Install the jar into local maven repo
Oh alright, thanks
As i have told before you can use mvn install:file <path/to/jar>
but check the command im not sure about the arguments
If need something else, where are here
Is this sqlite guide up to date?
guys
Can you tell me how can I upgrade my spigot version from 1.13.2 to 1.13.3? (TR)
looks awful
Does anyone know what RecipeChoice.test() does?
Do you know an up to date
this counts for all db types and teacher you better practices https://www.spigotmc.org/wiki/connecting-to-databases-mysql/
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
โค๏ธ
Thanks brush
I assume mostly I need to change the connection driver to make it compatible with sqlite
ye
That should be about the only thing you need to change.
And does the driver need to go in this /lib folder or something?
Or is that outdated
spigot ships an sqlite driver but dont ask me how up to date it is
Tbh, if it works, it works. There's nothing critical about a sqlite driver...
performance
Peanuts, lol
shouldnt be talking about this cuz its already slow asf
the fun thing about making db libs is that you dont have to care about speeds
Okay sorry for such a late reply I just got able to actually test this
I went ahead and modeled my code after yours and this is what that looks like:
arrow.getWorld().spawn(arrow.getLocation(), Firework.class, firework -> {
final FireworkMeta fireworkMeta = firework.getFireworkMeta();
fireworkMeta.addEffects(PersistentDataAPI.get(arrow, Keys.fireworkData, DataType.FIREWORK_EFFECT_ARRAY, new FireworkEffect[0]));
firework.setFireworkMeta(fireworkMeta);
firework.detonate();
});
But as you can see in this video, that did not fix the issue I am having: https://www.youtube.com/watch?v=VgdmJMt_lTE
As you can see I can still see the firework for a quick bit and hear the sound of it launch (subtitles)
CraftFirework#detonate sets the lifetime of the firework to it's max lifetime + 1, effectively marking it for explosion on the next tick. The next tick will inevitably play the launch sound, as the rocket is not silent (nms Entity#isSilent). Afterwards, FireworkRocketEntity#explode is invoked, which will do a few things, one of them being sending the ClientboundEntityEventPacket to nearby players with the event-id 17. As this is an entity event by design, I don't know whether you can get rid of the bang. Maybe isSilent could help there. The main issue now is that CraftFirework doesn't expose explode. Firework does expose setSilent through Entity tho, which is something you could try right now.
If you look at the gif smile attached to their code they don't have that same problem though, or is it there just not really visible?
I also noticed that, seems odd. The video doesn't have sound, does it? But I also couldn't spot a rocket body. Are you both running the same version? Maybe there have been some changes we don't yet know about. Adding firework.setSilent(true); would still not hurt tho.
Gotcha, ill try setting it to silent as yeah that would probably help, i'm working in 1.19.2 not sure about smile
If it's actually silent then, that would be at least a step in the right direction.
yeah
If you want to, you could also try adding the following below the call to detonate:
((CraftFirework) firework).getHandle().inactiveTick();
firework.remove();
This should trigger the necessary explosion code and prevent the next "normal" tick through the call to remove.
anyone able to help with mongoDB errors. i get this error when plugin starts. i dont think its connecting
Looks like a class is not present on the server
Make sure you shaded or used the libraries feature with the right artifact
Also try just restarting instead of reloading
Unsupported class file major version 60
This is related to my pom.xml right?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
Use Java 8
ahh this worked lol. but now my data is not saving. can i dm u or u want to keep it here?
I'm going to get some sleep so ask here or wait until tmrow
The problem occurs when I try to shade
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.32</version>
</dependency>
Does that mean the mysql-connector-j is only compatible with java 8?
60 is java 16 isn't it?
Java is backwards compatible for the most part
Then why would it not allow me to package
?paste pom
That pom says java 8?
