#help-development
1 messages · Page 1253 of 1
yeah try and tell, cuz i could only reproduce the issue on offline mode
maybe it could persist on online so lmk
why are those two different
one is the committer, the other is the author
no like the pfp
They are the commiter and it doesn't match their pfp
yea the problem is on offline mode i think
Did you commit using the wrong email
maybe wrong username
other than that idk
im confused
is that not your account?
wrong git configuration
that is my pfp yes but it was years ago
is it the same email as the one from the stash account?
yeah
Did you commit with that username
prolly some windows credentials fuckery
ah but the username is different now
no
yeah, most likely wrong git configuration
my stash account is radstevee
Not you rad
then don't ping reply 😭
i only have 1 stash account
idk how i could have two usernames
I forgot to turn it off 😭
so, orang3l, did you change the username?
nop
Name in git
oh how to check
javier where are you from again
I can't use youtube's angry emoji here but I would if I could
kekw
a config?
Try the global config with --global
empty
it is most likely the windows credentials
not sure then, maybe your email got linked to that old username at some point and now it is just linked to that
I am not sure I am understanding the issue here
ah, the bitbucket uses gravatar so maybe it's something related to that?
the commit author has a different pfp than the one they use in stash
and after we checked, the only difference is that the commit author has a different username for whatever reason
that isn't what I am seeing
see
wait tf the username is correct but pfp is wrong
this is cursed look
It is quite possible that you uploaded an avatar and then changed it to use gravatar
the displayed username is right probably because your email is linked to that account
the user id is different for whatever reason, though
you probably triggered some kind of bug in bitbucket lol
yeah
@sly topaz see dm
was boiman123__ even your username at any point for that to happen tho
so they have two stash accounts?
they don't, bitbucket just duplicated them
ok, so you have 2 accounts?
?support
then what might have happened is at some point you made a commit using the wrong user.name and it was accepted
and thus linked to your account
a user.name and user.email isn't necessary to upload a commit as that is handled through login credentials. So technically you can author/commit as one user, upload as another. But when you do this depending on the settings of the git hosting it will autolink accounts in this manner
Ok yea i use login cred
anyways, to get rid of the second auto created account you would need md5 to do that
How?The method getLine(int) from the type Sign is deprecated
Anyway I can get the lines on the sign?
I just need wireless redstone, that is my goal
what does wireless redstone have to do with signs
I wrote the exact same message 💀
great minds think alike * hats fedora *
This video is on
Minecraft Bukkit Plugin - Wireless Redstone - Remote redstone with signs
Download : http://dev.bukkit.org/server-mods/wireless-redstone/
Commands
WRt = Transmitter
WRr= Receiver
Thanks for watching, if this video has helped
Please remember to rate, subscribe and comment
This is old but it shows why signs are connected
the gif star is in the way
in germany we say "two idiots, one thought" (no, this is not a joke)
that is a 12 year old bukkit video lmao
I just said its old but it does show what I trying to do with the signs
you can connect it with anything really, not necessarily signs
weird way to say it
I am aware, I just find amusing how old it is
well it's technically "two dumb people, one thought" but it sounds a bit bad in english
that's funny, we use both sayings in spanish
Like this for a example?``` public ItemStack getItem() {
ItemStack item = new ItemStack(Material.NOTE_BLOCK); ItemMeta meta = item.getItemMeta();
DataContainer container = new DataContainer(meta);
meta.setDisplayName(ChatColor.AQUA+"Wireless Redstone"); meta.addItemFlags(ItemFlag.HIDE_ENCHANTS, ItemFlag.HIDE_ATTRIBUTES);
meta.addEnchant(Enchantment.LURE, 1, true);
container.stringSet("itemID","wirelessRedstone");
item.setItemMeta(meta); return item;
}```
It will still work?
is DataContainer a class of yours? Does it handle PDC or something?
They are
also, you can have the enchantment glint without an enchantment nowadays
ofc they are 💀
I wanted to give the benefit of the doubt, gpt is usually better than this lol
Yes, its a class but someone said that it can be used on anything either than signs. So I just need help as to what that comment meant
being worse than gpt is hard
None of that code has anything to do with signs
lol
yeah im kinda glad there was no gpt few years ago when i started learing programming fr 💀
i would have abused it totally
not that i don't abuse it now
But this one does``` @EventHandler
public void onBlockPlace(BlockPlaceEvent event) {
Player player = event.getPlayer(); Block block = event.getBlock();
if( wrLib.isSign(block) ) {
Sign sign = ((Sign) block.getBlockData());
player.sendMessage("You wrote : "+sign.getLine(0));
event.setCancelled(true);
}
//player.sendMessage("You have placed a block");
}```
I would probably make fun of you if you were using gpt for everything
See the sign.getLine(0)?
i don't fr dw
I am abusing it for algorithms, I'm constantly too tired to be able to learn new ones 😭
ElgarL told you what you need to do
sign.getLine is deprecated because signs have sides now, you have to get the side and only then the line from it
chat gpt cannot create greatness like me 2 years ago (i have improved i swear) https://github.com/orang3i/Gangs/blob/master/src/main/java/com/orang3i/gangs/commands/GangsCommands.java
what the fuck 😭
Thanks
I love abusing GPT to generate boilerplate or code that I would have to repeat (if that makes sense)
Also seems good for generating code (at least in the one case I tried it :D )
lmfao
that is proof that i learned programming by myself
NO ai can make that
I guess people forgot that your ide can handle boilerplate code for you
nah g I learnt by myself and I did NOT make towers of hell 😭
i don't do it anymore
yeah they probably mean more advanced boilerplate
what that is, idk
maybe unit tests?
I am not aware of any kind of boilerplate code that couldn't be saved
Ye I don't really mean this kind
And probably "boilerplate" is not correct term for what I use it for
generate a unit test for the following methods <methods>
you can't really save that always
yeah i use gpt only for making test plugins
I suppose if you want to refer to unit testing as being part of the programming of making something
I guess so?
but unit testing is generally its own thing, or so I think it is
@slim wigeon https://www.spigotmc.org/resources/wirelessredstone-1-20.118121/ this is an updated fork of that plugin in the video
it is open source so if your goal is to make that in your plugin, you can take it as example
that is a lot more code than I'd have expected for a wireless redstone plugin tbh
redstone is deeep
Why does it have a database lmao
I imagined it just casting the blockdata to analogue powerable and triggering some circuits
I assume it is to save the location of the wireless redstone, the plugin comes from pre-PDC
why does it use sql 😭
great minds think alike moment
Well ye, it just seems a bit funnie :D
I'll add a wireless redstone plugin to my list of pet projects
🧠 he thinks like me
it needs to keep track of where the wireless connections are at because if its anything like the old plugin, it has the ability to keep chunks loaded where technically you can use a switch from one side of the world and have it do something on the other side
so, not only does it track the connections, but chunks
a database is great if you want to access that info offline as well, so PDC is not always a good choice, in this case it would've been fine though
im going to proceed to store my gangs database in pdc /s
I am not really a fan of pdc
I don't know about signs now. I cannot make them non-editable
Cancel the interact event on it
Just tried, it did not work
show the code
public void onInteract(PlayerInteractEvent event) {
Player player = event.getPlayer(); Block block = event.getClickedBlock();
if( block.getBlockData() instanceof Sign ) {
event.setCancelled(true);
}
}```
Hello
How I can detect furnace around player?
Here's an example of what I was advised, but I want to see if it can be done more easily
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
public boolean isFurnaceNearby(Player player) {
Block playerBlock = player.getLocation().getBlock();
for (int x = -1; x <= 1; x++) {
for (int y = -1; y <= 1; y++) {
for (int z = -1; z <= 1; z++) {
Block block = playerBlock.getRelative(x, y, z);
if (block.getType() == Material.FURNACE) {
return true;
}
}
}
}
return false;
}
I bet you're somehow checking for the wrong sign type or it should not be block data.
What are you trying to achieve here ?
something like (convert it to java)
fun isFurnaceNearby(player: Player): Boolean {
val block = player.location.block
val faces = arrayOf(
BlockFace.UP, BlockFace.DOWN,
BlockFace.NORTH, BlockFace.SOUTH,
BlockFace.EAST, BlockFace.WEST
)
return faces.any { block.getRelative(it).type == Material.FURNACE }
}
tbh what they have is fine with exception to the fact that I would use World#getType() so that you skip the unnecessary Block allocation
Maybe but that is why I still here because I don't know how this works. Now, I have made 6 plugins so I do know how some of this works. Using instanceof was new and I tried to use it as I don't want to write all these signs
sure
you could use vector too
yep
There are various tags for signs, standing, hanging, all, wall...
Then there ya go :p
I know there is tags for these but what to use with instanceof, I don't know if I getting the correct one by using block.getBlockData()
O_O
Well is there a reason you want to use instanceof instead of the tags?
It looks to me you want to just cancel if it’s a sign
I was thinking I was going that already with instanceof
getBlockData() is going to return you a type to interact with the sign’s block states (e.g. wall face, rotation, glowing, etc.) and getState() is going to return you a type to interact with the block’s NBT data (its text)
Both of those types though are a new allocation when you get it, so if you don’t expressly need that type, you’re better to check if the tag contains the material instead which is a much faster lookup with no allocation
Thanks, that worked
I cannot break the sign now
well here you're checking for any interaction
just check only for the type you need
But you should not need anyone to tell you that...
I don't have high expectations of those that use gpt to do their coding
Chat, I'm really bad at maths, imagine I have
^
|
BBBBB
This vector (B is Block)
How can I find a vector that is 90° to this vector?
there's Vector#rotateAroundX/Y/Z
yeah, the issue is it could be on any face of a block
so I'm trying to figure out how to just get a vector at 90° from a face basically
the second you are in 3 dimensions, that doesn't apply
i mean yeah, 90° in what axis?
there is an infinite amount of vectors that are 0.5pi from a vector in 3d

What is with the top vector
that is the up vector
reference
ig
(0, 1, 0)
and the one pointing to the right is the face I have, and the one pointing down is the rotated vector, am I making sense 😭
i mean you still have two axis to rotate around
Well, you still have the same issue as before yea ^
that vector might also point up
hm
90° could be 90° down or to the left
I need to find something that's parallel along the face I'm on (I know which face I'm on)
I have no idea how to explain this 😭
"something" you can find just
do you really just need something
I don't need a specific direction, it can be any direction
"parallel" to a plane makes no sense
parallel?
isn't that a brand?
if you wanna just find anything, take [1, 1, 1] - [unit vector of your block face direction] and then normalise
I doubt that is actually what you want
but yknow, dunno if you even know what exactly you want 😅
I have face A, and I have a vector pointing directly out of the face V, now I need to find a vector which goes in any direction except the primary direction of V, uhhhhh imagine like
A = UP
V = (0, 1, 0)
I need to find any vector which can have and x or z but a y of 0 in this case
(for future reference, V is called the normal vector of plane A if you need to google or something)
yeah I know about it being called normal and plane I just figured it would be easier to explain if I specified exactly what's happening 😭
@manic delta any updates on the bug?
Not yet, I'm at university for at least 4 more hours
Bro wants to be banned by Mojang
Yea kekew
Yeah I don't think you're gonna get support for something violating the EULA
There are multiple similar plugins on spigot, like vegas
doesnt change the fact its breaking the eula
in which version did spigot drop the version in the package name for nms?
just quit bro
university doesn’t teach you to escape the matrix nor to be a hustler
amazing
Hello friends I have a question. I want to remove gold from generating in the nether world. Is there a way to do this with SpigotAPI?
Custom Chunk Generation?
teach me how to escape the matrix
sry bro but that’s something Lord Tate will have to teach you. I’m just a disciple.
do you care about already generated ores or just new chunks
New chunks
then yeah, a chunk generator should do
Thank you all
either that or do it in the chunk populate event, don't know which one would be more effective
Haha
No problem im glad i helped you well. Dont be scared to ask more !
be scared of me though, I’m 7 foot, trust me
sorry bro dont f*ck me pls i swear i help more.
good boy
Wait wait “I’m glad I helped you” 😭😭😭
nice one
I guess in a way you help everyone
Like Jesus or something
you helped me during my parents divorce
Yes bro im a son
A father
A holy spirit 🔥
one of the most helpful guy on the server
ongawd
I cant stand without helping someone bro
Pls give me discord helped role
Moderators im waiting
so you sit until you do?
I generally drink water seated bro..
if thats what you asking 👇👇
so while sitting you drink water, and before you stand you have to help someone first otherwise you remain seated
thats it bro
makes sense
You got the key
Hi! 👋
I'm trying to "soft" update Minecraft worlds from 1.21.1 to 1.21.4, without having to delete/reset chunks. I came up with a (rather convoluted) solution, but would love to hear if anyone has any better solution or suggestion! 💪
https://www.spigotmc.org/threads/how-to-regenerate-a-chunk-aka-my-quest-to-update-worlds.684815/
what the fuck happened here
that'd be pretty hard considering there's no way to tell which blocks have been manually added/removed unless you have something like coreprotect since the beginning of time
I would personally just change the chunks a little on chunk load, using something like chunky to trigger a chunk load
I do have a good heuristic for that 🤪
I create another world with the NEW version of Minecraft.
I extract ALL blocks that have been added in the new update.
I copy them in the OLD world, only if there is AIR in their position, and if the bottom block matches. It's really effective for new blocks.
My main issue is how to regenerate entire chunks, since world.regenerateChunk has been deprecated. Any idea? 🫠
but what if a player purposefully left air there
like if they made a hole, for example
It may not be that hard. Since differences in world gen can be detected through a couple methods.
oh now that I think about it, you could just generate the same world with the same seed and hope for the best when making a diff
Chunk generation is consistent, finding the difference between the original and the new one would just be a simple checks.
but does that work cross-version tho
It wouldn’t on its own, but if you are just importing stuff from an older version, then it’ll work well enough. Maybe a build is slightly buried or raised, but it shouldn’t cause major problems.
Especially since it’s over minor versions
there are no minor versions in mc anymore tbh, so I wouldn't be so sure
but given the version range here hasn't massively impacted generation, I see what you mean
is there a reason you couldn't do the same thing you are doing for entire chunks
you'd just delete the chunk, then copy over the chunk data
the server doesn't even have to be turned on for that as you could edit the region files directly
a cheap way to do it might just be using the renegerate chunk enough times that it matches with the surrounding terrain
while it is deprecated, that doesn't mean it won't do what it is supposed to be doing
It’s also been deprecated since 1.13 and no replacement has been made yet.
well, rather, no replacement will ever be made
the concept of regenerating chunks just doesn't make a lot of sense
Yea, it’s possible the deprecation is just there to warn people about the usage.
Similar to what Bukkit#getOfflinePlayer(String name)
is
yeah, as long as it isn't marked for removal, it should be fine
Worldedit //regen uses a copy of the world to do it
regenerateChunk is a whole mess yea.
I'd stay away from that as far as possible
I tried using it and it simply doesn't work! 😅
So right now what I'm doing is teleporting the player in a NEW world to "fill in" the original chunks.
And once I have that, I can export the new blocks added in the new version.
This however doesn't import biomes (i.e.: a pale garden won't count as a pale garden biome), and other features like fallen trees, so I know it's a bit of a hack.
My original solution was to dispatch command using a WorldEdit command. But apparently that's way more expensive.
Just generate a copy of the world like worldedit does
And copy over the blocks + biomes
I'm also making sure the bottom block has to be the same.
This would technically only affect NEW blocks (like the "leaf litter" or the "cactus flower"), so it's unlikely to create damage!
WAIT... are you telling me that the way WorldEdit regenerates the world is by keeping A COPY of the orginal chunk??? 😱
That’s how they do it?
Yes
Well I’ll be
How do they make it so fast though? Cause don’t you have to create a world, load the related chunk, copy all the info over, and then remove the temp world?
¯_(ツ)_/¯
I’ve never seen so many red flags
black flags
Hypixel 1.7 factions when
But ur a developer for a 1.7/1.8 server
Which can only mean one thing
Hypixel factions confirmed
will it include tnt canon patches
In the kit system, I create a kit by saying /create (name) and it sets all the items on me as a kit, and the items are given to a player after they die and respawn without any problems. There is no problem with that. The main problem is that when I pick up the lighter in the given item and want to use it, it does not react, there is no animation and I cannot light anything.
What could be the problem?
XD
Don't laugh, tell me the problem 😅
No, there is no protection, nothing happens when you use the lighter, of course if I exit the game and log in again the problem goes away
then it sounds like nbt issue
maybe try to force inventory update after giving a kit
player.updateInventory()
idk
I tried, it didn't work
can you post your code
I think it may be an NBT problem as you said.
?paste
yeah
try to set it to survival
I've been working on it for 2 whole days.
😂
0 understand
Bruh
0 understand i swear
Wait, then how do they do it for chunks which have been generated BEFORE WorldEdit was added to the server as a plugin?
Someone on the forum suggested using World.loadChunk.
My only question is... if loadChunk DOES generate the chunk (when it does not exist), why is regenerateChunk problematic? Because to me, it seems loadChunk could have been used to regenerate chunks!!! I feel there's something I'm missing... 😅
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/World.html#loadChunk(org.bukkit.Chunk)
See https://minecraft.fandom.com/wiki/Chunk_format "PostProcessing"
It contains temporary data for chunks that haven't been generated yet, neighboring generated chunks. That data (most likely) gets wiped once the chunks generates, and since it's gone, it's not easily possible to regenerate it back to it's 100% exact original state.
The #loadChunk method either loads it or generates it if it doesn't exist yet, exactly the same as if a player would move near the chunk
Thanks! Do you know if loadChunk also generates/loads nearby chunks?
I wish the documentation had more descriptions about those methods. As always, the devil is in the details. 🫠
Not sure, but I'd assume not
It's the second generation imo
any1 have a good script to move (tp) an armorstand in forward backward left right directions? (based on armorstand rotation) (paper java)
?whereami
😂 I was just mentioning but ik that the code is very similar I may be using paper but I was mentioning it for the heck of it. I doesn't really make a difference in this case (unless someone comes up with some super special paper only solution 😂 )
didn't know you could disable it. But I use IntelliJ for java. VsCode for anything else
it has never really bothered me tho
other than the fact it uses up line space in my scripts thats anoying
that's why i avoid it, line spacing gets kinda annoying to deal
oh ye
im kinda surprised to find that vscode really works well with c#
no one mentions vscode as main editor for c# but with the recent introduction of new LSP server integrated into roslyn
man it is 
i would even say ditch the visual studio and jetbrains rider altogether for it
for C# I use VisualStudio (C# Unity)
Visual Studio Code is also fire for c#
as far as i've tested
ye
prob I see VSCode as a lightweight version of VisualStudio
yea but VSCode uses Roslyn compiler's internal LSP server which is very good for analysing c# code it seems
oh really
well everything i have in visual studio for c# i have in visual studio code it seems
it probs depend on workflow
well not everything, anyway gtg
autocomplete, documentation, snippets, suggestions, code generation all works
well for winforms yea
debugging stuff ig is still needed for visual studio but afaik there's a way to setup debugging for c# on vscode
is there any way to change those three dot suggestions in vs code
into something more readable
like curly underline in gray?
or yellow like a warning
I am trying to learn how to detect chat messages with plugins but when using AsyncChatEvent it asks me for a component in event.message().contains() but I don't know what that is.
You are using paper
oh, is that paper?
Yes
Contribute to system32developer/SystemCore development by creating an account on GitHub.
Maybe this example can help
oh sorry, I didn't know that.
You can convert components to strings with this
https://github.com/system32developer/SystemCore/blob/master/src%2Fmain%2Fkotlin%2Fcom%2Fsystem32%2FsystemCore%2Futils%2Ftext%2FTextUtil.kt#L72-L74
With that, guide yourself a little, it's Kotlin but convert it to Java with chatgpt or something like that.
thanks
teleport it or use velocity
yeah kotlin 💀
I like it
ik thats what im asking abt
I mean the math behind it
I'll try the event thing in a bit
It depends on how you want to do it
Kotlin is actually good
Why
Imagine you could control it with WASD I want to be able to tell it to move left right forward and backwards based on its direction... I dont need to go in angles just XZ
@jagged thicket what version of spigot should i use
just latest
Get the player input and teleport the armor stand to that direction/movement range
1.21.5?
yeah
I apreciate the help but I dont think you understand
I have to manually start a server
run-task provides all the necessary abstractions to make one's own run extension, it wouldn't be particularly hard to make one for spigot
That's the way to do it
Or it depends, are you doing your own collisions?
Using teleports will cause your armor stand to move through blocks
Applying a velocity to it every tick depending on which input buttons are pressed will let the server take care of collisions
Jumping becomes a little harder
for jumping tp can be used
You'll have to check entity.onGround() and whether space bar is pressed and apply a positive y velocity
And then probably apply the x/z inputs differently if the entity is midair
Dunno man I'm not gonna design your game engine; fuck with it, use your imagination, try things
spigot april fools prank :
💀


hello chat
which of these looks the least autismo
https://paste.md-5.net/ivicamibuv.java
Pattern HEX_PATTERN = Pattern.compile("#[a-f0-9]{6}", Pattern.CASE_INSENSITIVE); btw and i would obv make static instances of the other patterns
if it was me i would jus use the shortest version
as long as it works
dont ask why i forced Pattern.CASE_INSENSITIVE param, i just didnt like how it looked in the expression
hmm
if it was me I'd use the more readable version
(or comment better one of the others)
Yeah i would just use the shortest and write a 2 page essay on how it works
next to it
totally
true
?mappings
Compare different mappings with this website: https://mappings.dev/
in all honesty i just dont want to use regex but i also dont like my lengthy ass method
Pattern.compile is an expensive operation iirc
should store that btw
What's the best way to check on the Spigot side if a other server is currently running and connected to bungeecord?
I might have thought of Redis to temporarily save the status there, but Bungeecord unfortunately does not offer an event as soon as a subserver starts up
Find it on your keyboard, place your finger over it and apply force
How does MCC implement the high-res, dynamic, non-bobbing map/HUD on the top right?
?xy
But the plugin channels probably?
As far as I know they only work if a player is on the server from where the plugin message is sent, that's the problem.
i'd use the shortest but replace the string::format bits with regular concatenation
sure, muh string allocations and whatever but you are already joining it into a string
use a service script
systemctl can check on remote host services
this is the proper method for checking statuses of servers on remote systems. Just because it is MC doesn't mean proper administrations should be avoided or that everything needs to be handled in the server application
Makes sense yes, I'll have a look at it. Thank you :)

How do I display custom skulls in an inventory? Like a youtube head, tiktok head etc in an inventory
(which uploads them so you can use a profile)
Thanks
I’m not entirely sure how minigames these days work, but I currently have a lobby and arena. My arena is a copied schematic and it resets every time and I’m using WE for that operation. I don’t create a new world or anything. Right now, I don’t have a schematic for my lobby either. I just teleport players directly to the location
Should I be creating a new world every time a new minigame start? The issue now is that if people start the game with the same lobby or arena, they get teleported to the same place
how meta is it to replace the chunk files with fresh data?
obv u need to unload said chunks and load them back
there is some sort of an internal region cache iirc so it's hard to make an educated guess on when the data is flushed and it's safe to modify the backing file
beyond actually unloading the world
for your use case, either world or schematic based instancing, where a new copy of the arena (an "instance") is created each time a game or whatnot is started, and each player is teleported to their instance
why does this code copy the item on creative mode? not the item on cursor but the clicked item
public void onInventoryClick(InventoryClickEvent event) {
player.setItemOnCursor(null);
event.setCancelled(true);
}
You answered your question yourself.
Because ✨ Creative Mode ✨
gotta love creative mode
the cursor is completely client sided in creative mode
is this on spigot or paper?
Is there anyway to access the built in graphics, the sprites, without making a resource pack?
define "access"
it's in mojang nms
i don't think either removes it with a patch
I made a pop up using a TextDisplay I would like to use like an ItemDisplay behind it with the actyual ingame graphics for the pop up background
what ingame graphics
hang on let me find the exact path again
i'm following this tutorial and i am getting stuck trying to add a maven goal, it won't let me select the directory
https://www.youtube.com/watch?v=BIUzbT7XVtw&t=184s
you can't put random game textures in display entities
just items and blocks with the respective item and block displays
you can display items - that's what item models are for
yeah but I assume they're looking for something completely different like a particle or something
was just wondering if there was something I was overlooking
oh my message wasn't a response to yours
its in the sprite section
well, is it an item?
no its the graphic the game uses as the background of a tooltip on an item
you can display item tooltips with item displays I believe
the only way i can think of accessing it is with a resourcepack
orly?
what i have now is just a black box with the text colored and formatted
it looks good but the rounded corners would look better 😉
and thats without a resourcepack?
that's just vanilla I believe
i don't recall tooltips being displayable, but that looks like it could be a bunch of black text displays layered together to look like rounded/pixelated corners, and then the item name/lore on top as another text display
ug thats a bunch of entities
maybe i'm wrong; i'd like to know if there's a native way to display tooltips in the game world outside of guis
yea I am trying to stay away from nms, with all the fast updates thast a nightmare
but I do wonder whether they used a resource pack for the background now that I think about it
it's difficult to tell from a lowres video, but that background could be done with text displays as well
yea if i used a resourcepack and slaped the graphic on like a piece of paper i could do it
I think it is just the normal text display background
I just never noticed it can look like a tooltip background
the colours are just text display backgrounds
it does look very faithful to a real tooltip
yea the lil bit of purple around the edges
usually one only sees nametag-looking text displays so that's throwing me off lol
you can get those edges and rounded corners by overlaying 4 text displays with a solid background; 1 black rectangle slightly taller than the display, 1 slightly wider, then a purple one slightly smaller, and then a fourth black one yet a little smaller, to turn the purple rectangle into a rectangular ribbon
and then you shove the text on top of that with a fifth one
it looks way too smooth for there to be 5 text display in one
my bets are it is just a resource pack
then again the video quality could be deceiving me
if you're talking about the movement, that can be done with billboarding
the billboarding rotation is applied before translation offsets, so if you place the entity on top of the player and then offset it away, it will move wherever you look at; clientside, no latency
it is nowhere near as bad as before with mappings being a thing
this is the custom plugin i made so far
you can also do this in 2 dimensions rather than just horizontal billboarding like here, to to create a "hud" element that stays at a fixed position on the screen
the issue is that you have no way of telling how large the player's field of view is so you can't really make an educated decision on where to place it exactly
i've seen it used for hover tooltips on blocks, though, since those are in the middle of the screen
ah, the purple glow is just Display#setGlowColorOverride
gah wrong video lol
neat trick
I wonderif you modify the transformation matrix of the text display, you can get rounded corners with a single entity
affine transformations only, they don't make things round
on the tooltip sprite the lil purple edge is part of the sprite
I mean, of course
but that doesn't mean you can't replicate that with a text display
if you really want to you can read the sprite pixel by pixel and spawn a text display for each one
it would be nice if we could add resourcepack like behavior inside a plugin 😛
april's fools 🤪
oh and now people want plugins that work with bedrock too 
im on a mac and my thumbs are too big to play minecraft on my phone lol
make a geyser plugin that bans bedrock users immediately
lol
does the client do any sort of validation on the name of an entity?
@young knoll i bet you love automatic response selfbots
omg thats a bot!? 🤣
just a selfbot hooked up to an LLM yea
and I thought I had too much free time :p
lmao, who made it?
does it answer if I reply to it
its probably rad's bot
seen a couple of those hanging around in some different servers recently
yeah I definitely made that
do you like tacos
what is that something?
getting freaky real fast
@ivory sleet hey join us in having fun here
man its like the old thing in lpmuds that talked smack all the time
guess it couldn't answer me
Whats the meaning of life?
probably using a shitty free LLM API instead of just deploying one for it, a roast bot could run on a 1060 ti
rofl oh this is fun
isn't jish canadian
he is
probably ain't awake
what is this something you speak of?
@vagrant stratus hey do you like llm selfbots
It's like 1pm he should be awake
I'm old whats llm stand for?
@ancient plank hammer time
bah we made what they call ai now in lpmudfs 20 years ago
now the way the program them is easier now, juest expesnsieve :p
von bon
I forgot how much build tools takes to compile in windows
to what i should check a item.getItemMeta().getItemModel() my itemModel is test1 in the if what i should put? because item.getItemMeta().getItemModel().equals("test1") or "minecraft:test1" doesn't work
it is 8:30pm
build tools is snappy on mac, but then mac runs on a unix kernel
git just sucks balls on windows, it is slow and painful process
also windows defender trying to scan every file doesn't help either
javier i thought you were a linux user
I use multiple PCs thorough the day
item model is just a number that you can then use in your resource pack
not anymore!
^
they added a component to set the item model on an item stack
now its like floats, whatever
orl?
this desktop has windows 11, my main laptop runs bluefin-dx
you can set the model of any item to any item now
the custom model data container now supports more types, but you should still be using the item_model component
can you set the skin?
hm
what if I have two with the same name
then you get a man with a flys head?
nope
so what happens you set the model and it uses the same skin?
still faster than my old laptop kek
tbf I am also watching a video while having ij open
okay this is nice
what is that
two fake players with the same name (16 space characters)
wasn't that always possible
why?
idk, I just didn't know of it
Just ran my nuild tools script: Total Time: 27.190 seconds
there was one that got banned
ok whats the new method for setting a moddle ingame?
i use ||paperweight|| these days instead
ItemMeta#setItemModel or something
i remember using BT script
setItemModel or just use the model data component
i remember piggy sent me a zip of all the server jars lol
using CMD nowadays is pointless for basic situations
so if i made a model that looked like the popup background then i could display it in an itemdisplay
yea, with a resource pack
and a model is just a json file?
you put them in a resource pack
paperweight is fine but no maven support whatsoever, and I realy prefer maven over gradle
with specialsource at least there's an unofficial gradle plugin that works, with paperweight you don't even get that anymore lol
yea I wanna use graphics already in the client i shouldnt have to make a resource pack for that :p
I mean, you aren't modding on the client but on the server
i still use ant :p
so, it is what it is
why do you make yourself suffer
ant autobuilds my jar why change it if it aint broke?
any build system autobuilds jar
so why change if the one i use works?
yes i have to manually change the spi location when i update plugins but tahst like 3 clicks
terr api
there's just no extendability
extend to what?
if whatever framework/platform you want to use provides plugins, like Spigot for example provides specialsource maven plugin
while one could make something similar for ant, nobody ever does
(and also nobody would want to)
so, you're left with a very basic setup in the end, which works for simpler things but at some point if you want to make things that aren't as simple then it just gets in the way
you'd probably have to start writing your own scripts or extensions at some point
to do things that other plugins could do
i try to keep all my plugins within the api so i dont have to do a tone of stuff each update
that's a good mindset to have, but often times one has to delve a little deeper in which it'd be useful if your build system allowed you to as intended
though I guess you could also go the other direction and just use reflection with somthing like reflection-remapper and call it a day
when you ask someone teach me how to use maven, they run away
I mean, there's really very little to teach when it comes to maven, as it is declarative
just learn gradually, you should know both maven and gradle
gradle also is pretty much the same as far as just listing dependencies and using some plugins go, they even are striving to make a full declarative dsl nowadays
gradle has a lot more capabilities with their buildscripts
besides, any component IDE will handle the hard work for you
yeah but that's the part where it gets complicated lol, you actually have to learn the gradle API and its concepts
whereas, for maven, you'll have to write plugins to do even the most minimal complex task
often times it's also just basic fs stuff
I mean, you can vibe-code your way into it, but doing it properly takes sitting down and actually understanding what you're doing, understanding how the different build phases work and where to plug your stuff in your current task-graph
I honestly dislike having to go out of my way to make something custom a lot, hence why I use maven
if I ultimately need something custom, I need to be sure as hell I need it because it's gonna take time I don't want to spend on my build, but on the project I am currently working on
I just can’t do xml because my eyes will hurt
there's maven-polyglot now, it's pretty cool
lol when xml came out we were all making our own script languages it was fun
woah kotlin
i made a custom telemet client that could display images that used my own xml type language
yeah maven kotlin script sounds cursed but hey it is an option lol
https://github.com/takari/polyglot-maven/blob/master/polyglot-kotlin/README.md#kotlin-pom-example honestly doesn't look too horrible
feels inspired by gradle
way more strings there, they could definitely improve that by a ton
yea
ok back to the model topic, so if i make a resource pack with models in it i can apply those to any item now?
yes
yep
just reading pom.kts hurts my brain
and its in the api
the slicedlime example was pretty funny, applying dragon head model to a player head
yes, ItemMeta#setItemModel
did md_5 do this?
there's so much stuff one can do with resource packs nowadays
i mena the api thing is it mojang or is it experimental stuff md_5 added?
i need to pay more attention to change logs
Spigot is an unofficial modding platform like forge or fabric for minecraft servers
md_5 forked Bukkit a long time ago and that is now Spigot
god im old
why the rotation doesn't work?
ItemFrame itemFrame = (ItemFrame) Objects.requireNonNull(event.getRightClicked());
itemFrame.setRotation(90, 180);
Literally nothing in the plugin yet and i am greeted with an error
https://pastebin.com/i9SczPKT
?whereami
so i can't use this server for paper stuff? i thought it was like the same thing
If same thing why different name
so should i leave then?
I mean
The
"I have nothing in the plugin" makes sense since it can't find the basics
is there a way to tell if a player hits escape?
No
ty
how do you get the CommandMap to unregister a command?
do I need to unregister commands and listeners when the plugin is disabled or does the server do that?
The server does it
so I dont need a if(plugin.isEnabled()) in my commands at all
No
so I have my command executor and my listener, i should just set those to null so they wont have a reference to keep them loaded?
Again, the entire classloader is disposed of, you shouldn’t have to do anything
Granted your plugin generally shouldn’t be disabled at runtime anyway
does right rotation somehow increase the scale?
in displays
(or left for that matter)
so when my plugin is disabled onDisabled is called so i can save data and thats the only house cleaning i need to do
yes, but can either make the display look bigger?
it shouldn't right?
Pretty much
when i use itemDisplays of an item with a model, they always looks bigger dunno why
NOOOOO
wtf even is w in this case
"angle"
Just use one of the rotate methods
and for what, using a unit/
And keep in mind it wants values in radians not degrees
I was planning to be able to create custom advancements at runtime. I was planning to use listenerns for like onCraft, OnMine, onTrade, etc. Would it be easier or better todo that or just create them as achivements with NMS?
what do you mean by achievements, and why do you need to create them at runtime
advancements/achievements
I am wanting to be able to create custom "advancements" in game.
you mean an actual advancement tree or just the toast that pops up when you get one
Honestly, I don't need an advancement tree or a toast popup.
I wanted to create a system like I could create an custom advancement to allow [collect, trade, mine, breed, explore]. I was orginally just going to use multiple listeners for each of these events but thought it may be better to just create an advancement does that for you.
you could do that, as long as the criterias in the game fit your needs
if there's an advancement you're thinking of that doesn't quite match a criteria, you could go for a mixed approach and just award them manually whenever an event gets triggered or the player completes certain actions
is there a way I need to push it to minecraft code so it lists it as an advancement
you'll have to learn the format for advancements, it's just a json file with a certain format so it shouldn't be too complicated, unfortunately I don't have a good resource to learn the advancement format, I believe the AdvancementRequirement javadoc link to a post explaining it in detail though
spigot or nms
once you do that, you can just load it with UnsafeValues#loadAdvancement, you may also have to call Server#reloadData
no NMS necessary for it
I plan todo that already.
eh, advancements gui is pretty fancy-looking and you can customize it quite a bit
but if you wish to do your own thing, that's up to you
can u add your own page in that ?
I just transform that data into a new class called 'Challenge' and save it in my database so it loads with custom chalenges i create.
or remove old advancements
you can add your own categories, yeah or at least I remember people doing that
yeah you can
I am not sure what that means
you can do that just fine, minecraft:reload (essentially what Server#reloadData does) isn't the same as bukkit's reload
Ah.
that said, I am unsure of why you would have advancements that are created on the go, sounds rather convoluted to me but I don't really know what you're thinking here
I'd personally just think about it carefully to form a good advancement graph
yeah i cannot think of any situations where you need to add avancements without restarting urgently
My plugin is personal so I don't really care for the advancements tab looks or anything just creating custom advancements.
then just make it with a gui library
I am using a gui library called InvUI makes creating UI easier.
I mean, it isn't so much about the advancements tab but rather that the idea of advancements that are registered on the go sounds flawed by design, but then again I don't exactly know what you're thinking of making
if it is really necessary for it to be that way, then it is probably for the better to not use minecraft's advancement system as that'd just limit your system for no particular reason, and if you're using a resource pack, you can still make your gui look very fancy
So I am creating a Advancement / Challenge Editor (Nothing Fancy or special) All I am using it for is to create custom advancements and editing data like rewards. Thats it
I am not checking abnormal things. I am checking for common things advancements cover.
u can use the minecraft advancements tab for that easily
eh, I wouldn't be so sure, dealing with adding or removing advancements on the go might be a pain in the butt
Yeah, but you can't edit them unless I go into my server go into my config edit values with json look up on wikipedia what is what
Yeah true
I mean, you can't edit them in the GUI, but you can definitely make some kind of in-game editor for advancements
there's no need to expose the json to the user, you can just generate that yourself
I mean I can. I am not intend in removing them I can just block them from being granted.
I am not sure what's stopping you then, I'd just go ahead and try things out, see if there's any blockers when using advancements
loadAdvancements seems to be deprecated
everything in UnsafeValues is deprecated
things in UnsafeValues are often methods which no one came up with a good API design yet, so they're not widely recommended for use
they're very raw access to minecraft features without much thought into them, for the sake of making them accessible in some way
It may require json.
it does require json, yes
you can just output that with Gson
there are some advancement apis out there that abstract that out if you wanna try that route instead
this is the last one I heard about, idk about any new ones out there
It may not work with 1.21.5 plus Its fine I can just create json for it.
I'll just make a wrapper for it
I was looking at ChunkGenerator, but I am still unsure how to I would go about removing gold ore from its generation. I see that you can give the default generator parts that you want it to handle. What would be the best way to achieve my goal of removing gold ore from generating in the Nether?
I want vanilla world generation, that is why I'm wondering if there is a way to do this without messing with the entire generation
Difficult. Data pack with custom world gen probably the easiest to truly remove.
Otherwise just generate and remove gold after it's already there
Does the datapack apply if I add it to a world that has already been loaded and has a few chunks generated?
no, at least I really don't think so
I mean will it continue to generate chunks by the rules of the datapack
So I need to create a new world then
I mean, it's not about the chunks but about the data in the level file
So long you're only removing gold you can keep the chunks probably
me revisiting code i wrote 3 days ago
basicaly
if player exits boats (another one is stil inside boat)
minecraft respawns boat
making it move realy fast
and it kicks pasenger
any idea how the hell i fix it
What did you do to cause that
i exit boat
my anticheat just kicks pasenger
im trying to prevent this
but i ran of ideas
acording to my anticheat player moves 35 blocks per second
is there way to group these 2 people
so when one quits another dont get kicked out?
range check?
or any more sense making aproach?
not using offline mode are you? pretty weird thing
this one suposed to alow hacking, but prevent server from crashing
so it still has all of checks on
(anarchy)
its supposed to allow hacking? Then why is it called an anti-cheat?
I suppose the answer to my question is yes then
which explains the unusual issue with the boat and its speed out of no where lol
seems you got the answer to your question as well 😉
nah
sounds like your anti cheat is too good? xD
its called anticheat because i named pluging wrong in begining. It was created to prevent flying but then i thought this aint fitting anarchy.
I suposed to change its name since i only focused speed check. Also there is too much code to name it anticheat in single class file.
that would create need to separate speed checks with event manager and so on.
ye im trying to make it allow wurst flight
sounds like a bad idea, maybe wurst needs to be improved then to bypass the cheat
does a class object always return the same hash ?
MyClass.class <- same hash always?
uhhh maybe i misnamed that i mean java file
Check it yourself
It takes 5 minutes
We can't be 100% sure
Yes
thank you :)
It iirc just yields the identity hash code, either if thats invoked natively, or through the System java api
it depends
as long as it is invoked by the same hash code implementation yes
that being said, it depends on the hash code implementation being used
alright, thank you guys :)=
i don't think class implements hashcode
so that uses identity hashcode
which don't persist from one application lifecycle to another
and MyClass.class can and will yield a different class object altogether if it's loaded by a different classloader, in which case the hash will also be different
public int hashCode()
Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by HashMap.
The general contract of hashCode is:
Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.
It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)
the javadoc has changed since Java 8 and that last part is no longer present
in any case, Class not implementing it does mean that two foo.Bar.class from different classloaders will yield a different hash code
classes don't really have a choice, they can only override the implementation
but you are correct on the different classloaders thing
declaration: module: java.base, package: java.lang, class: System
for modern java or updated versions this would be the more appropriate method to use
especially if the class overrides hashcode
wdym? you can't override a method of a class that isn't yours so classloaders are not the ones defining the hashcode of the classes they load
since object is what implements hashcode. All classes have it implemented
therefore, all a class can do is override it
yeah, but the classloader is not the one that defines the hash code of a Class
ok and?
not sure on your point
the reason changing classloaders can change the hashcode is because an object class that is the same but from two different classloaders are not the same object
by not implementing hashcode i mean to say that Class doesn't override (that is, implement it and override the superclass's implementation of) hashcode, and so inherits identity hash code from Object
and since identity hash codes are transient they won't "always" be the same; it's tied to the object's lifespan
and no object lives beyond the virtual machine's lifespan
technically it could
but that is beside the point 😛
so the answer depends a lot on the definition of "always"; is the classloader the same? are future application sessions part of the same "always"?
well hashcode is not guaranteed to be unique, just that its the same during the execution of the application given its loaded the same way
e.g. if you have MyClass in a common library shaded into 2 plugins and so loaded by 2 different classloaders, MyClass.class.hashCode() is going to give different numbers for both
well, hash collisions notwithstanding
well, I think I said that just not in that procise way lol
was there a way to force the client to close the player inventory? i know it's clientside but i vaguely remember teleportation or something else causing it to close
i suppose i could open another inventory and then close it immediately 🤡 but maybe there is a cleaner way
Is there not just inventory#close()
declaration: package: org.bukkit.entity, interface: HumanEntity
does that work on the survival inventory? i could tryitandsee but it'll be a few hours before i can get to
the survival inventory is a little bit special in how as far as the server knows, it's always "open" and you can't e.g. cancel it being opened, so closing it might not work either
it probably won’t work
This sounds like the best alternative
i'll see once i can test
hopefully the other inventory won't flicker in too noticeably before being closed
Yes
It even works on the pause menu iirc
nice
very nice
hi sweatty
lol I thought you were being rude, till I looked at his name
I am not sure if you can close the player inventory
since it is technically always opened
well in the modern versions it is, forget which version it was changed in, in that regard
Is this where I can find Devs?
What kind of a server would this be if there wasn't devs o.O
I meant is this the channel
find devs for what purpose?
is there some other meaning of this channel?
Plugins and t packs
for help, sure, for asking them to do shit for you, prolly not
would be pretty weird to be getting development help from non devs
Hire
For money
not here