#dev-general
1 messages · Page 31 of 1
i believe the player's inventory types are CRAFTING and PLAYER
also CREATIVE too
most gui plugins that exist like deluxemenus just outright prevent all item movement in menus including player inventory for the exact reasons of this is a pain in the arse and can cause items to get stuck in the other inventory
either deletion or duplication of items
yes but if the player spams, the cancel event can be "bypass"
another question, I noticed that pressing a key such as &,é," (which is a shortcut to move the item under the mouse to location 1,2,3 etc. on my plugin that is considered as a click and therefore allows you to give the item in the inventory (not really because if you disconnect/reconnect you no longer have it)
but on other servers it is not considered a click. They use another event?
that comes under NUMBER_KEY afaik?
what? what is numer_key?
number_slot?
like right/left click?
well yeah they come under clicktype aswell
what event use deluxe menu for click inventory?
InventoryClickEvent most likely
for example with deluxe menu they are not taken into account
yes
but suddenly, why, when I press my & it is considered a click while deluxe menu is not, it is possible that this is no longer the case?
so your clicking 7?
thats probably because they dont use all the click types for their commands
tho the generic click command would probably account for it
if you really want to see what dm does just open it with recaf or jdgui or smth
Ah ok, and how can I fix it?
if I recover the type of click it will be right click, or left click?
itll be whatever event.getClick says it is
he'll probably say it's a left click
so with this event there is no way not to have this problem?
well just print to console or to yourself the result of e.getClick.name() and find out
okay i try
well if you code it properly then you wont have any issues with it
make sure you using getClickedInventory and not just getInventory
I think that allowing to move one inventory and not the other in a gui can be dangerous so I will avoidI prefer to avoid having duplication bugs
if an inventory doesnt require you to put items into the top inventory then the bottom once should just not allow for movement of items just to prevent any cases of possible loss or duplication of items
ah yes the NUMBER_KEY the system.out.println(e.getClick().name()); so i can block NumberKey
every click will have a clicktype
I was afraid it would be considered a basic left click
well theres no point in doing that
might aswell have all clicks having their own type
how?
well spigot already does that
declaration: package: org.bukkit.event.inventory, enum: ClickType
the client can for example send the server a "potato" click
oh no i misunderstood that
but so when the click event is called, I check if it's a NUMBER_KEY and if so I return as its no longer a problem (actually it was mainly a problem of desynchronization of the client's inventory)
also make sure to use a switch statement for clicktypes instead of a long if statement
what's wrong with an if?
well instead of
if(e.getClick() == ClickType.NUMBER_KEY || e.getClick() == ClickType.SHIFT_LEFT || ...)
you can do
switch(e.getClick) {
case NUMBER_KEY,SHIFT_LEFT -> e.setCancelled(true);
}
more so you dont just repeat yourself constantly
ok ok ok (so deluxe menu blocks key clicks) thank you for your help anyway (you're the only person I found who knew about it)
deluxe menus blocks clicks from both inventorys
if you cancel the event it prevents the click from modifying the inventory
it just blocks every click of every clicktype
yes, but even with the 2 inventories block if I don't lock the keys and it's a button that closes the menu, when closing, it won't cancel the event and for the client he will see the block in her hand
which is probably a ghost item
tho ghost items show up more in creative
or on older versions
yes because for the server, the client does not have this item and if he reconnects he will no longer see it
thats what a ghost item is
which you can usually fix by calling Player.updateInventory()
Any recommendations on command annotation frameworks?
Was looking into ACF but it apparently doesn't support changing certain things yet.
Triumph-Cmds isn't prod ready either
ah also, despite the cancel event, I noticed that by spamming clicks (when we have the bottom inventory activated)
we can lose items by placing them at the top, it's because of the double click?
DOUBLE_CLICK is also a clicktype
what do you need in it?
like what doesnt acf support changing
dn
What's your opinions on java 21 removing the requirement for class declaration?
Nice
is it only for the main class or something?
thanks
it looks pretty good - i wonder if IDEs will transition to auto-generating default programs like hello world with unnamed classes
I didn't know you could write methods without declaring them public/private xD that's not even new lmao
I dunno, I use kotlin. It's implicitly public unless notated otherwise
That just makes it package private
am i the only person who thinks this posting is stupid
they want a developer who also has to be familiar with configuring plugins (not any specific ones, just configuring)
blockbench
but can also code
and "make entities"
on bukkit
feels vague and silly or am i just stupid
"Knowledge of Blockbench, Server Configuration/Specs and being able to create working entities in Minecraft Java edition" like these feel like completely separated things that are not one job description
preferably, everything
doesnt rly help but you should take a look at https://github.com/Incendo/cloud
ty
its much better than acf and the current stable version of triumph imo
(i havent used it)
will see, triumph is poggers right now, but yeah, maybe not as stable
It should still be fine to use for for the most part
I doubt therell be any huge breqking api changes before it gets merged
Hello, I would like to create my own placeholder, but I don't quite understand, do I do it from my plugin or do I have to make a jar that I put in the placeholder folder?
anyone here uses syncfusion and tried exporting datagrid to pdf and then addint template to that exported pdf? and that it worked? cuz for me it just adds new page and puts template there.
Well they're offering 20/hour
Which would be quite a lot compared to the normal requests in here
you can do either, check the placeholder api tutorial for registering placeholders
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
thanks
not really a plugin dev but i'd like to know something about:
in some plugins, directly editing the config and not properly typing the correct amount of ' symbols break the yml file
so when you enter it in their ingame editor, the proper placement of ' symbols are added to the config
what is that called? pls ping if you people know
it's for a specific purpose and mostly convenience mostly for myself when converting super long command lines to text-that-dont-break-yml-files
what is "that"?
i should retype my explanation
Quotes around values (either single or double) are required when the value starts with some special characters suck as < & { and others, there's probably other cases when quotes are required
here's a command
{CustomName:'{"text":"%math_0_(%bow_force%)%"}'}
i'm using ExecutableItems and when i put it in the ingame editor, it becomes
'{CustomName:''{"text":"%math_0_(%bow_force%)%"}''}'
placing the ' symbols correctly to not break the yml file
so i was wondering what method is that called
or is there already a website dedicated to positioning ' symbols?
'' is escaping, used when the string has ' around it
this will probably help https://www.tutorialspoint.com/yaml/yaml_basics.htm
mmm
i'll just type something out and make some command converter that positions 2 ' start to finish and multiply existing ' symbols by 2
actually docs are better
i'm going to read it properly bc i just tested something on a smaller scale and it didn't read it properly
anyway ty for referring me to the docs
what type of plugin?
i want to add cross-server support for my own plugin
cool, still didn't answer my question
a staff plugin xd
I want that, for example, users can be typed on other servers and so on
Well depending on what proxy you use, there are several ways of doing this, although usually plugin channels are used (or whatever they are called)
I plan to do it with bungee
which ways are?
why bungee? 💀
at least use waterfall
and channels are one of them
you can also use redis
sockets
several options
oh, I thought that inside the bungee waterfall would fit and all that
sockets is a good choice?
Up to you, usually a proxy plugin is used or plugin messaging channels
what do you mean with plugin messaging channels?
are you familiar with bukkit?
yep
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
should cover most if not all of it
but that i need to add to the spigot plugin? or i need to create another plugin for bungee?
only on the spigot plugin, it sends a message to the bungee and bungee redirects it to the correct server
then you just gotta receive it and handle it however you wish
also, recommend using paper
yes, im using paper
then use the paper-api and pog
what is pog
dies
Is the pog champ
is not used in the Hispanic community 
ah
race doesnt matter when it comes to pog, usually its a gamer speak term you might start using if you watch alot of streamers either their videos or their streams
I think they meant that the community doesn't use pog like the community you're in does.
also pog is more an english term aswell, so ig if you dont speak english commonly it doesnt get used idk
maybe im just chronically online
True
if anyone that doesn't have it, you can use templates when generating getters and/or setters and I made a simple template for Paper style methods if anyone needs it:
Getter:
#if($field.modifierStatic)
static ##
#end
$field.type ${field.name}() {
return $field.name;
}
Setter:
#set($paramName = $helper.getParamName($field, $project))
#if($field.modifierStatic)
static ##
#end
void ${field.name}($field.type $paramName) {
#if ($field.name == $paramName)
#if (!$field.modifierStatic)
this.##
#else
$classname.##
#end
#end
$field.name = $paramName;
}
what is this?
im confused 🥲
ohhh is this for alt + insert?
yes
with these templates, instead of generating the typical getters and setters, it will generate paper like methods, aka coolField() and coolField(String very)
aka slightly better/slightly worse accessors
Better because they ruin kotlin compatibility and have shorter names
Worse because uhh uhhhhh yeah
There is no time to wait! Ask your question @zinc egret!
Does anyone know why Intellij complains about classes not being able to access other classes but the plugin compiles and runs fine?
because its wrong probably

try File -> Repair IDE
¯_(ツ)_/¯
nicee
What world generator do you guys prefer (Plugin)
Minecraft 1.17+. It is just amazing.
CleanroomGenerator
I just use it to create a void world :))
Dkim do animals spawn in Generated worlds/
@forest pecan Scammed me
Perfect lets open
a Ticket
Scammed me,
Jezus.
I'm happy there many freelancers here ive payed and did a good job instead of you 😉
You asked for placement
Trying to earn some quick money, not with me.
Then you deleted
I have to go sleep, tomorrow I open ticket
No time for you i swear ...
#1124931521585881098 message
A mod cannot do this
You need some sort of server wrapper
For ex if the server crashes, then the mod will be crashed as well
@glacial barn
Can he even see this channel?
Ya
What is the lock for then?
either or
Idk
Gonna move to #off-topic lol
Hello, does anyone know what the variable to place the capacity bar of a server is like?
you mind posting a picture of what you mean?
to imgur
i wonder if its worth looking into some online math courses
Hello, does anyone know what the variable to place the capacity bar of a server is like? https://imgur.com/sB4V0cQ
Hello, does anyone know what the variable to place the capacity bar of a server is like?https://imgur.com/sB4V0cQ
dont crosspost
Hello, does anyone know what the variable to place the capacity bar of a server is like?
.....
Hello, does anyone know what the variable to place the capacity bar of a server is like?
No
Idk 😦
yes
no
maybe so
Hi ivan!
i shhed
impressive
so im working on a gui library for paper and i want some feedback so like give some pls 🙏
Source code: https://github.com/Sparky983/vision-gui
Documentation for latest snapshot (use this not whats referenced in the github because thats for the previous release): https://vision.sparky983.me/~/changes/XRks7UB6EWpVrg5fbkIv/
if it isnt better than triumphgui then me not using xd
but will check it
Hmm, from the quick look to the docs, it looks quite solid, although not so many features are added. But from what is added, I like how its structured.
what features are you looking for
default ones, an easy way to fill guis, paginated guis, etc
Also, no way to handle the close event and open
default whats?
would a Gui.fill(Button) method be enough for an "easy way to fill guis"?
well would setting buttons after override it?
yes
Then yes, should work.
and for paginated guis i dont want to cuz i feel like thats up to the user to do, but i am thinking of having some seperate project for stuff like that
triumphgui has it :-:
what would you want to do when it closes cuz i dont rly see a use case
smh
opening other guis, playing sounds, etc, several things you can do
actually i have a use case
for like /freeze menus where they stop you from closing it
Just wondering, why did you make your own ItemType class?
so its not coupled to bukkit
Didn’t you say it’s for Paper though?
Or are you going to expand to other platforms?
yes
you can
look at the example
like this works completely fine and you dont need to call any update method (i should prob document this since its actually useful)
final Button counter = Button.of(ItemType.DIAMOND)
.onClick((click) -> click.clicker().sendMessage(click.button().name()));
scheduler.runTaskTimer(plugin, () -> {
counter.name(Component.text("Counter: " + count.incrementAndGet()));
}, 20, 10);
final Gui gui = Gui.chest()
.title(Component.text("Counter"))
.rows(3)
.button(Slot.of(1, 4), counter)
.build();
vision.open(player, gui);
yeah you should cause I only looked at the docs
tbh, if you add the events thing, fill and paginated guis, might switch from triumph to this
you should start it 😉
wdym lol
star*
Gotta deserve it
lol ok
I assume it wouldn't be wise to use configurate for data storage right?
Noice
smells oddly like triumph-gui
a builder doesn't make it like triumph 😭
ty
RedLibs InventoryGUIs can do all of that.
it literally cant (unless theres some magic im not seeing)
well it has an update method but thats it
It updates automatically
Doesn't need an update method
I don't remember what use case the update method is for.
Oh wait
I forked it and added my own code
I might have added the auto update feature
Idk
💀
Don't listen, it's looking great keep going ;p
There is only so much you can do to make a builder look different lol
And to what point? It's just a builder
to this, Sparky build the library what suites your needs. Then, if others use it - great! If they don’t it doesn’t matter
It seems really nice what you’re building
IMO it’s better to be simple and nice, than abstraction everywhere
that is true, I wouldn't personally use it because of not having the features I need, but otherwise, I would def. use it.
yeah I'm just yokin, just the classname Gui seemed familiar
what the actual frick
2 apis that do the same thing have the same name??? 🤯
lol
no it's not an api it's a library 🤓 ☝️
No, the api is what the library exposed
And the Gui apis are both have the same name
yes, you're building a library, which you interact with by using the provided API 🤓
Bro there isn't any books in here, hardly a library 🤓
Yes but the Gui apis are what have the same name
yes yes
just wondering why didn't you name the class GraphicalUserInterfaceInventory or smt 🥱
need help @eager fern ? xD
what
I put a typo
chill bucko
Somebody knows how to remove prefix FactionsUUID (Faction name) in chat.
im sure factionsuuid support does
are you?
;9 something a bit hecky cancel chat event on highest priority and then just rewrite chat by ur self
Not sure how that faction thing was written
alternatively you could properly configure your plugins
Dev chat no?
dev chat doesn't mean come up with the most stupid ideas
also better thing to do AsyncChatEvent .getHandlerList().unregister(Bukkit.getPluginManager().getPlugin("popfaction”)…
Maybe there some typo it’s via my phone
Also make it soft depend on the popfaction
So it will launch after only+++
Bukkit.shutdown()
If someone wants to raise a players ping when it gets below 20 because "it's bad" and "you never see people below 20 on Hypixel", what do you say?
They also want to change the know back based on ping, higher ping = higher knockback
I asked why, and they said "because Hypixel does it", and I asked if they knew why Hypixel might do it, and they couldn't tell me.
They want to copy something because a successful server did it, not because it improves gameplay (they don't even know how it improves gameplay if it does at all)
I mean if you're getting paid and they aren't listening to you, you might as well do it
There's an argument to be made for degrading a players connection to give the appearance of "good connection"
I think it's unethical and only serves to frustrate the userbase for an overall negative experience.
I don't know the technicals for knock-back in correlation to ping, but that seems like a reasonable request for an equitable PvP experience; assuming that's a focal-point of the server. If not, that seems execssive for avg players.
You really gotta stop doing that dkim 😩
i would agree, but im planing on having providing additional Gui implementations and id like to be able to introduce them without breaking changes
are there any specific abstractions that you think are unnecessary?
ig ItemType
itemjoe
org.bukkit
whole bukkit abstraction is unnecessary. Everything should be handled in packets
Good thing someone invented smth just for you, Minestrom or w/e
damn someone did it before me
isnt everything already just a responce to packets either client server or vice versa?
also i didnt know that bukkit was abstraction
oh yeah, its legit the definition of abstraction
pretty much lol
ngl bukkit and craftbukkit remind me of a clean, organized front end and a backend that can get you tied up in seconds and lost till the end of time
you're not wrong
though with a bit of experience the internals arent too hard
just takes practice
Except that both are classic spaghetti
saying that bukkit api is a clean organized front end is quite an overstatement
well it's quite impressive considering its age and all the changes to minecraft
that's true ig
minestorm is great.
ok
whats minestrom and whats minestorm
i think they mean minestom
probably
yeah minestom
🤣
well the bukkit api classes are pretty clean cut afaict, then you see the messy behind the scenes with their craftbukkit counterparts that sometimes feel like they are held together with chewing gum and duct tape
minestom is just a reimplementation of the minecraft server software using no mojang code, minestorm is a offline mode botting platform usually used to overwhelm offline mode servers or to spam them
no?
tho id assume that both are talking about minestom and just misspelled it
im on 2nd page google and minestorm as in offline mode botter wasnt mentioned anywhere
yeah nots really around anymore afaik
ohhh
its mcstorm
not minestorm
a simple case of minus brain kekw
eh...
the api itself is held together with duct tape
so many things that should have been changed a decade ago and 5 years ago and still haven't
the api has not adapted to how minecraft works today
ig the whole point of the bukkit api being how it is today is probably caused by backwards compatibility
its like they only want to add, never change
if it is added fucked up then it stays fucked up till the end of time
one thing is attempting to preserve backwards compatibility as a pinky promise rather than a guarantee
another thing is literally rewriting the plugins' bytecode to make it compatible with newer versions and trying to not introduce any breaking changes ever because that's considered a cardinal sin
something else that kinda bugs me is how it can take many minor version till a piece of api is added, like with the goat horns
well, the goat horns instument itemmeta wasnt added till 1.19.3 i think
rewriting the plugins' bytecode to make it compatible with newer versions
Where does Bukkit do that?
Whats best RTP plugin?
they each have their charm 😌
some tp you into empty chunks, others take 15 seconds to cook up
you simply cannot go wrong
Perfect thankyou they all the same to edit them? @oblique heath
they are all equally different
🤣
This, this... This is peak engineering!
Why didn't they just keep the old Materials and deprecate them?
just why
so old plugins don't end up using the new materials by accident or smth
this could have worked perfectly okay while maintaining backwards compatibility
If only there was something, like an annotation to mark legacy things
thing is that, they are effectively two separate systems
the legacy one and the """""modern""""" one
mashed into a single one 😃
and they are meant to work completely independently
they could have done it far easily if they renamed the old Material to LegacyMaterial, rewrite the references of old plugins, and keep the "new" Material clean of the legacy crud
any anticheat devs in the chat ;p?
Set<String> EVIL good name
yep
Wrong channel
Wrong channel?
yeah, i would assume #general-plugins would be a better place to ask questions about plugins
tho a plugin with dupes couldnt exactly be classed as best, its basically in the description that best means functions correctly without exploits
I'm just curious if i need a premium one or not.
again, #general-plugins
Or #minecraft tbh
How could I get the latest minecraft version via a web request?
maybe theres something in paper api
hmmm I'd have to do json parsing
is there any other api thing that I can use to get the latest version?
wait
aha
maybe?
aaaaaaaaa it returns html
NEVERMIND
bam
and then I can just regex
actually I could've just regexed paper's api
ok im gonna use https://regex101.com/r/N0Cqtg/1
ah i was looking for a fabric api but couldn't find one 🥲
ty gaby
oh wow this one has snapshots as well
Have you heard of json parsing? 
🥲 I probably should butttttttttttttttttttttt
Why does discord decide to change your pfp randomly lol
It happened before too xD
probably bug with server-specific pfps
I know there is/was a bug where if I ping someone on mobile without nitro it still keeps server profile in notif
too many bugs with server-specific pfps
🥴
Too many bugs on discord
i remember there was a bug ages ago where mobile notifications for messages would be in the language of the user that sent the message, not your language
was very odd
not the actual message content obviously
but i think it was join messages specifically
and theyd be localised in the wrong language
https://repo.papermc.io/repository/maven-releases/org/bukkit/minecraft-server/1.7.10/minecraft-server-1.7.10.jar
why is paper repo hosting mc server jar
🤨
Probably a mirror
Since it gets downloaded when you start the server for the first time to be patched?
Though idk why 1.7.10 🤣
Then idk haha
maybe it's there for some legacy reason
Has anyone used svelte with ts? Does it work nice?
I need a js framework for my bachelor's degree project and I was originally looking at react. Despite its popularity, it is a bit scary for a beginner ngl, with all those useState and such.
Svelte on the other hand looks more beginner friendly.
The thing is, I would LOVE to use TS over JS. While I do like JS for its dynamic structure which makes it a great language for some things, it also makes it a pain in the ass 😵💫
yeah it works pretty nice, you just add lang="ts" to the scripts
honestly, React is not that hard to get into
it looks scary, but Svelte does basically all of that just hidden from you
everything in React is just functions, your props are function parameters
you want to use a state value that changes? you use the useState hook, which gives you a reactive getter and setter
Good point
wahey
class components in react are what's scary
I wouldnt say super but its def nice
i love it man
vue templating is awful imo
and svelte is pretty okay
i just really like composing functions and jsx and everything
it just feels so cozy
yeah i like jsx and components too
and the ecosystem is alr
but its annoying to setup
and chunky
and slow
the ecosystem is like the best part lol
most popular frontend framework in the world by a large margin comes with some perks
it's also a lot better to setup with vite, etc.
and yeah it's kinda slow i'll give you that lol
wait what is the most popular frontend framework in the world
svelte or react?
or does one use the other
react
React
by far lol
isnt vue like only slightly less popular
oh
it's not even close
yeah, but you'd see the same kinda trend anywhere
React is huge and that's one of the best things about it
vue is popular in china i think
React and Vue are the popular ones typically, StackOverflow thing aside
I agree with that, but it was stupid cause the guy didn't even know what the purpose of the knock back thing was. He said he didn't care, and that since Hypixel does it his server has to. I asked if it was to take away the advantage of high ping (which is the reason), and he said it wasn't for anything of that sorts. Idk if he was pulling my tail or what.
Is it possible to download/generate gradlew, gradlew.bat, and gradle-wrapper.jar without a current installation of gradle (via code)?
Currently my idea is to download a 100+ MB gradle installation and run gradle.bat wrapper/./gradle wrapper :/
and what's the problem with that?
it's 120 MB, not 3 GB
and you only need to download it once and run wrapper for other versions too, not just the current installed one
true
bit late to the party, but my combo has always been Svelte + SvelteKit + Vite + tailwind + TS and never had a single issue and its really nice to use. But yeah, if you wanna go with an industry standard, go with react, otherwise Svelte is a good choice.
At some point someone mentioned here in HelpChat an alternative to Vault. It was supposed to be an improvement because it supported multiple economies and stuff but it wasn't as widly addopted. Anyone remember the name? I've only found Reserve which has been discontinued for 3 years now.
maybe this @static zealot https://www.spigotmc.org/resources/the-new-economy.7805/
this is likely it
I've looked at that but it seems to be an economy plugin not an API.
this was it. thanks
yuh
let me know how it is if you end up using it
i've been thinking about using it in some custom plugins
the async support is what i really care about
I'm just thinking of adding support in my GiveAll plugin as I already support Vault. Don't plan to implement an economy or do anything crazy really.
ah okay
if this does become in use I wonder how long it'd take for it to make vault go poof
since both economy plugins and anything that uses the economy would have to adapt to it
It will take a long time. When something is as widly addopted as Vault it is pretty hard to move on. One big reason is unmaintained plugins which are also closed source so no one can do the migration. I mean, it seems like the API has been on Spigot for over a year now and it still seems to be very slowly addopted.
maybe someone could create some sort of bridge so that vault plugins can interact with treasury
Sounds like pain
Does anyone know where I can find those average Minecraft Server artists?
think it was me? xD
but yeah it was treasury
how many screen texts are possible to send at once
i know actionbar is 1 txt , in hand text , title msg
iiis there somethng i'm missing?
boss bar
subtitle too
belongs to title
comes with a bar =/
eh, kinda not kinda
which can be hidden with texture packs
they can be sent independently
i was thinking to make HUD of somethinig using that hecky option via texturepack to display like a water bar
there's a funny bug depending on in what order you send title/title times/subtitle, suddenly one of the two will disappear lol
but i use most of those things often
or it will be "queued" to appear when you send the other, i don't remember
you can combine normal action bar messages with your custom UI though
I think you can listen to packets and append your UI before/after the messages
yeah i can write that
nah i dont need to listen because i send my packets only no 3rd plugins.
so i can just write like an implement
even better
but screen revo woulnt make it broken in one hand?
because im not sure how people did those HUD's
I think as long you don't go too close to the margin, it will look fine
@ocean quartz confirmation?
i will make it like a single picture that will be like X X X (space < ---- > )
so it will be above food bar
and ill have about 20 diff pictures so only 1 symbol is required per a time
apparently it's a "feature", if you send the subtitle only it will not appear until you send the title
It's based on UI scale, so as long as you don't goo further than let's say the icon where the offhand item is, you should be fine
every bug which they cant fix goes into feature lol
what company worked liike this i dont remember
rockstar?
rockstar, ea, bethesda
something about the /title command only being able to show either title or subtitle at a time, so if you wanna show both you need to send the subtitle first, lmao
nah i wont use subttitle or title
because i already use both for somehing else pretty common
ill just stick to action bar
minecraft moment
didn't they fixed like MC-14 in 1.20? 🤣
Nvm it was 180, opened in 2012 https://bugs.mojang.com/browse/MC-180 💀
omg and also this one, the game was broken for 11 years smh, https://bugs.mojang.com/browse/MC-2474
can't you in theory also have a 2nd actionbar? You can send packets of name change in an item in your hand, it will display below the action bar and act as a secondary action bar no?
what is the player is not holding any item
i already said its an option.
like besiide
because i already use it to display something else.
but thanks afonso.
this is cringe af
tony saying thanks is out of this world
it's sent by a packet, doesn't rlly need to have an item
since there is not really an item changing the name
no, not at all
GTA 5 and Sims 4 are both written in c++
but it's foolish to think you can use GTA 5 mods in the sims 4
just because they're written in the same language doesn't mean the modding platform is the same
hmm
still don't get it
lol
thats why I would like to be directed to a place I can hire someone to do that
breh
Minecraft and ARK have very different code
plugins work by modifying that code by either adding, removing, or changing it
But because Minecraft's and ARK's code are very different, even though it's in the same language, you can't assume that they both use the same code
ex if you want to modify the minecraft's Ender dragon... how would that work in ARK?
It's like saying "can I play Fortnite on my toaster? they both work with electricity"
yessssss
we're not too far away from a future like that tbh
Didn't someone do this though lol
was probably with doom
im pretty sure it was done with a fridge
now fridges got i5 and shi
liike wf
wtf
1,8GHz quad core CPU, 2,5GB RAM, 8GB flash storage, Tizen 4.0 operating system. < fridge
easily runs many games
hello, does any1 know any plugin that can help me make custom ores? i tried Custom Ore Generator but it aint working for me and they have like no support, pls help
Hey, I'm looking for some advice on the best way to set up a database and/or if I'm doing something wrong (SQLite).
Basically, I'm storing the layers that certain blocks are on so that when the chunks get loaded, I can load the blocks into memory.
I don't want to store each individual block because that required a lot of memory, and this way each chunk only has around 7 entries to mark the y layers
that blocks are on that I need to store.
Right now I'm using a cached thread pool with 4 threads to read the data from the database every time a chunk loads, and then the locations are located and stored in memory.
A section update packet is then sent to update the blocks that were found.
The issue is that the chunks don't load fast enough to send the data, so sometimes it takes a while for the updated blocks to be sent because the data hasn't been loaded from the database.
This is called for every chunk, but at the moment the entries are empty so it should be irrelevant:https://github.com/HibiscusMC/HMCLeaves/blob/b3f0d124596730b58896773061d0406ff06a86a0/src/main/java/io/github/fisher2911/hmcleaves/data/LeafDatabase.java#L494
This is what loads the y levels in each chunk, each chunk only has ~7 layers at most, and many don't have any:
https://github.com/HibiscusMC/HMCLeaves/blob/42e91615f1e71cdfa7c1b4512932c307147630bf/src/main/java/io/github/fisher2911/hmcleaves/data/LeafDatabase.java#L568
This is where the database methods are called to load the data and then send the packets to the player:
https://github.com/HibiscusMC/HMCLeaves/blob/42e91615f1e71cdfa7c1b4512932c307147630bf/src/main/java/io/github/fisher2911/hmcleaves/listener/WorldAndChunkLoadListener.java#L99
thats a very underrated plugin ngl, thumbs up
i have only checked your third source code (the one that locate data and send packets to player)
I dont really work on sql that much to give professional opinions, but in the third one you are doing the queries multiple times (once to see whether the chunk exist and multiple times in the loadnewchunk/loadchunkfromdatabase
i mean searching for UUIDs plus coordinates should be a huge workload for the sqlite and you may want to reuse the result set and update the values from it instead
so 1. try to reuse the resultset more because redundant search operations wont scale well (i think)
- also you can try preloading chunks in surround regions of the player (configurable radius?) instead of just passively loading the chunk whenever its loaded because search operations may get expensive and slow as i said
oh you seem to be saving data in separate tables and loaded chunks in separate table
thats a lot of search operations
i mean you can just pretty much put everything in one table tho and reuse the same result set
having each table with each block type is also a very heavy load to load from
like you should only have one table to store everything (i think its possible)
and it will be much faster depending how willing you are to optimize it in expense of readability
so 3. you shouldnt be separating different blocks for different tables (readability in expanse of optimization)
try to store everything in one table including even loaded chunks (not even loaded chunks is needed since you are gonna have to go for the actual block anyway if it is found)
block types , block ID and booleans can be achieved by bitmask and thus saving all the 5 extra tables created
like in the block type field, 11011 (first byte is leave, second byte is ageable block) etc
each takes one field as one byte
block ID may take a big int if you worry that 32 bytes integer may not store every block ID for every block type
for the block ID you can do it like
group 32/64 bytes into groups, the first 4-5 bytes for leaves, the next for ageable blocks, etc
so everything including loaded chunks then can be stored in a block
instead of probing 5 tables having to go thru the search operation for same chunk coordinates and block coordinates
thats like 5 times more speed taken
I know its easier said than done it probably sound stupid but thats one way to aggressively optimize your underrated plugin, cuz custom textures trees and glasses would be cool
hey the layer database might also be useless cuz after all you are looping from result set right
Well the problem is I’m not saving default leaf data already in the world because that massively increases the database size, so I need a way to check if the chunk has been loaded
At the moment there are very few if any blocks in those tables
The only data at the moment is mostly from the layers table
Wdym by reuse the result set?
i mean the chunk layers table is pretty much useless if i am to say
cuz you are gonna have to loop over the result set anyway so checking how many layers have the blocks you need isnt really needed
If I don’t use that, I have to loop from y = -64 to the max world height
The default layers are for blocks already in the world not placed by players
i just glanced at your code so i might not understand everything immediately, but i guess you can just add a generated boolean flag to your block record?
i mean all the blocks in the database are pregenerated right, sothat makes no difference cuz you are gonna loop over the pre generated blocks anyway you are not looping by the layer indexes
yeah the plugin is pulling data from 7 tables every time a chunk is loaded
i think thats a very big deal if you want to make sure it loads super fast
but yeah if any of my suggestions too stupid to implement then you might want to just index your database
like index the records by chunk coordinates at least
so the database can pull up the records faster
nvm I might have misunderstood sth
It’s already indexed
It’s a difference of looping over all the blocks in a chunk vs 7 layers in the chunk so it’s pretty big
like dont you have to send all the packets in the result set blocks anyway
whether or not its 1 layer or 255 layers
cool, keep up the great work man im looking forward to a full release
Yes, but the default blocks aren’t in it
I've been looking into having organised colour theme for rarities of items in a GUI.
For Example:
Legendary = Gold
So the items background in the GUI would be Gold.
Does anyone know how to do this with resourcepack and DeluxeMenus.
anyone here ever played around with platformio and has experience with dealing with libraries on it? for me its downloading them but not loading them when i try to build project
Nvm I didn't index it properly lol, thanks for the suggestion
I am working on a docker-compose project where I create a few containers for development and am currently looking for a way to edit the hosts /etc/hosts file to add the containers ip address and hostname for easier access. I couldn't find a way to automatically update the hosts file after the containers started
Texture pack question, is it possible to add a DOESN'T/NOT include nbt.display.Lore.*= in a .properties file with mcPatcher?
Basically a != but for this type of configuration
is the start to a chest shop plugin (objects, data saving system etc) being done in the span of 2 hours decently fast?
i feel like its okay
With what method i can disable all commands for normal players (even though they have permission to use them), and allowing them use only a selective few? I have a plugin MyCommands if that helps. How would I'd like it to work exactly is whenever a player enters the denied command in chat, a custom message would pop up, denying the use of it.
for that you can just listen to the command preprocess event and cancel it whenever needed
D:
[im assuming that wasn't directed at me]
[im hoping]
[please like me]
Huh, which tier are you? Decide woman!
Hey all, trying to set-up a fabric project in a gradle multi-module, I have the following build.gradle.kts (https://gist.github.com/heychazza/050f9dc912b045dc589ac467a7d17030), how can I set it up so remapJar runs after shadowJar, and then remapJar uses shadowjars output
lmao
wouldnt shadowjar strip out the minecraft server jar stuff including craftbukkit,spigot,paper and then have nothing to go off to run remapped jar?
lmao. tiers are so broken. I lost mine completely when I leveled up. had to make cube give it to me manually.
tru
I only know how to make a task run after another and that is to use dependsOn(Task)
in the task you want to run after
Ah eek really? I think in the fabric discord, you've got to do shadowJar -> prepareRemappedJar -> remapJar. Just the loader doesn't like my jar, so feel like i've done something wrong..
tasks.named("shadowJar", ShadowJar::class.java) {
configurations = listOf(project.configurations.runtimeClasspath.get())
relocate("it.unimi", "io.tebex.plugin.libs.fastutil")
relocate("okhttp3", "io.tebex.plugin.libs.okhttp3")
relocate("okio", "io.tebex.plugin.libs.okio")
relocate("dev.dejvokep.boostedyaml", "io.tebex.plugin.libs.boostedyaml")
relocate("org.jetbrains.annotations", "io.tebex.plugin.libs.jetbrains")
relocate("kotlin", "io.tebex.plugin.libs.kotlin")
relocate("com.github.benmanes.caffeine", "io.tebex.plugin.libs.caffeine")
minimize()
}
tasks.prepareRemapJar {
dependsOn("shadowJar")
}
// get shadowjar archive file
var shadowJar = tasks.shadowJar.get()
tasks.named("remapJar", RemapJarTask::class.java) {
inputFile.set(shadowJar.archiveFile)
}
Just not sure if this is right with Fabric, as I get:
Caused by: net.fabricmc.loader.api.LanguageAdapterException: Class io.tebex.plugin.TestPlugin cannot be cast to net.fabricmc.api.DedicatedServerModInitializer!
And ah yeah, thanks Blitz
it was an actual question, cus im not sure how shadowjar and remapjar really works under the hood
anyone knows any plugin that renders realistic particles with custom textures
like with texture pack but custom texture in particles
and custom properties
you basically cant answer that lmao
Can someone help me out in #general-plugins
no
Fair
you posted that in the wrong place, #development would work better
Oh shit ok
yes
ngl someone should do a list of all the events not working in folia, would save time potentially
might do it idk
Could someone test out the events in PR 129 for Folia?
hi
bumping my question
thats probably because you cant
you cant have custom textures for particles without replacing an already existing particle
he can use ParticleLib as per his requirements
Link?
no longer maintained. any version after 1.19.4 will not be supported! use paper's particlebuilder

i don't see anything about custom textures, spawning particles for a block/item is not a novelty tho
I thought they added some item particles, can you not supply your own item with meta and everything?
block_marker
welp looks like it accepts only a type, huh?
yes, it's for block types
yeah rip
so you'd need to replace the texture for the whole base block
or, you know, go server&client modded
I wonder how this looks like
probably the item break particles?
yeah
Eating, thrown eggs, splash potions, eyes of ender, breaking tools.
F, I didn't see breaking tools, though I wonder if it does anything for other items that are not listed
you could use item displays with billboarding or snowballs with custom modeldata and some math to make particles
yeah display entities are probably the most you can get to "display anything"-custom
I'm working on a java project where I need some data from a website. I've tried to scrape it by myself, it worked well, but rn I get blocked by cloudflare. I've found some js lib that kinda does what I need but here comes the problem: I can not combine js with java 🤣
I was thinking about creating some small rest api with a js project that I then use it on the main project. Is there any way I can start the api with java?
This is the js lib I'm talking about https://github.com/dajk/hltv-api, it doesn't do anything special aside from what I do - or well I think it doesn't.
you can combine js with java if you try hard enough
have you learned NOTHING from the js expansion??
Hello, is it possible to have an order recognized in the game? Because with the DeluxeMenu plugin, for example, I have a menu that opens with a /Example command and the game displays it as an unknown command, but it still works
Wrong channel if you are looking for support with DM. #general-plugins
Oh srry
Yo @cerulean ibex is vision ready for prod? I would assume not since from a quick look in the github it looks like you still have several things planned
its should be fine to use
therell just be a chance of some stuff breaking before 1.0.0
bruh
well me forking it and going to mess around with it
see if I implement the fill
its got fill rn
oh, not documented?
not yet
also if ur not use https://vision.sparky983.me/~/changes/XRks7UB6EWpVrg5fbkIv?r=9tPIvtyEx3jZxInsDhf8 for latest docs (:
oki
might do some modifications to add more fill types
like fills around the chest, bottom fill, top fill for example
might be useful?
@cerulean ibex here's the thing, the way you did it only allows for a full inv fill, might need to create a filler class and use that instead?
I'm wondering if anyone knows why
https://paste.helpch.at/
is offline? Or its status?
the website might be down
kind of
I tried some config from essentials
And the server placeholder didnt work 🤷♂️
it is {UNIQUE} or smth like that
EZRanks is not for 1.20?
idk, is it
u can now do
.border(Button.of(ItemType.GRAY_STAINED_GLASS_PANE))
theres also methods for doing only some borders
jd: https://javadoc.jitpack.io/me/sparky983/vision-gui/vision-api/main-v0.1-gca0b100-108/javadoc/me/sparky983/vision/Gui.Builder.html#border(me.sparky983.vision.Button)
also if u wanna use it run gradle with --refresh-depdenencies cuz even though its a snapshot, gradle still caches it for 24h iirc
hmm ok tyty
hey
does anyone want to help me with simple DNS routing in my DMS
it's very confusing to me since im new
im running it through Cloudflare it would be nice to get a tutor
How can I build spigot 1.8 docs with java 9+ to get the new, less ugly, docs format? https://pastes.dev/subZ5ZEFAQ
I remember doing that before and it worked 😦
what's the new docs format?
is not really new, but the format docs from like 1.12 have https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/Event.html
unlike this https://helpch.at/docs/1.8.8/
there gotta be some options on the javadoc task
if anyone knows how to do this please @ me
feel free to code review
https://github.com/Oribuin/EternalChestShop
yeah
just the first thing i saw
not required or bad or anything
i just know from experience a strongly typed dependency management system will be more pleasent to use
probably but within the scope of a silly little side project, thats never really my focus as it essentially functions the same universally
the only thing within that plugin i dont like is the way signs are handled but its so wack
to be honest i could probably create the sign on the blockface that was interacted with and just store the direction instead of that silly checking a 360 degree angle around it
aight haven't had tons of time but I like the simplicity of the main class, no silly uses of static, actual utility functions in utils and clean commands. the structure is also nice as well as many guard clauses and priority definitions in the event handler and beautiful dependency injection.
what could be improved is the constant catching of exceptions, and catching any exception while then just printing its stacktrace. the user will have no idea what happened, so why catch it?
also using the SurpressWarnings annotation for deprecated stuff makes sense, but I personally don't use it since it's pretty much useless.
in my opinion it's pretty good (although i didnt have much time to look through) and well above the Spigot standard, with the project being on GitHub and open source. keep up the good work!
Does anyone know all the font for at codes for a motd? I would like on like mcci
how can i play a sound to everyone on a server so everyone hears it wherever they are? like thunder for example
for (Player player : Bukkit.getOnlinePlayers()) {
// playSound thunder etc...
}
ty, and what would the ingame command be for this in vanilla minecraft? i use a plugin that uses vanilla commands only for some reason
/playsound @a smth smth
there sould be auto completion for that in game
but the command is /playsound iirc
yes, it is
my friend said he didnt hear anything when we tested, he said he only hears it if he is near me
Uhm
they probably use hex codes (idk if they do, haven't played there)
but anyways, here https://htmlcolorcodes.com/minecraft-color-codes/
/execute at @p run playsound entity.creeper.primed hostile @s ^ ^ ^-3 1 0.5
try this
also you can read this https://minecraft.fandom.com/wiki/Commands/playsound
thats only playing the sound for me
that seem to have worked, thanks
if its regular motds try this https://mcchampionship.com/threads/how-to-make-a-cool-motd-for-a-server-guide.423/
anyone mind updating this to 1.19.4+? https://github.com/InventivetalentDev/GlowAPI
i tried doing it myself but i can barely understand the code
imma first take a look at other apis actually
but still, glowapi is super simple to use and i recall having issues with these other apis imma try 
ok yeah as expected they've all got their own sets of issues 🙃
one of them has a discord support server that is literally in a completely different language 😭
Is standard practice to have everything under one listener? Like I have multiple onBlockBreak events right now is it worth my time to try and make it all into one?
unless they interfere with each other logic-vise, then there's no real point to merge them
does anyone know why teams and skript expansions are gone for papi?
cuz skript is ass
sure
does anyone know how to implement like logos into holographic displays and into ranks?
no I dont
PS E:\Project\java\Guilds> gradle build
Task :checkLicenseMain FAILED
FAILURE: Build failed with an exception.
- What went wrong:
Execution failed for task ':checkLicenseMain'.
License violations were found: src\main\kotlin\me\glaremasters\guilds\api\events\challenges\GuildWarPlayerJoinEvent.kt
- Try:
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.2.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD FAILED in 885ms
can someone help me? I cloned this project from gitub and tried it with gradle build but it gives me error like this, I looked through the file but I don't see any problem in it? How to fix it? I haven't edited anything yet!
This is a GUILDS project, sorry I didn't mention it in my previous message
it tells you exactly the error
License violations were found: src\main\kotlin\me\glaremasters\guilds\api\events\challenges\GuildWarPlayerJoinEvent.kt
look here
I checked but no error was found
package me.glaremasters.guilds.api.events.challenges
import me.glaremasters.guilds.guild.Guild
import org.bukkit.entity.Player
import org.bukkit.event.Event
import org.bukkit.event.HandlerList
class GuildWarPlayerJoinEvent(val challenger: Guild, val defender: Guild, val player: Player, val side: String): Event() {
override fun getHandlers(): HandlerList {
return handlerList
}
companion object {
@JvmStatic
val handlerList = HandlerList()
}
}
this is what i see in it @@
when you check another file, you'll see the license header
it's missing this part, hence the error.
the file it's telling you, does not have it.
ii have just seen an server where it says
it can process everything at 40TPS
how its possible iif sofwtare works 20 tps only?
not possible
TPS number can be spoofed, nothing new
also, you CANT process everything at 40 TPS, but I've heard it's possible? (need fact check, might also be a false claim) to modify the server so it runs movement or combat stuff to run twice as fast, but that's about it. changing EVERYTHING would break EVERYTHING
not talking about he spoofing it
but claiming there such a thing in his duel server
well Im not an expert to tell whether it is really possible or not, some say it's somewhat possible with heavily modified server jar, some say its a load of bullcrap
Prob just false advert
Most things except for client side things like player move etc would move 2x as fast
Btw u can also do gradle licenseFormat
To automatically apply all licenses
thanks
TPS catch-up is a thing but 40 is most certainly not something you'll see because of it lol
Also doesn't the server do some player movement handling too?
Since for ex if someone is running on 20 fps, their player still moves smoothly
Idk
So it might be funky with player movement
think the client sends a packet saying the player is moving forward, and the server moves the player until it's told to stop?
function getValue(material){
var text;
if (material == ""){
text = "ID EMPTY";
} else {
let material16List = ["ender_pearl", "snow_ball", "egg", "bucket"];
// how can i add to list material contains `banner`
if (material16List.includes(material)){
if (args[0] == "nhan") text = "16";
if (args[0] == "tong") text = "576";
} else {
if (args[0] == "nhan") text = "64";
if (args[0] == "tong") text = "2304";
}
}
return text;
}
getValue("%deluxemenus_meta_deluxeShop-item_STRING%");
// %deluxemenus_meta_deluxeShop-item_STRING% can be 1 of these: love_banner zombie_banner white_banner
what @snow oriole ?
if includes doesn't work, try indexOf(material) !== -1 - index -1 means it is not present in the array
is just want to replace these thing https://prnt.sc/qgA2dPiuji5U
Im confused by what you are asking
anyone? 
original maintainer seems to have abandoned it
DIY
i tried doing it myself but i can barely understand the code
oh wait i think i found a fork that looks promising: https://github.com/WarpedRealm/WarpedGlowAPI
eGlow
try it
but whats the error you getting? xd
@quartz lake check DM's please.
correct
its not about fps u can be on less fps and move smoothly
i requires to rewrite the server software?
it*
more tps the better for some of my tasks
anyone who is intersted its what u need to accses and change ```MinecraftServer.class.getDeclaredField( "nextTick" );
changing this field will allow u more TPS how ever i would still reccomend rewriiting a.l and some regular stuff towards /2 (so it will work same)
(/2 in scenario where u gonna put 40tps as limit)
what
When would you ever need 40 tps lmao
Do you like playing your game twice as fast 😂 😂 /s
Probs for plant/crop growth but you can use randomTickSpeed for that.
nah ist not about plants or corps tbh
its about other tasks u can use it in
for example fixing interact event which executs only every 4 ticks
make it execute every tick instead
oh nah
its client packet
nvm
hmmm
Was gonna say its not based on ticks lol
Check the source code of gun plugins to see how they do it.
i did it already...
without checking their code
i just made an custom class event "HoldingInteract" when ever player returns interact twice in in 8 ticks so it will run event every tick later.
till player returns once false.
👍
from negative resource pack
"split" and "nosplit" concepts removed as space providers are "nosplit" only.
Introducing the newlayer character that fixes certain rendering problems that were previously solved with the "split" mode. Just add it wherever you want to create a new layer and everything after will render on top.
so is split supported or not?
yeah
split is a positive number in the space provider and nosplit is a any negative number
Also something i usually not mention but often those plugins that are opensource are written like shit
u literally have to do a whole research to find an function / class to see how it was done
that doesn't mean they are written like shit, that means you're lacking skill
someone who can help me a little with voteparty
i need to enable the bedrock support
because bedrock votes are not giving items ingame
- Wrong channel
- #spigot-linking
uh you can ask from the support of that plugin
Could someone tell me how to setup the basics of a placeholder expansion without a plugin? I'm using IntelliJ.
And how I have to setup the project structure? I should do it like a paper plugin?
yeah probably
I mean almost every plugin on spigot are open source
And they are typically open source when they are large scale or sth idk
The best plugins are usually open source for better bug tracking unless it’s almost premium and solely proprietary plugins like mythicmob?
dude never seen the code of closed source plugins 💀
🤣
LibertyBans is also cool tbh
Thx bro so much for your help so far
Ok my head is doing stuffs to me again
@obtuse gale You're welcome
If anyone is in the need of a developer for any type of server feel free to dm me for my portfolio aswell as prices and previous projects.
#1124931524001804338 is the channel for this
Does anyone know why IntelliJ can't find dependencies from separate gradle modules in a mult-module project?
It was working before, but after I tried pulling from git it stopped working, I tried invalidating caches and restarting IJ.
The project builds fine, it's just IntelliJ not wanting to find the dependencies for some reason
https://github.com/Fisher2911/FisherLib
This has all the build.gradle files for the different modules if you need to see those
Ok so I think I figured it out, I have to delete this module, but it won't let me for some reason
Nothing happens when I click the minus symbol, and I don't see a folder in IntelliJ for it
what was wrong ?
const main = [ {
prefix: "&cMainPrefix",
mItem: "something here...",
mMoney: "something here..."
} ];
function callValue(){
var value = args[0];
if (value == "prefix") return main.find().prefix;
if (value == "item") return main.find().mItem;
if (value == "money") return main.find().mItem;
}
callValue();
No args are input
this is for javascript expansion
when i call it, it give an error https://paste.helpch.at/hequwoxoqa.rb
I fixed it somehow, I think removing the source root in main and test is what did it
If you use callValue() you aren't suplying any arguments. Also the method has no parameters
%javascript_test_preifx% -> prefix is value
maybe it not support placeholder inside, i put some placeholder inside mItem and mMoney
I have never used javascript so I can't say for certain. In java however... you're missing what I listed above.
#placeholder-api try asking here @snow oriole
Ok new issue now, I'm trying to publish on Jitpack but it's not detecting the Java version, I had this issue before and it was solved by setting the toolchain version but that doesn't seem to be working here.
Error -> https://paste.helpch.at/faluworodo.yaml
I thought I did that, did I do it wrong?



