#help-development
1 messages · Page 723 of 1
Also the fact that the Vector API is blocking on Valhalla is an interesting choice given that Valhalla won't be out until 2040 or so
does someone have a solution to this?
Is it? Thought it got pushed through at least with record patterns
I'd avoid AWT on the server
👀 2040?!
Ohhhh string templates go into preview in this release too
I mean there is a reason why "Valhalla when?" is a rhetorical question
Basically what I'm saying is
there are lots of cool features in 21
Pattern matching alone is huge
hey how can i check if the server is on else offline
private static final Server SERVER = Bukkit.getServer();
/**
* Gets the type of the server
*
* @return Type of server
*/
public static String getMode() {
if (SERVER.getOnlineMode())
return "Online";
if (SERVER.spigot().getConfig().getBoolean("settings.bungeecord", false))
return "Bungee";
return "Offline";
}
But isn't it exclusive to records?
Switch statements as well
switch (someobject) {
case Integer i when i >= 10 -> System.out.println("It's greater than 10 :)");
case Integer i -> System.out.println("It's less than 10 :)");
case null -> System.out.println("lol wut");
default -> System.out.println("Seriously, lul wut??");
}```
Also you can switch over sealed types now which is cool!
when
i will check if the server citybild is online ore not
Yes, new when keyword
where
i feel like this'll break some variables somewhere
not from compiled
public sealed interface A permits B, C { }
public class B extends A { }
public class C extends A { }
public void method(A a) {
switch (a) {
case B -> System.out.println("B");
case C -> System.out.println("B");
}
}```
This is valid now as well
Nevermind tried it for myself - I stand corrected.
choco what jep is when in
does it make sense for objects to be switched over?
When you can pattern match, yes absolutely
they can't really get any optimizations
Sorry, didn't realize you designed the compiler
I am the compiler
the idea behind the other types where that they had some order
The JEP outlines that those switch patterns are MORE optimized than the traditional if/else
Switches also have order
so you could log n it
i see
It's very tiring
There is a time and place for switch vs if statements, but these switch improvements being made is a huge + to 21
As a bonus, it's LTS :)
@Mojang when
Imagine
Though the project I'll be starting we'll have the benefit of using 21 right away which is nice. Private server and whatnot, custom plugins, etc.
Meh doubt so
Sorry, didn't realize you designed the compiler
Those JEPs are extremely in-depth. To lie on that would be insane lol
And for what benefit?
i'll test it just to be sure, maybe they get some optimizations, but then so if else could've gotten these
Why? The two concepts are fundamentally different
I may not have designed teh compiler but I know the compiler optimizes absolutely nada
how to ban without deprecated?
?jd-s
no shit
Map with functional values > switch statements
I very rarely use switches
Why the hell is the return value nullable though?
Unless you use paper but at which point I'd be the person to say "no shit"
You're missing out. They're very convenient lately
i agree
but i just have someone test the performance if it's true
switch cases are notorious for 'don't use if few cases'
thank you so much
do datapacks use mcscript?
that uses node so no
why does this have 47 stars
it literally has no code
Looks start worthy to me
Probably a meme
im moving from intelij to visual studio code, trying to get all the libraries i need. and i want to start making datapacks on top of plugins
You dont plan on dropping ij for vs code to write Java, right?
my career goals involved python so on my way towards that that was my plan
hmm time to make this thing decoupled from actually storing data
use pycharm
thanks
i know but i want to get comfortable in one... for now... intellij is great for minecraft ive had no issues
use pycharm
its the jetbrains ide for python
and most plugins that work in intellij work in pycharjm
Not sure anybody can convince me that jetbrains IDEs arent the goats in their field.
VS Code is just an editor for a bit of scripting to me. Nothing i would use for a decently sized project.
ever used jetbrains rider?
i use vsc for markdown
also phpstorm is a direct improvement over webstorm
Netbeans enters the chat
rustrider is gonna exist soon
Yes, i love it. The integration with Unity was great.
Same goes for Godot (which im trying hard to switch to now)
rider with winforms barely worked for me
Like the form renderer crashed all the time
and drag & drop was broken
Visual Studio is ass but at least it works comparing to Rider
do you have dark mode in netbeans?
Visual Studio is fine for Windows specific projects.
VS Code on the other hand is just a scripting tool. Not a serious IDE
didn't they have a vs code competitor that didn't have plugins and was immediately disqualified
fleet or whatever
Probably, who uses dark mode tho
me
I just know Atom
You use light mode on discord or smth?
Yes
it's pretty nice compared to eclipse's light mode

i should switch to light mode then, maybe only then i can be as smart as md5 tho i doubt it
I've used eclipse's light mode a week or two ago
It isn't too bad but you defo notice it being a bit strange if you used eclipse's dark mode since time immemorial
7smile7 before I get into tech debt
because this can get really messy
I'm working on my skyblock stuff ye
And my idea is to have a modules system so I can have a separate jar for let's say, profiles
Now, I want to make it so I can use the same database structure without having to redo stuff
after talking with chatgpt, looks like its best to get familiar with all of the above, cs vode has more variety but intellij is more indepth pretty much
and even a credentials inheritance system so I can say "profiles are stored on mongo, island levels work on the same database as island data"
This is clean, what'd you model this in?
Now, decoupling this thing so I can just make separate interfaces and extend a class will result in having to create an impl class for each storage type, and database type
Basically going from this
to something like this
I dont understand the part with the separate jars.
You usually create multiple modules and then simply shade them where you need them
By modules I don't mean gradle/maven modules
i miss eclipse
I mean like papi's extensions
Where you can like pay 5$ for some BS module that revamps the entire experience
And toss it in a folder
Wat
Hello! How to understand which JDK version should I use for different spigot versions?
it wasn't that bad i swear
Lets see what was it
New system allows me to implement specific conditions for specific storage types, and separate credentials so that things end up in different databases for whatever crazy owner decides to use this
but it also means I'm creating like 3x more classes, which I'd do anyways without the decoupling but this streamlines the process a bit
ye
8 for 1.16 and below, 16 for 1.17, java 17 for 1.18 and above
Aight
You are digging into CRUD theory.
This has been solved about 20 years ago. Just create abstract DAOs and implement them for each storage type.
What you can do (and what i did for some projects) is to create a consistent intermediate format to which you
serialize to (in my case it was json) and then simply write one impl which can translate your intermediate data type
to a persistent model, without knowing the intrinsic content of your data.
Yeah this is something like an abstract DAO
or well
More of a codec
idfk
Reason why I'm not using an intermediate format is just because multiple database types work in very different ways
I did that at work and it ended up as a mess
codec translates/serializes data. DAO is for accessing it. Need to make a distinction.
yeye
My idea is to just make an interface like
public interface SkyblockIslandStorage {
CompletableFuture<IslandData> fetchData(UUID profileId);
CompletableFuture<Void> storeData(UUID profileId, IslandData data);
CompletableFuture<Void> deleteData(UUID profileId);
...
}
and make an impl for each
that goes in some sort of registry that handles all the inheritance logic
Yeah but if you have an intermediate type (like json) then you only need to write one impl for each storage type
which can take a random intermediate object and translate it to a model.
This way you can use this impl for every type of data you have. All you need to impl is the codec (Obj -> json)
This needs an abstraction layer above. A classic DAO
hm
One moment
I wonder if I can eat an entire bag of cheetos by the time smile gets back to me
what if one wants to sort said database?
json kinda makes it hard
yeah I'll def want to sort in the future
and want no clashing issues so intermediate format is a no-go
public interface AbstractDAO<K, V> {
void create(K key, V value);
V read(K key);
void update(K key, V value);
void delete(K key);
// You can add a ton of other stuff like bulk operations as well
Collection<V> loadAll(Collection<K> keys);
}
public class SkyblockIslandDAO implements AbstractDAO<UUID, IslandData> {
@Override
public void create(UUID key, IslandData value) {}
@Override
public IslandData read(UUID key) {
return null;
}
@Override
public void update(UUID key, IslandData value) {}
@Override
public void delete(UUID key) {}
// Add more specific methods for islands as well
}
makes it really easy but nah
yeah this is a bit too locked down for me
Its all just CRUD in the end
There's some data that might be filtered
What do you mean by locked?
There's certain data that I want to sort
There's certain data that I want to process and provide edge cases
By going with a DAO that basically acts as a map wrapper I'm a bit limited to just the 4-5 operations
Sure would it be cool to have an automagical way to serialize data and back? yes
No? You implementation can have a ton of other methods. You are not limited to just the interface methods.
Then what's the point of the abstract dao
Because I'll never actually be passing it around
(also I wonder how I should standardize my metrics system to also work for prometheus)
My main issue is that I want to avoid creating a class for each database impl but it'd be a backend shitshow to do that
what I might want is an intermediate "standard" way of registering all the potential DAO impls without rewriting logic 90x
hm
abstract factory to the rescue
What do you mean whats the point? It offers consistency, reusability, you can use it to decouple. All the good abstraction stuff.
Also if you decide to add functionality which should apply to all DAOs then you would love to have
an interface which you can add a method to instead of having to search every single DAO and hope you
dont miss one.
can't wait to make the default config
fetching: # mandatory
type: mysql
...
profile-data:
type: mongodb
....
island-data: inherit fetching
economy-data: inherit fetching
pet-data: inherit profile-data
oof
or just make it all inherit the main fetching db unless otherwise specified
idfk I wanna build the universe
and hopefully release it this year
(I'll retire by the time this releases)
i'd prob make each module have its own database file that can inherit from each other
give it 2 years and we're ditching gradle for my yml system
Again, this is only possible if you have an intermediate data representation and one class for each storage type
which can be used to store any data of this intermediate type. This way you just need to translate from obj -> intermediate
and not have to worry about an extra impl for each data class
backend shitshow to sort and stuff
I also don't want modules accessing each other's data
like
unsafely
I think I got my answers
there's a lot of work ahead
first plugin to reach 1M lines of code
ayo
Yeah this looks like a decently sized clump of work ahead
and once this database stuff is done it's time to impl all the features every other skyblock plugin has
1GB+ source code when
including my own economy handler that adapts with Vault
when the plugin's size is bigger than the server jar 
make sure you use big decimals from the start
oh yeah that one idiot whose server economy is inflated past zimbabwe
How would I go about adding my own "quest items", not so much the creation but the handling. Ideally I wouldn't want them to be disposable, but it seems without a large amount of checks, it may be unavoidable?
Vault is such an outdated piece of software... Forcing you to use a sync economy.
Wdym
make a self-contained objective class
Wasn't that supposed to be treasury?
and keep 1 instance / quest
idk what that is so they failed
or whatev
Use PDC tags to tag the items and then use events to prevent players from dropping them, loosing them on death or putting them into chests.
something tells me we have different interpretations of that question
I had the same interpretation as 7smile
can't wait to have all sorts of desync issues and have to integrate networking logic into every single dao
Im tiered... maybe md was right in asking wth he is saying
9:50pm
was nearly passing out 6 hours ago
am not anymore
my brother wants to yank me into an empty field and teach me how to drive next week so ig I have a reason to live
nice
Yep this looks like it. Also never heared of that.
I might go with the abstract dao approach exclusively to handle player data wipes
so that if someone wants to nuke banned players or sumn we can
youhave a brother?
this was the interpretation, having the item in your inventory and somehow losing it but the mention of "vault" made me think. I can probably just avoid that by having a separate GUI that the quest items just exist in
yes, I don't talk much about him because I'm not that proud
I only remember it because I was on the forums at the right time. Threads got heated cause implementing it was difficult and adoption never took off because of it.
I have high hopes for the people in my family that are my age and that often disappoints
but fuck it imma stall the car so many times next week that imma be a disappointment too so let's have a lil fun
Shred that gearbox lmao
Tha fk is this?
Since when does discord block me from sending mildly insulting words
it's per server
you can say shit though
I also cant call myself a re--rd
can so fuck, cant say whore'
they got the chatcontrol™️ regex
What about fuckwit?
👀
Oh dear, I suppose we shall have to converse with the utmost delicacy henceforth.
seeing 7smile swearing is odd
I made a concession for my rather inept younger siblings
Im the young brother
my elders are disappointing
except for my uncle grandpa
he was prime minister
how is he a grandpa and an uncle
There's a term for that.

incest
Very well chaps, I must take my leave forthwith. Ensure not to perturb the illustrious Discord sentinel, lest you too receive an unexpected admonishment, like myself.
Is your 8gb not enough
And I could do with a better 1
Well
For dedicated machines OVH and hetzner are good
For a shared host Bloom is pretty good
Shared host?
Hello, I wanted to know if the player's name can be changed?
all except the tab
Well, in chat you can easily do it via the AsyncPlayerChatEvent
For tab there is Player.setPlayerListName
Above head is more complicated, you can probably do soomething with packets or display entities
like that I do not understand
Well
You can use teams to hide the nametag
And then slap a display entity on their head with your custom name
doesn't seem as nice as a packet spoof
text display riding a properly sized interaction entity riding the player works pretty well
why does it say Cannot resolve method 'isSolid' in 'Block'
i swear isSolid was a method
depends how old is what you're running
im on spigot 1.20.1
i think it's in material then
oh yea
What’s the interact entity for
proper height
Just use translation
mm so many issues
basically weird nullability stuff
You’d need some kind of runnable to keep checking if the player has landed
Or a move event
not null assert
basically only way you can get npe in kotlin
so is there a way of detecting when the player lands?
use a map or object where you store, is in air
and then playermove event get to and check if it's on ground
if it's on ground trigger whatever you wanna trigger
you're able to put events inside of events?
no
then how
but you can put an event below your event
Or you can go the runnable approach
Might be better than always having a player move event listener, kinda depends
yeah, up to you
for (i in 0..360) {
val x = cos(i.toDouble()) * 2
val z = sin(i.toDouble()) * 2
val loc = location.add(x, 0.0, z)
p.world.spawnParticle(TOTEM, loc, 1, 0.0, 0.0, 0.0, 0.0)
p.world.playEffect(loc, Effect.STEP_SOUND, 152)
p.world.getNearbyEntities(loc, 1.0, 1.0, 1.0).forEach { e: Entity? -> if (e is Player) { e.damage(5.0) } }
}
Please help, I want the player in the middle
Kotlin
where is your "location" called?
Here is the full function
private fun hammerParticles(p: Player, location: Location) {
for (i in 0..360) {
val x = cos(i.toDouble()) * 2
val z = sin(i.toDouble()) * 2
val loc = location.add(x, 0.0, z)
p.world.spawnParticle(TOTEM, loc, 1, 0.0, 0.0, 0.0, 0.0)
p.world.playEffect(loc, Effect.STEP_SOUND, 152)
p.world.getNearbyEntities(loc, 1.0, 1.0, 1.0).forEach { e: Entity? -> if (e is Player) { e.damage(5.0) } }
}
}
Called here
hammerParticles(e.player, e.player.location)
Please help
is this java 😭
^
clone location
wdym
everytime you iterate you move location
oh
okay
p.world.getNearbyEntities(loc, 1.0, 1.0, 1.0).forEach { e: Entity? -> if (e is Player) { e.damage(5.0) } }
also this can be put outside i think
yeah it could
it already does some form of radius
p.world.playEffect(loc, Effect.STEP_SOUND, 152)
same for this
unless you like the effect
alr
so I'm trying to copy all persistent data from one object to another
however I can't get the persistent data without knowing the type
and I'm trying to make this general so I don't know the type
is there any way around this?
Sounds like a good feature request though surprised there wouldn't be a way
you're probably right
maybe a generic way to get persistent data? like just returning an object
*not generic
a way to get the data without knowing the type
or maybe a pair of types and objects
idk
ill make a request
I mean you probably can using nms, getting Tag called BukkitValues and pass it to another item
might be wrong
I think getting a generic Object would be good
you'd have to be able to set the generic object though
what's the latest spigot version 😭
it's not a bug report so the version shouldn't really matter
but i get it
ill spin up buildtools lol
I will personally send it to the shadow realm if the build version is wrong
there is an inventory.getLocation() but there is no inventory.setLocation() what can i do instead?
idek what that would do
👀 PDC#copyTo(PDC)
what
I have no idea what Inventory#setLocation() would do
how does getLocation() work
I want it to teleport the chest
How does minecraft store chest data I've always wondered
NBT as slot data
Is it stored in nbt? Or what
Slots:[{Slot:1b, Item:{...}},{...}] iirc
Ahhhh
Pretty much everything is NBT
It's all NBT. Always has been 
yo, kind of a noob question. I'm creating command arguments, but is there anyway to make the arguments show in like plugin yml
Like when you add a cmd on plugin yml, it shows in chat
like you can press tab to autofill an argument or something
Tab completion is handled by having your command class implement TabCompleter
(Or TabExecutor)
hmm
alr I'll check it out
just implementing it will handle it? I'm assuming for each argument you gotta do something or idk
Use StringUtil.copyPartialMatches for what you return
You will then be made to implement a method called onTabComplete
hmm alr il check it out
thanks for the info
i have it so when a player opens a chest, it opens a different inventory to the one in the chest. when the player closes that inventory, the chest stays open for a while. i have a listener for when i close the inventory, is there a way i can close the chest from there?
InventoryCloseEvent and Chest#close ?
Yeah, chests are Lidded so you can use those methods there to open and close chests as you'd like
declaration: package: org.bukkit.block, interface: Lidded
awesome thank you
how do i cast a block to enderchest
java.lang.ClassCastException: class org.bukkit.craftbukkit.v1_20_R1.block.impl.CraftEnderChest cannot be cast to class org.bukkit.block.EnderChest (org.bukkit.craftbukkit.v1_20_R1.block.impl.CraftEnderChest and org.bukkit.block.EnderChest are in unnamed module of loader java.net.URLClassLoader @2b71fc7e)
i dont need help with development but how to i update my plugin on the spigot page that i posted
Block.getState
⬆️
By clicking the post update button on the resource page
You need 2fa to post updates
how do i change the type of sapling dropped from leaves
i have custom trees but i want them to be practical while staying looking good
i just want only oak saplings to drop not spruce/birch and stuff
BlockDropItemEvent will be your friend here
Check if the block is one of the leaves blocks, check if the item is a sapling (because they can also drop sticks), remove and spawn a new one
Doesn’t work for natural decay
hi, does anyone know why when I compile I can't access the PlayerInfoData class?
Do you have the right nms version added as a dependency in your project?
How are you compiling?
anyone know how to use Protocol Lib for Team packet update?
Im doing what Ive read to be correct and get an error saying that field 0 out of bounds for length 0
WrapperPlayServerScoreboardTeam teamPacket = new WrapperPlayServerScoreboardTeam();
//teamPacket.setName(type.toString());
//teamPacket.setColor(type.getColor());
//teamPacket.setPrefix(WrappedChatComponent.fromText(String.valueOf(type.getPrefix())));
//teamPacket.setMode(2);```
Why would you use packets for this
can you just not do scoreboardteamand the use it's functions
How would I go about giving players permanent data? Like setting some kind of variable in a player to something. For example i want to check if player.element is equal to something
?pdc
for more than some simple field(s) i would still opt for using your own player wrapper and files tho
Alright thanks
Im trying to create a function that allows me to use color code on signs but its not working, someone know how can i do it?
This is the code im using
package me.yuvi.comandi.events;
import org.bukkit.ChatColor;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.SignChangeEvent;
public class SignColorEvent implements Listener {
@EventHandler
public void onSignChange(SignChangeEvent e) {
String[] lines = e.getLines();
if (!e.getPlayer().hasPermission("colorcodes.sign")) {
return;
}
for (int i = 0; i < lines.length; i++) {
String line = lines[i];
lines[i] = ChatColor.translateAlternateColorCodes('&', line);
}
}
}```
you have to set the lines back https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/block/SignChangeEvent.html#setLine(int,java.lang.String)
getLines prolly returns a copy
thanks, it works
Personally for readability I'd invert that if statement
Don't wanna be that guy tho xd
Does anyone know how I can create a custom Pathfinder for an Entity with NMS 1.19?
I created this function that allows me to modify a placed sign but when i confirm it the old lines that have color code in it just reset, someone know a way to keep the untouched lines with their color?
public class SignEditEvent implements Listener {
private final Map<UUID, Block> signEditMap = new HashMap<>();
@EventHandler
public void onSignChange(SignChangeEvent event) {
Player p = event.getPlayer();
Block block = event.getBlock();
if (!p.hasPermission("gn.sign.edit")) {
return;
}
if (block.getState() instanceof Sign) {
signEditMap.put(p.getUniqueId(), block);
}
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
Player p = event.getPlayer();
Action action = event.getAction();
Block block = event.getClickedBlock();
if (!p.hasPermission("gn.sign.edit")) {
return;
}
if (block.getState() instanceof Sign) {
signEditMap.put(p.getUniqueId(), block);
}
if (action == Action.RIGHT_CLICK_BLOCK && p.isSneaking()) {
if (block.getState() instanceof Sign) {
Sign sign = (Sign) block.getState();
if (signEditMap.containsKey(p.getUniqueId()) && signEditMap.get(p.getUniqueId()).equals(block)) {
p.openSign(sign);
}
}
}
}
}```
?paste
How do i make so people cant walk though the skull hat on the armor stand? armorStand.setCollidable dosent work?
https://paste.md-5.net/suvomatate.cs
you don't
gonna be wonky tho
players trying to stand on it will be "stuck"
specify "back"
Wait, so is there another method?
have you tried setting a skull block instead ?
idk if you're still trying to do what you were doing like 2 days ago lul
wouldn't standing on it trigger a kick due to flying ?
Or will this work?
private void setCollidable(ArmorStand armorStand, boolean collidable){
try {
Object nmsEntity = ((CraftEntity) armorStand).getHandle();
Field collisionField = nmsEntity.getClass().getDeclaredField("collides");
collisionField.setAccessible(true);
collisionField.set(nmsEntity, collidable);
}catch (Exception e){
e.printStackTrace();
}
}
it is not possible
you can not just make an entity collidable
it will not work as a shulker
Okay, ill try. But wont it lag the server?
why would it
Idk because if there is many fake blocks and a player should load them or something
player sees thousands of blocks.....
they will be "fake" on server side, not exist there
only client will see them
the server will know that player tried to click this type of block at this specified location
that would be all I think (correct me if I'm wrong)
speaking of.. would that trigger a player interact event ?
but wouldn't server set the block back to air on first interaction since it detects a desync
ig there must be some black magic fuckery with fake blocks then
With protocollib? i just want if im doing it right
Are you sure that works for 1.8?
Okay
boo

Is this your plugin you're developing ?
If no, move to #help-server
depends on what plugin its from
I want a global tablist (between 2 servers behind a proxy) and it messes with the scoreboard
Using velocity to have global tablist but still need to update the player somehow
That doesn't answer the question
Scoreboards are packets too
How will this solve it
is there another one for natural decay?
(Doesn’t include the drops)
I need to refresh the scoreboard somehow for the player. And I dont see any way except logging the player out and back in right now to achieve this
Im open to suggestions
can you suggest me a plugin or add-on: I have special fishing rods and fishes, so how can I do different fishing with each fishing rod (different loot table for each one) (in addition I use items adder)
oof, my drop manager could probably do that if it was still updated...
a really?
But this is more of a #help-server question
ağh I wish there was a plugin so I could do it, I couldn't find it for days
okey thx
Does anyone know how I can create a custom Pathfinder for an Entity with NMS 1.19?
I have found tutorials for older versions but with the new mapping the Tutorials are outdated and I can‘t find any Method how I can set the pathfinder to the entity…
?mappings
Compare different mappings with this website: https://mappings.cephx.dev
usually you can modify an existing path finder or just extend pathfinder and make your own
private static boolean isInBarrier(Location location) {
if (location == null || location.getWorld() == null) return false;
return location.getWorld().getWorldBorder().isInside(location);
} - this be good option for check?
or isInside not good
this looks good
maybe your bug lies elsewhere?
idk maybe
contains
Like the name of the function could just be contains
there's no contains
so the bug has to be elsewhere
his random teleport probably is wrong, assuming this is what he uses
and if he has one he could just do it mathematically to never leave the bounds of the worldborder
Probably the better approach
are you using a World WorldBorder or a Player WorldBorder?
which of these should i use as final plugin?
The one without any suffix
(or prefix)
?img
Can't send images? That's because you're not verified! Use !verify to complete verification.
Alternatively, you can upload screenshots to any image hosting site and share the link.
Here's some screenshot utilities that can use to upload images.
Lightshot: https://prnt.sc
Imgur: https://imgur.com/upload
Flameshot: https://flameshot.org
Can i edit the size of a skull on a armor stand?
(look at the photo) the skulle to the left is the one i placed with my hand, the one in the middle is the armor stand without i used armorstand.Small and the one to the left is the one on the armor stand where i used armorstand.setsmall and i want so when i use the command /vps there will spawn a ender portal frame with a skull on top of it that are the same size as if i place it with my hand
https://i.imgur.com/wbrpjNO.png
Just use display entities for this. You can make anything super tiny or giant like a whole mountain
You have only limited amount of sizes of the skull
I would say use display entities... but you're on ancient version

Does display entities work on 1.8? just making sure
1.8 inferiority showing
no
no
nothing works on 1.8
stop using 1.8
So i only have armorstands?
yep
And maybe falling blocks which are mounted on an armorstand.
But thats it
I highly doubt those can render skulls
oh god
falling blocks in armorstands
they're so buggy
falling blocks are buggy in nature
Weren't they alright with noGravity
no
rip
even if you mounted them in an armorstand they'd try to do their hitbox stuff
best approach is to prob make an nms one that doesn't break stuff
The best approach is to update
Have you tried violence
let me ship a dropkick abroad
I guess the one good thing about 1.8 customers is you don't need to think much about future proofing the plugin
p much
Is it possible to hide this text with a plugin?
I added a lore which is less noticable because of that text
just code like you would 8 years ago
Yeah, ItemFlag.HIDE_POTION_EFFECTS should hide it. Misnomer but it should work
I still want to rename that
Probably worth doing a source level break for that once we get enum changes merged in as well
I was thinking commodore
Well yeah but that's still a source level break
Ah right
good ol' craftlegacy fixing it with asm
I've seen worse
Enum changes also have source level breaks that are still backwards compatible so it's a good time to rename that enum properly
I assume like
Any progress updates on this one ?
HIDE_ MISCELLANEOUS
It had it's 2nd birthday recently!
It's older than me
inb4 discord account gets banned
I feel like I will die before I see this change
I wonder what people say when you come late to work
Avoid oncoming traffic
choco late
consider me subscribed
Wonder if 1.20.2 is today
Dunno. Might be!
Wonder if slime man is ready
I wonder what we will get for the configuration phase.
Would be cool if we could change what gets sent to the client from the datapacks with some event for example.
I would really love to remove all tags from blocks client-side. F3 gets cluttered from this for no reason.
yo developers
help me develop a friend list to play rocket league in steam
reward: jree fava lessons
Hi, I have problem with remapping spigot nms
Could not transfer metadata org.spigotmc:minecraft-server:1.20-R0.1-SNAPSHOT/maven-metadata.xml from/to repo (https://repo.mattstudios.me/artifactory/public/): repo.mattstudios.me```
?nms
which java version should i use on nms cuz im using jdk 20 rn and it says: Unsupported class file major version 63
You should still be able to use anything higher than 17
For anything modern class file version = java version + 44
it only shows up while doing remap
changed to java 18
and now
Unsupported class file major version 62
xd
funny
tbh I'd just go with java 17 its LTS though the other versions should work not sure what the issue could be
what's ur server version
idk I don't have a server
java 17 should work with all latest versions though
I think its like 1.18+ or something
im trying to use 1.20.1
yuppers
when i change to java 16 in maven it still says unsp version 63 but when i change to java 18 -> 62, 20 -> 64 so i dont how do i fix this but it s only error while doing remapping
whats your project version
e.g. what version is your project targeting
^ sounds about right
java -version onyour machine
.
is there a way to make an armor stand completely like invisbile idk how to explain
the armor stand is there, but if interaction goes through the stand, it completely ignores the stand
smh
didnt change
anything
changed https://i.imgur.com/3MmJTJ1.png
other
maven;s
plugins
where causing error
thx for help anyway
These dont do anything if their scoreboard is already set correctly
The issue is that the proxy messes up the scoreboard sorting and colors and I want to update it. The only way I can see to do this is a specific packet.
Where spigot 1.20.2 💢
||/j||
interesting
Hm?
was gonna ping you over a weird structure but I'd rather just do it manually tbh
was gonna ask if a <T extends SkyblockStorage> T getStorage(Class<T> storageClass) is viable but it's a disgusting pattern
This has nice type inference. But i dont have the whole picture.
Compare different mappings with this website: https://mappings.cephx.dev
uhh
it'd be part of some "storage registry" I could potentially use for inheritance or sumn
Let's say I want to wipe all data
I'd just get all storages instead of some sort of chain and wipe them
I'm still thinking of the whole database storage thing because I like the way this is going but I can't visualize the end result
I can already see that this is gonna get deep
yeah
we're only at the ~10k LOC mark, no features yet
I'm also wondering if I should allow for handling offline economy data which can cause so many issues
This means you need a centralized point where the economy is synchronized and it forces you to implement your economy
exclusively async
Done that via redis and redis locks.
fuck it, no async economy
vault is so bad
well it's what ppl use
might as well create a view for vault
Resulted in stuff like this
and handle it yourself in async
I'll have an intermediate thing so I can impl my own stuff in other platforms
it's smile's code, go figure

not a fan of how you don't reuse your variables

well
that's the other part of this project
not everyone has redis
best approach
ppl might be running this shit on aternos
so I have to allow support for literally every single setup type
(in this case by segmenting the logic into "simple" and "complex" networks)
In that case i would just hard code your persistence in SQL as most people have access to that.
And use SQLite maybe as fallback (optional)
well some people like mongo more
Your old employer asked me to add S3 support
not everyone is a mysql fan
Yeah
some idiot asked me for specifically postgres support
Thats a bob idea
everybody knows that im a good girl officer
no i wouldnt do a thing like that, that's for sure
SeaweedFS or some BS

LANA IS NOT CRINGE
Instead of redis some people prefer Memcached and use rabbitmq for packets
take that back rn
cringe
we are no longer acquaintances. GOOD DAY.
why are you posting girls in help-development none of us have that shit
bye
it's like going to a toy store and flexing stacks
That... wasnt directed at whoever this gif shows
ohhh
does anyon watch the coding train
Yes, good man
he's so fun to watch
that pfp reminds me of this image
I played around with p5 because of him
language .
I've had ppl offer me 40$/hr to make a private fork
This video is one of the weaker ones because of how pi is defined.
Which made him approximate pi by using pi...
https://www.youtube.com/watch?v=HEfHFsfGXjs
This one is a truly interesting result for a pi approximation
Solution: https://youtu.be/jsYwFizhncE
Even prettier solution: https://youtu.be/brU5yLm9DZM
Help fund future projects: https://www.patreon.com/3blue1brown
An equally valuable form of support is to simply share some of the videos.
Special thanks to these supporters: http://3b1b.co/clacks-thanks
New to this channel? It's all about teaching math ...
I'll also have external addons which are also a bitch
because I need to make it so my database data structure isn't tied to just the "core" data that needs to be loaded
yesss i watched this too
So I can just make an interface for storing profile data, or economy data
If I don't use an intermediate data format I also need to make an impl for each "DAO" in each database format
And now I'm thinking of how I'd init all of that without writing 1000 lines of code for each
i love phyics 😋
I failed 9th grade math
and never paid attention to physics because I was from a very shitty school
and by the time I got to a decent school it was all just.. too hard

I remember blowing up fire extinguishers in physics class
breaking into their storage room and stealing a box of 200 condoms they used for health demo
And i embrace it
and making balloons with that
that school was wild
we caught trees on fire for fun
lmao no I was deathly afraid of my mom
I'd stay extra time in school just waiting for her to go to work
That is very depressing
That sounds really, really bad...
which jar i should use?https://i.imgur.com/BoHuMYb.png
You should try to reflect on that. Imagine if you crashed and took someones life.
Then an impulsive behavior of yours would have ruined your life, the life of your parents
and the life of every family member you took a loved one from. This is something truly unhinged.
gonna hop on a car and learn to drive manual next week
with my brother
still working on all the traffic rules
learned all the lights and stuff, was reading about overtaking a couple days ago
yes
It lets me use it in the project but when I compile it doesn't
<build>
<finalName>${project.name}-${project.version}</finalName>
<defaultGoal>clean install</defaultGoal>
<plugins>
<!-- Compiler Plugin -->
<plugin>
<version>3.8.1</version>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<!-- Shade Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<configuration>
<shadedArtifactAttached>false</shadedArtifactAttached>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>```
it’s pretty easy tbh
the americans blow manual driving out of proportion
Does the NMSAdapter need to be shaded?
my biggest fear is parallel parkin
Wait... What even is the purpose of this NMSAdapter.
How are you compiling
Any reason why you dont want to use the special sources plugin like the rest?
It's 1.9
not 1.19
Oh god
I think you mean 1.20
and which jar do i select there? https://i.imgur.com/YasHMQX.png xD i need shaded one
but with mappers
Use the jar without suffix
will it have mappers etc.?
Yes
I don't understand, aren't you referring to the build?
I just want to make sure you're actually using maven and not Artifacts
I must extend a class that is there
Isn't it because the class is inside another class and that's why it doesn't detect it? Because the others do work.

wrong chat
guys how can i shadow a dependency from a jar file
i mean like a plugin jar file
im using wordledit as dependency and its shouting at me to dont include it
in the jar
change implementation to compileOnly
You can install jars in your local maven repository via a mvn command and then reference this jar in your pom like other dependencies
im using maven
so why did you say shadow
<scope>provided</scope>
shadow is gradle, shade is maven, but ^^
Ok this is completely different. Dont shadow worldedit. You need to actually install it on your server.
i do have it on server
but the api is included in my plugins jar
right
Make sure to set the scope to what shadow posted
im used to use gradle alot, this is one of few times i actually use maven - to develop plugins lol
lol
this concept is weird to me, to prefer gradle over maven
can a bukkitRunnable change it's repeat frequency?
that's the third argument in it
i think he means if it's possible to change it while its running
u can use recursion for that
i don't think so no
Just schedule a new task
make your runnable know how many ticks it passes
use modulus and a counter
and use % to do it
wait
im a fuckin idiot
i forgot bukkitScheduler already has a delay
yes
my plugins have just a task
and it's all perpetuates and reduced with modulus
where needed
I don't understand. How to rotate a direction by a rotation XYZ. I tried the following, but it gives wrong results:
// rotation XYZ angles
val rotation = Vector3f(Math.toRadians(15.0).toFloat(), Math.toRadians(15.0).toFloat(), 0f)
// create quaternion with applied rotation XYZ (joml)
val quaternion = Quaternionf().rotationXYZ(rotation.x, rotation.y, rotation.z).conjugate()
// apply rotation to player facing direction
val finalDirection = player.eyeLocation.direction.toVector3f().rotate(quaternion)
isn't rotateAroundAxis a thing?
I believe so

necessary cuz im using this in a runnable. Do i need to add 1?
int start = 0, end = list.size();
//A
for(;start < end; start ++)
//B
for(;start +1 < end; start ++)
tldr i'm iterating over a list with a runnable to get one 'step' per runnable tick
wtf you doin
just do a while loop in this case
do-while if you want the block to run before the condition (runs once guaranteed)
then just add 1 on your runnable
for animation I just have a tick method that accounts for FPS
Is there any plugin for Intelji that helps with null checks and security in general?
if(null) return
if you care that much about design and code quality I'd start using Sonarlint
it's picky
new BukkitRunnable() {
int current = 0;
int end = shapes.size();
@Override
public void run() {
shapes.get(current++).project();
if(current +1 == end) cancel();
}
};
```dis fine?
I mean remind or suggest so that if I forget to check for null then intelji will prompt
are you trying to recreate Hypixel SkyBlock?
uhh
Not exactly but somewhat
remove the +1
The idea is to make a whole modular system so ppl can buy like 30$ worth of addons and recreate their own version of it
qq how much slower is a geq check compared to a eq check?
tf is a geq
= vs ==
planning on hiring some dude to make a website to configure it online and import stuff
symbol keys hard to hit
if(current + 1 >= end) {
cancel();
return;
}
```thats not it im trying to be smart
case the list is empty
I would recreate the entire Hypixel SkyBlock and sell it for $1000 per purchase. Or even more, depending on how far the project goes
I'm not copying the thing

The idea is to make the core for skyblock projects of any dimension
Full sharding support, proxy matchmaking etc
because it's made by me, that's why
I want to segment the core into modules so that ppl only have the features they want
So if someone wants raw skyblock they have it with the base experience
wouldnt this desync server speed and animation speed?
not quite
if fps is over 20 it just renders multiple frames in one tick
he sometimes makes mistakes or goes overboard with improvements
so having them run on a different clock wouldnt really work
it all runs on the server clock but ye
well
Listen to it
some things are stupid
How does it work? What does Vector axis represent? Is it like Vector(1, 0, 0) for example will rotate angle around the x axis?
yes
⬅️
wtf is this going on about
sure the associate method is inherited but I can't just pass context
Ok thanks alot @echo basalt this is very helpful 🙂
wdym
finally someone that'll use it
a couple different "infractions" are fine but blatantly ignoring it is not
@worldly ingot 1.20.2 broke sqlite in spigot
Where is Ticket?
Why dont you use the primary key for your filter?
ticket for what
it doesnt like generating keys
For Reseling Plugins
email support
It’s just that this plugin is annoying with its warnings, or rather with colors, especially when the plugin has just started to be designed
Thx
Again… HUH? need more context
y'know
I really ignore these warnings and the thought is lost from my head like the whole plan
or a full stacktrace from coll: https://paste.md-5.net/kifipavadi.md
then you prob got design flaws
fun thing
here's a banger stacktrace I had to diagnose yesterday
no errors on 1.20.1, errors on 1.20.2 with the sqlite update
how can i make those show up
Open the report
and just hold the right arrow key to open up the whole tree
and if I uncheck the boxes, these changes are saved forever and are distributed to other developments
you fix it
Guy Reseling Plugins 💀
email support
I know
nope
it legit scans your code and marks them as warnings
can you force a player to interact with their item serverside without just manually calling the serverbound packet
these I'd prob get rid of
what can u do with my sql
store stuff
when? on build?
when you codin
👍
but I just check the report once in a while
Can confirm couldn't be happier about storage
yes, but that’s not the problem, the problem is that I haven’t fully written the plugin yet, the code hasn’t been improved, etc., and these colors are already getting in the way
when I have nothing else to do
is this a plugin for IJ?
yes