#development
1 messages · Page 48 of 1
Good that you haven't seen any hentai written by it
Those are worse than your worst nightmare
lmao
Didn't someone use "grandmother" and get the recipe for thermite or some shit lol
ah
waiting
What your waiting for
What should i do?
Get your laptop
for you to get your laptop
did you get it yet
@ me when laptop
go on then
ok
this issue is that those maps arent stateless, wouldnt that be static abuse or sum?
technically yes
but
i think you could probably get away with it in this case without angering too many people
maybe
alternatively turn it into a class
i'd do that
but it's annoying to deal with without guice
juuce
how?
get field
set accessible
set field value
i guess you need to make it non-final first?
no
dont work
🥁
it's most definitely possible
yeah got it to work with unsafe
yeah i had to use unsafe on modern java
You are lying
your mother
SetInt? Since when is that a thing
since forever?
This is why we can’t have nice things
not really sorry, are ya
I have nothing
that's what Sir said, you have them all 
Anyway yeah fields didn’t work for me approximately 1 week ago
i blame you Emily
And i do not forgive you
i took all your accessibility modifiers
why…. why????
but anyway, @spiral prairie it most definitely does work as you can see, can't really help more without any more context and info than "it doesn't work"
i'd like to know more about your situation
i am not trying to help you
i want to know your situation
you already solved your problem so idrc what you do from now on 
Im using sendPacket for my "SendTitle" but for some reason the message only stays for 5 seconds
private void sendTitle(Player player, int fadeIn, int stay, int fadeOut, String title, String subtitle) {
IChatBaseComponent titleComponent = ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', title) + "\"}");
IChatBaseComponent subtitleComponent = ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', subtitle) + "\"}");
PacketPlayOutTitle titlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TITLE, titleComponent, fadeIn, stay, fadeOut);
PacketPlayOutTitle subtitlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.SUBTITLE, subtitleComponent, fadeIn, stay, fadeOut);
CraftPlayer craftPlayer = (CraftPlayer) player;
craftPlayer.getHandle().playerConnection.sendPacket(titlePacket);
craftPlayer.getHandle().playerConnection.sendPacket(subtitlePacket);
}
}
Is there any specific reason why you are using packets?
Can I register a listener using a papi expansion? (in my code)
I mean, I know I can do it by getting papi plugin instance, question is more like
any way to do it using PlaceholderAPI api?
for example: quit event, to remove the player from a map or list, etc
Register https://github.com/PlaceholderAPI/PlaceholderAPI/blob/master/src/main/java/me/clip/placeholderapi/expansion/manager/LocalExpansionManager.java#L286
Unregister https://github.com/PlaceholderAPI/PlaceholderAPI/blob/master/src/main/java/me/clip/placeholderapi/expansion/manager/LocalExpansionManager.java#L319
wow!
that's really good

btw, when is clear() from Cacheable called?
on /papi reload or also?
yeah
beautiful
Yes?

there we go
the better reflection library ill spam everybody with
even has tests
wow
this is so convenient and easy to integrate in my project! i'll be sure to use this
yes it is! the new GPTReflectionLibrary!
only one repo! and one implementation!
and you always know it works!

How does it works
well
Thank you Emi, you're the best

cause the TitleAPI doesn't wnat to be added as "dependency" in my pom ;/
its annoying
Use adventure
wdym ?
game mode adventure?
now the title stopped showing up
;///////////////////
Game mode adventure 🥴
I appreciate adventure for being the only functional 1.8 bossbar lib
Would it be difficult to allow for player_heads to be encated as well like a diamond_helmet?
encated?
enchanted* sorry
ah
I assume so
although u have to set it true as unsafe
or addUnsafeEnchantment
ok ty
Heads can be enchanted but the glow doesn't show.
ah interesting, why is this the case?
ask mojang
Indie Team
Starving Indie Team*
btw the glow does show if you use a resource pack to convert the head to a 2d sprite like the rest of the items
https://bugs.mojang.com/browse/MC-194171 according to this its been deemed a bug but its been years at this point since heads were added and it still doesnt seem to be fixed
Poor Indie Team
Using Next.js, I have a div that is scrollable, and I want to save the scroll level when the page is reloaded. Currently I am doing this: ```js
const element = document.getElementById("sidebar");
if (element) {
const scrollPosition = Number(localStorage.getItem('sidebarScrollPosition')) || 0;
console.log(scrollPosition)
// Scroll to the stored position
element.scrollTo(0, scrollPosition);
}
And then save it: js
const handleUnload = () => {
localStorage.setItem("sidebarScrollPosition", element.scrollY.toString());
};
window.addEventListener('beforeunload', handleUnload);
```I am doing this all inside a useEffect(). Currently, it saves a scroll value that does vary, but when I put it into element.scrollTo it just puts it like 1/5 down the container, no more, no less. It doesnt scroll if the value is 0 tho. What am I doing wrong?
hey, not sure why this happen but shouldn't this send a clickable message?
```String message = Messages.chatMessage("queue_invite").replace("%this%", player.getName());
TextComponent textComponent = new TextComponent(message);
textComponent.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/cc join " + player.getName()));
invited.spigot().sendMessage(textComponent);```
or is the fact that I'm intergearing with the message doing something strange.
hi, im implementing (using shadowjar) bstats and itemnbt-api into my plugin. when i first added them, i also had their packages relocated, i completely forgot y i did this and i wanna know if its even needed 🙃 ping if reply
also, how can i make it so that a dependency is built on compile time for my api and all of the projects using the api (ive tried using both compileOnly and compileOnlyApi)? gradle kotlin, ping if reply
wdym?
compileOnly = no shade, no transitive
compileOnlyApi = no shade, transitive
implementation = shade, no transitive
api = shade, transitive
transitive = accessible by other projects depending on your plugin/api
yeah thats what i thought until compileOnlyApi didnt work 🙃
wait what r u trying to do?
also make sure ur using java-library plugin instead of java
add jetbrains annotations to my api so that my individual plugins dont gotta add it as a dependency
ye i do, api works fine (for other dependencies)
hmm
what maven repo r u publishing this on?
jitpack
i think jitpack uses publishToMavenLocal anyways which I assume should still work for transitive
🤔
¯_(ツ)_/¯
whats ur library github?
😭
https://github.com/srnyx/annoying-api/blob/main/api/build.gradle.kts#L7 (its using compileOnly cause i was testing it out, i had it on compileOnlyApi in an earlier commit)
ok gtg to bed gn
gn
can anyone give me a hand in #placeholder-api please
double dx = distance * Math.sin(-Math.toRadians(yaw)) * Math.cos(Math.toRadians(pitch));
double dy = distance * Math.sin(Math.toRadians(pitch));
double dz = distance * Math.cos(-Math.toRadians(yaw)) * Math.cos(Math.toRadians(pitch));
double nextX = x + dx;
double nextY = y - dy;
double nextZ = z + dz;
i tried to play a bit with the math formula but calculatons output is not must correct
https://ibb.co/WFCRTLX thats most close it was
but still not correct
What would be the best way to change the color of World Border
as i have never done it and cant find anything useful on google
I assume you're coding a plugin, if not, then a better place to ask could be #general-plugins / #1007620980627230730 / #minecraft (one of those, idk)
besides the 3 built-in colors (red, green, and blue - each meaning something different in vanilla) which can likely be modified via packets, you'd probably have to use smth like particles
u seen it ever done?
i am making a plugin thanks i can do that thank you
Yes Skyblock server do it
pretty sure the game has only 2 colors that are presentable which are blue and red im correct?
bump^
check the NMS class
and see what it does probably texturepack thing
@Override
public String getName() {
return "name";
}
@Override
public String getDescription() {
return "description";
}
@Override
public String getSyntax() {
return "/command name";
}
@Override
public void perform(Player player, String[] args) {
}
@Override
public void perform(Player player, String[] args, Command command) {
if (command.getName().equalsIgnoreCase("name")) {
if (args.length == 1) {
player.sendMessage("Test 1");
}
}
}
}```
*Sorry miss clicked enter and it sent without being organised*
~~Whenever I remove~~
@Override
public void perform(Player player, String[] args) {
}
~~Due to not needing it, it keeps asking to either implement it again or change it to an abstract.
I've done this before and had no problem. Why the sudden issue?~~
Nevermind, I was stupid and forgot about something I forgot to remove.
My bad.
And green, but that’s it, can’t do custom colors without a resourcepack
Did u figure out a solution? 🙏
private void sendTitle(Player player, int fadeIn, int stay, int fadeOut, String title, String subtitle) {
IChatBaseComponent titleComponent = IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', title) + "\"}");
IChatBaseComponent subtitleComponent = IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', subtitle) + "\"}");
PacketPlayOutTitle titlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TITLE, titleComponent, fadeIn, stay, fadeOut);
PacketPlayOutTitle subtitlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.SUBTITLE, subtitleComponent, fadeIn, stay, fadeOut);
CraftPlayer craftPlayer = (CraftPlayer) player;
craftPlayer.getHandle().playerConnection.sendPacket(titlePacket);
craftPlayer.getHandle().playerConnection.sendPacket(subtitlePacket);
}
```,
for some reason the text doesnt stay for more than 5 seconds
even if i set the "stay" to like 1000
meaning it should stay for 50 seconds ^
might have to send it every few seconds
people keep saying you cant change the time through the server, so you have to repeatedly send
Yeah
umm i tried the following
private void sendTitle(Player player, String title, String subtitle, int duration) {
IChatBaseComponent titleComponent = IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', title) + "\"}");
IChatBaseComponent subtitleComponent = IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', subtitle) + "\"}");
PacketPlayOutTitle titlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TITLE, titleComponent);
PacketPlayOutTitle subtitlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.SUBTITLE, subtitleComponent);
CraftPlayer craftPlayer = (CraftPlayer) player;
craftPlayer.getHandle().playerConnection.sendPacket(titlePacket);
craftPlayer.getHandle().playerConnection.sendPacket(subtitlePacket);
Bukkit.getScheduler().runTaskLater(getInstance(), () -> {
PacketPlayOutTitle clearTitlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.CLEAR, IChatBaseComponent.ChatSerializer.a(""));
craftPlayer.getHandle().playerConnection.sendPacket(clearTitlePacket);
}, duration * 20L);
}
https://docs.advntr.dev/title.html adventure
its for spigot 1.8.8 not paper
so?
i tried adventure yesterday, it just won't work at all
adventure is available in paper by default since a certain version, but it can be used with spigot as well, just just need to shade it
that will only send it one time later
in the runTaskLater, you should call the sendTitle function again
and decrement some value so it eventually hits 0 and stops repeating
All you need is the bukkit platform https://github.com/KyoriPowered/adventure-platform
ive also tried having the message repeatedly being sent, what happened then was the title started blinking
umm now the title was working, 3 minutes later stopped working ;/
i havent changed anything
even went back to the original,
was working, now it doesnt send it, i put strings through out this function it does run but no message is being shown to the player
private void sendTitle(Player player, int fadeIn, int stay, int fadeOut, String title, String subtitle) {
IChatBaseComponent titleComponent = IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', title) + "\"}");
IChatBaseComponent subtitleComponent = IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', subtitle) + "\"}");
PacketPlayOutTitle titlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TITLE, titleComponent, fadeIn, stay, fadeOut);
PacketPlayOutTitle subtitlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.SUBTITLE, subtitleComponent, fadeIn, stay, fadeOut);
CraftPlayer craftPlayer = (CraftPlayer) player;
craftPlayer.getHandle().playerConnection.sendPacket(titlePacket);
craftPlayer.getHandle().playerConnection.sendPacket(subtitlePacket);
}
not sure
for the blicking/flickering if you want to prevent it set fadeout to the same ticks as the repeating task, so if it was to repeat every 20 ticks, set the fadeout to 20 ticks aswell
or atleast that should work
I think you sre confusing title with action bar
https://www.spigotmc.org/threads/title-flashing.119905/
i got the info from this so it could be wrong but it seems to be the same as title
the guy said it worked so i just kinda assumed it would
No don’t set a fade-in or fade-out
Just make it so that the title stays longer than the repeating task
So if u have a 20 tick repeating task, send the title and have it stay for 30 ticks
@cloud panther ^
Does anyone know why this works https://github.com/gigobyte/HLTV/blob/master/src/endpoints/connectToScorebot.ts#L218 but when I try to use a similar code I can not connect to socket?
const { io } = require("socket.io-client");
const socket = io("https://scorebot-lb.hltv.org");
var initObject = JSON.stringify({
listId: 2364909
});
socket.on('connect', () => {
console.log("Connect");
socket.emit('readyForMatch', initObject);
socket.on('scoreboard', function (data) {
console.log(new Date(), " Scoreboard: ", JSON.stringify(data));
});
});```
On hltv.org `data-scorebot-url` is `https://scorebot-lb.hltv.org`
create a group with the permissions of that upgrade if its got multiple permissions then give the player the group
then just check for the group if they attempt to click it and deny if its true
Don't reply here to config questions
was kinda hoping they had already reposted in general plugins
This drives me insane, I don't get why it doesn't work 🤯
anyone know? im using jitpack so maybe thats whats causing it?
Tldr; what's the issue
You need the library at compile time and not Runtime and compileOnlyApi isn't working?
I think you have to use api() from the java-library plugin if you want to shade a dependency and expose it to projects that use your api
i dont want to shade it tho
If they need it at runtime too then api should work
yes, and compileOnlyApi should be working (i think?)
It should
if you use compileOnly(Api) you also need to add these libraries manually in all your projects iirc
but what'd be the point then?
compileOnly is for when the said library is provided at runtime, e.g. spigot
You don't, it behaves exaclty like api but for compile time only
You might try using gradle clean to see if that clears up the issue as well.
yeah i have
So what exactly are you doing to test that this is working, just so we're on the same page?
im using the commit tag from jitpack in one of my plugins like this: implementation("xyz.srnyx", "annoying-api", "0d34dcf0d3")
then when i try to use a jetbrains annotation and build it gives me "package org.jetbrains.annotations" does not exist
A member of staff has requested I move your message to a paste,
Most likely because it contains a config/error/code snippet.
Is it just annotations, or does this happen with other dependencies too?
annotations is the only one using compileOnlyApi, the rest use api and work fine
I don't know too much about annotations, as I recall I had to use implementation on a set of google annotations for some weird reason, I don't know if that's the case here, I'm just not knowledgable enough.
Otherwise, it looks like it should work.
Your code fucking scares me Walter
True
relax, i swore at my self smh bots
private void sendTitle(Player player, int fadeIn, int stay, int fadeOut, String title, String subtitle) {
IChatBaseComponent titleComponent = IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', title) + "\"}");
IChatBaseComponent subtitleComponent = IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', subtitle) + "\"}");
PacketPlayOutTitle titlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TITLE, titleComponent, fadeIn, stay, fadeOut);
PacketPlayOutTitle subtitlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.SUBTITLE, subtitleComponent, fadeIn, stay, fadeOut);
CraftPlayer craftPlayer = (CraftPlayer) player;
PlayerConnection playerConnection = craftPlayer.getHandle().playerConnection;
// Send initial title and subtitle packets
playerConnection.sendPacket(titlePacket);
playerConnection.sendPacket(subtitlePacket);
// Repeatedly send title and subtitle until "stay" time is over
int repeatDelay = 20; // Delay in ticks between sending title/subtitle packets (1 second = 20 ticks)
int repeatCount = stay / repeatDelay; // Number of times to repeat sending the packets
Bukkit.getScheduler().runTaskLater(getInstance(), () -> {
for (int i = 0; i < repeatCount; i++) {
playerConnection.sendPacket(titlePacket);
playerConnection.sendPacket(subtitlePacket);
}
}, repeatDelay);
}
this atleast repeats it for 1 second than it stops ;/
sendTitle(player, 0, 400, 0, getMessage("fishingTitle"), getMessage("fishingSubtitle"));```
runTaskLater runs the task once after a delay
is there anything that can keep running the task, until "stay" time has passed
shouldn't it technically be xyz.srnyx.annoying-api:api:commit?
since you don't want to include example-plugin
no
Does anyone know how to decipher a bungee spark profiler?
It's not displaying very much and doesnt have the correct cpu percentage adding up
good point 
no, settings.gradle.kts in root folder of annoying-api
wdym
include("api", "example-plugin")
project(":api").name = "AnnoyingAPI"
project(":example-plugin").name = "AnnoyingExample"
ye but im not sure if that's supposed to be part of the actual api
@cloud panther
well the files generated r just the api ones
i set fade in and fade out to 0
whats the stay?
I still suggest to use adventure LOL
how long the message should stay
no but what is it
Bukkit.getScheduler().runTaskLater(getInstance(), () -> {
for (int i = 0; i < repeatCount; i++) {
sendTitle(player, fadeIn, stay, fadeOut, title, subtitle);
}
}, repeatDelay);
This will send the title repeatCount times after repeatDelay, for sure not what you want.
oh yeah that too lmao
good point
its how long the message should be printed for, its the ticks
ik :/
but i wanted to know what the actual value u were using was, cause it should be longer than repeatDelay
it was 1000
Anyone know how to fix this error when trying to register enchants in 1.19.3? No longer accepting new enchantments (can only be done by the server implementation)
are you making a mod?
plugin
btw just tried it with my maven local and its still not working
what if you do gradle api:publishToMavenLocal
i think thats the command format for specific module?
¯_(ツ)_/¯
gradle AnnoyingAPI:publishToMavenLocal i think since i renamed it in settings.gradle.kts
oh
ok
wait
hold up
whats ur base module/project called?
the main project is annoying-api i think since i just left it with the default name
api is AnnoyingAPI
example plugin is AnnoyingExample
interesting
alr
yeah: https://img.srnyx.com/idea64_rWDX5nz8ZM.png (names r in paranthesis)
private void sendTitle(Player player, String title, String subtitle) {
IChatBaseComponent titleComponent = IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', title) + "\"}");
IChatBaseComponent subtitleComponent = IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + ChatColor.translateAlternateColorCodes('&', subtitle) + "\"}");
PacketPlayOutTitle titlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TITLE, titleComponent);
PacketPlayOutTitle subtitlePacket = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.SUBTITLE, subtitleComponent);
CraftPlayer craftPlayer = (CraftPlayer) player;
PlayerConnection playerConnection = craftPlayer.getHandle().playerConnection;
// Send initial title and subtitle packets
playerConnection.sendPacket(titlePacket);
playerConnection.sendPacket(subtitlePacket);
int repeatDelay = 80;
int repeatCount = 5;
for (int i = 0; i < repeatCount; i++) {
Bukkit.getScheduler().runTaskLater(getInstance(), () -> {
sendTitle(player, title, subtitle);
}, repeatDelay);
}
``` now there is still a "blinking" happening"
u didnt change the scheduler
u should be using:
@Deprecated @NotNull
BukkitTask runTaskTimer(@NotNull Plugin plugin, @NotNull BukkitRunnable task, long delay, long period)
throws IllegalArgumentException, IllegalArgumentException```
Use BukkitRunnable.runTaskTimer(Plugin, long, long)
a BukkitTask that contains the id number
plugin - the reference to the plugin scheduling task
task - the task to be run
delay - the ticks to wait before running the task
period - the ticks to wait between runs
IllegalArgumentException - if plugin is null
IllegalArgumentException - if task is null
i dont even know where my api is getting the annotations cause it still works even when i remove it from the build file
(and its also using an older version that whats in the build file [23.0.0])
isnt that going to cause an infinite loop?
yeah but it will just keep creating new tasks cause ur recalling the method
would that work
seems like its coming from placeholderapi, why does placeholderapi need to compileOnlyApi jetbrain annotations 🤔
yeah just have 1 method to send a title normally and another to send a repeated title (which calls the normal title method)
@dusky harness
papi: https://repo.extendedclip.com/content/repositories/placeholderapi/me/clip/placeholderapi/2.11.3/placeholderapi-2.11.3.pom
mine: https://jitpack.io/xyz/srnyx/annoying-api/29c6c955e5/annoying-api-29c6c955e5.pom
for some reason mine is missing the dependencies section, which im 99% sure is whats needed
also, why do you have shadow
🤨
oh ur relocating
what if that's the issue
¯_(ツ)_/¯
maybe shadow messes with the transitive IDkkkkkkkkkkkkkkk
maybe tmr ill fork ur repo and try some stuff out
papi shadows tho 😭
if you haven't solved it by then
feel free to ping me tmr about <t:1686171600:R>
¯_(ツ)_/¯
alright 
i think you should learn java first and not use chatGPT or what ever wrote u that shit...
No need to beat a dead horse
because i clearly can see that you have no clue or know eldge in general who the fk makes a ul in pr instead of st, code make no sense gib , xy problem people here are not meant to be spoon feed but give pseudo code.
thats the best comment 10/10.
Would a dev help me modify an existing plugin? It’s a public plugin on GitHub.
creative way to delay a loop?
like without making it depending on server ticks
oh wait
actually yeah
i mean still same question lets say i loop now my goal is too loop once every 20 ticks now since its bukkit ii cant put theard on sleep server will freeze or blow up or somethng single theard shit software anyway, and as well without using
hmm bukkit scheduler
yeah so any suggestions?
without recalling method after X seconds using bukkit scheduler as well
like updating for next check
schizo rant
u ok?
are you
idk what you're trying to achieve but it's most likely a non-issue
i can do it via creating theards and using them or bukkit tasks
now i think of other way
or even using runnable and list to performe it
but i want to make inside the self method a delay
well that's not how programming works
Thread.sleep 
i code for couple years i know
anyway i do async task later after each check and re running method with new values
mc server software goes https://www.youtube.com/watch?v=u2Ndm9Lqijc
so classic
hok me up
bukkit.getScedular().runTaskTimer(plugin,()-> {
//code to run
},0L,20L);
whout bukki tasks and re running.
you will want to use bukkit tasks cus you cant use anything else really without stalling the thread
and each tick is 50ms, i doubt you will need to have it run more then that
use runTaskLater if you dont want it to loop
and set the delay to whatever you wan
What the heck happened did someone delete all their msgs??
?
?
?

beside the guy who asks help with GPT code i see nothing missing
Oh so u just sent huge walls of confusing text ok
Are there Guidelines for #1113758467057000518 ?
You need to have all the required tags
Barry should have sent them
Here
If I do inventory.removeItem(), and input an itemstack with an amount of 1, will it remove 1 item from any stack in the persons inventory, or will it search for a stack of 1?
It will try to remove 'as much as possible' from the types and amounts you give as arguments.
It probably ignores the amount and compares the items with ItemStack#isSimilar
I read that, but it isnt actually doing that
I am trying to remove an item from a stack, and it just ignores it
My bad, it takes into consideration the amount https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/browse/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java#354-395
I was wrong, it actually does remove 1 from a stack
I was just stupid and not actually running the inventory.removeItem() method
i dont remember it fr
@dusky harness i forgot to ping u yesterday 🙃
ok i fixed it
WHAT?!
seems like u removed a bunch of stuff such as the group id, version, and name of the root project
it seems like you also disabled the build tasks of all of the projects (root and modules)?
I re-added them, added ```kt
publishing {
publications {
create<MavenPublication>("maven") {
groupId = "com.github.dkim19375"
artifactId = "annoying-api"
version = project.version.toString()
from(components["java"])
}
}
}
oh and also
implementation("com.github.dkim19375.annoying-api:api:57d8aade4e")
this is what i did
or I can try and PR
actually can I PR
what about com.github.dkim19375:annoying-api tho? cause i dont need com.github.dkim19375.annoying-api:example-plugin, so it'd just be easier to have the prior
yeah you can probably do that
lemme see
i thought none of the root project stuff was needed?
maybe not, but you're also disabling all the build tasks for the subprojects too
including the api module
I also removed shadowjar but you might want to add it back and experiment?
idk
yeah dont i need shadowJar?
personally I just make them compileOnly
and so if the user wants to use nbtapi features of the api
then they include nbtapi manually
its kinda messy but im the only one that uses my api so
¯_(ツ)_/¯
same with me, and i just wanna have the least amount of stuff i gotta do for each project
yeah it seems to work as well
it'll also include example-plugin
but thats a minor issue
i think
Don't shadowJar libaries/api unless absolutely needed, the maven system uses transitive dependencies for that, it publishes paths to find the included dependencies and it all gets resolved when including your lib/api
actually it might include plugin.yml and that stuff too
Does anyone know how to use an oraxen item as icon in deluxemenus?
wait
yeah I agree with matt
@dark garnet can I try to PR
i want contributer status 
lol
wait im confused, y exactly should i not shadowJar?
this
but then i have to have the things installed separately no?
or have them declared in each project
yes
that'll be so annoying tho cause all of my plugins use bstats 
how 😭
theres like this gradle thingy
feature
that lets u do smth
idk
i haven't used it
i just made DkimGradle™️ instead
what
¯_(ツ)_/¯
documentation was required in order to post to gradle plugins repo 🥴
but like
ik some people here use it
ik matt does
not dkimgradle
the other gradle thing i was talking about
what is it
yeah thats why i had the publishing thing only in the api module
i might be mixing it up
also not shading means i'll have to relocate in every project
yeah wait u could just get rid of the publishing in root project and only have it in api module
u sure?
yeah ur not even using the root project one when using com.github.dkim19375.annoying-api:api
then change the api module one to "com.github.dkim19375:annoying-api
so basically ur solution is to just not shade 🙃
https://github.com/srnyx/annoying-api/blob/main/build.gradle.kts#L67-L73
and getting rid of this stuff
disabling tests is fine
but not the classes and jar
prob
i haven't tested
¯_(ツ)_/¯
i really really really dont wanna have to declare dependencies in all of my projects r u sure its required 😭
yeah i knew disabling them would screw me in the future lmao
idk we need someone with more experience here lol
I'd just keep them all enabled since the default module won't even compile anything
so to prevent any future issues
¯_(ツ)_/¯
yeah i just thought they were taking up time when compiling and speed is key frfr
@dusky harness i figured out the main issue, it was literally just the disabling of tasks in subprojects in root build.gradle.kts 😭
💀
ye id remove all that
it would likely only save milliseconds of build time (or less)
yeah upon removing it, the dependenices r now added to the pom
also removing the root level disabling thing too
interesting
idk how those relate to the pom but if removing it fixes it, then congrats 🎉
yeah me neither, i think jar maybe just was generating information for it or smth
@dusky harness so is there a way to create a gradle plugin to automatically include some repositories?
or would i have to do something like u have using enums
https://github.com/dkim19375/DkimGradle#usage
yeah
this is what i do

gradle plugins are easier than you think
especially ones that don't actually modify anything besides run extra code (which is what mine does)
hardest part is uploading them to gradle plugins repo
ah i misread
but I mean you dont need an enum
what i used to do is just copy and paste a whole list of repos throughout my projects
some of my projects still have that probably
You can probably use other repos too, but it needs to be added in the build file (settings.gradle?)
ye true although then u have to figure out how to host one 🥲
I wouldn't be surprised if they can be published to a normal maven repo
bc ur shading it
how do i not
uhhhhhhhhhhhhhhh
well
if u dont want to shade it
then it shouldn't be implementation, i think?
or do you just mean not to be transitive
oh 💀
bc then i dont think u can with shadow
i removed shadow
oh
wait no i need shadow
Does implementation() make dependencies accessible? I thought only api() does that
implementation is adding it to the pom as runtime scope but api adds it to pom as compile scope
very strange
Whats the problem with them being transitive though? Isnt that why you shade them?
thanks for putting half the enums in the enums package and the other half in the util package in ur gradle plugin 🙃
its making me declare the repository (for one of the implementations) for some reason
uhhhhhhhhhhh
we dont talk about that
lol
also thanks for just skipping a bunch of the minecraft versions 🙃🙃🙃
nono its suppsoed to be
huh
all of the X.X.0 and more
ill just add them 🙄
lol
i guess u wont be getting that contributor status after all, and i will!!! 😈
the turns have tabled i think
(╯°□°)╯︵ ┻━┻
┬─┬ノ( º _ ºノ)
whats the downside of having tons of repositories (including unused ones)?
if a repo is down, its annoying to manually exclude that repo
but other than that i dont think theres other downsides
since dependencies are cached and the speed of finding the dependency shouldn't be impacted too much
Sign#setEditable is is only strictly on restricted in the event and nothing else?
So I am copying the code from the allowBuild method in GriefPrevention but I get this error on the event...
The constructor Claim.CompatBuildBreakEvent(Material, boolean) is not visible
i wonder why
🤦 the "constructor" is private
Anyone know a method that doesn't require async and can just take the params Player and ClaimPermission? (GriefPrevention API)
what
GriefPrevention runs an event when checking perms... I want an immediate answer.
Wait... I think Claim.hasExplicitPermission(Player, ClaimPermission) will work...
u coulda at least said what the method u were looking for did lmao
So I am copying the code from the allowBuild method in GriefPrevention but I get this error on the event...
Anyone know a method that doesn't require async and can just take the params Player and ClaimPermission? (GriefPrevention API)
Discord's API is lagging again lol
yeah but its not async?
Claim.checkPermission() creates and runs an event and it requires async
u still never said what u wanted method u were looking for but ok
?
So I am copying the code from the allowBuild method in GriefPrevention but I get this error on the event...
saying that your copying a constructor invocation from a method and its erroring tells anyone what method your looking for?
I see that this is using in their BlockPlaceEvent listener https://github.com/TechFortress/GriefPrevention/blob/e5f579dd10efa669150ce3a012afa7c4071fce4a/src/main/java/me/ryanhamshire/GriefPrevention/GriefPrevention.java#L3428
I already found the method @dense drift I don't think sparky is reading though
So I am copying the code from the ---> allowBuild method <--- in GriefPrevention but I get this error on the event...
still doesn't lmao
that's just where you coppied the event constructor call from
🤷 I already figured out the method I need. I'm not repeating myself again.
i know you found it lmao
what about that is async 
Async permission checks would be god awful
The event is not the check itself, it’s the event that is prompting the check
Not sure why it does that though
yeah but none of that is async lol
"Can't" be ran async. I thought my checks were sync but forgot I switched them.
ClaimPermissionCheckEvent may only be triggered synchronously.
all you smart ppl here is it possible to change the actions of the buttons in esc?
using a clientside mod id say yeah, if your talking about server side only then no
ye i was hoping for something server-side cause having the players to install a mod is meh
well the buttons can only be modified using a clientaide mod
The most u can do server side is use a resource pack
it cant change the function of the buttons but can change the look of them somewhat
ye ik i ve changed it that's why i was wondering :/
Uhm so you can use ItemStack.serialize() to serialize an item and store it in a yaml, but how would you get it from the yaml and deserialize it? I know there's the method but how do you get the map require from the yaml? Should I just get it as an object and cast it?
config.getItemStack("blah")?
apparently ItemStack.deserialize(Map<String,Object>) exists
exactly the point.
I know there's the method but how do you get the map require from the yaml? Should I just get it as an object and cast it?
oh i see
this wouldn't work bc it won't know how to serialize/deserialize
you'd probably have to make your own ConfigurationSerializable serializer
only spigot lib recognizes ConfigurationSerializable serialize() and deserialize() methods
id assume you'd have to recreate the map yourself
Like, if I get it and cast it to the map the deserialize method uses, wouldn't it work?
exactly what I am speaking about
no, for example if I wanted to serialize ItemStack, it wouldn't serialize correctly because it doesn't know how to
it can't just serialize the fields
like
do you mean using this map?
other than spigot config, it won't know how to serialize those Objects
if your using itemstack's seralize then you would know how your saving it, which then it probably wouldnt be difficult to do the opposite
my brain is not braining right now
just use the paper byte serialization 😌
the what now
nha not really, just storing it in yml
paper has a method that lets you serialize it to bytes
since it's only one thing
using the nbt thingy
paper has itemstack serialization but instead of a map, it gives you a byte[]
no need for db or anything
oh then yeah use what star said
if ur on paper
if not then either some reflection into nms (?) would be required ig
or just copy paste the methods from Paper and put em in your plugin lol
is that on 1.18.2 paper?
yes
yeah
wait what
does it not require any nms?
hmm, would I go about storing the byte array though?
don't think so
does spigot have a method already
depends on your config library
Using SimplixStorage, which only provides getByte and getByteList which I could convert to an array? maybe?
yeah byteList sounds perfect
or I could convert the itemstack to base64?
eh
it's not great
what uses it?
which is ironically less unsafe than spigot's own serialize method I'm pretty sure?
¯_(ツ)_/¯
paper's serialize and deserialize methods
bruh
oh yeah huh I guess it uses an internal thing
well not big deal if you're not supporting spigot
well i mean
it doesn't require Craftbukkit or nms
so
It uses net.minecraft.nbt.NbtIo
oh u mean the bukkit method?
bruh moment
bro discovers wrapper types
@NotNull
public static ItemStack deserializeBytes(@NotNull byte[] bytes) {
return org.bukkit.Bukkit.getUnsafe().deserializeItem(bytes);
}
@NotNull
public byte[] serializeAsBytes() {
return org.bukkit.Bukkit.getUnsafe().serializeItem(this);
}
```bc this is what paper uses
which i think is accessible on spigot
click on those methods bro
well yeah but thats the same for all internal methods
has to eventually lead into CB and NMS
i mean not necessarily
you can get all data about an ItemStack through public API methods
could always use the old BukkitObjectInputStream
this was my inspiration when I was making a data synchronization plugin
Think we just found out paper needs someone to PR a better way to do this lol
well they have PR'd a better way to do this, it's called ItemStack#serializeAsBytes or whatever
an even better one
what could be better lol
it uses minecraft's own nbt serialize method 🥲
serialize as atoms
wait until you find out what bytes are made out of
that was the joke
sadly very aware that 1 byte is 8 bits
or 2 nibbles
Serialize as 1s and 0s
wait is it nibbles or nipples?
feeling I am mixing two different words
confusion
7 byts make 1 bites
1 bite of what
🍪
🦧
uhhhh can I add an itemstack to a players inventory with an amount bigger than 64?
Will it separate it into different stacks automatically? or....
afaik if it does allow it then itll just be a stack of whatever number you picked, if not then itll just give a stack of 64 items
1k items is about 15.5 stacks
yeah so loop it and give 15.5 stacks?
loop what?
You can create a stack with amount = 1000 and the game will split it accordingly
oh it will? that's wild
Try It And See™️
I've actually never tried an amount that big, but I would expect it to work
When you do the in-game command 100,000 worked, it just put the remainder on the ground to blow up my pc
Is there such a thing moving a particle?
am i the only one experiencing a minecraft development intellij plugin problem
hard to say when you give no context. I'm not having much trouble other than I have to manually import org.bukkit.event.Listener; everytime but meh.
my issue is that the plugin throws an exception within intellij every time i attempt to use it to make a new project, i feel like this would be pretty noticeable if i wasnt the only one
not sure, seem strange to me.
agreed
no
probably a too new IJ version, plugin devs take time to update
There's a new IJ version?
eh what a shit ap
api
how about making it diissapear after x ticks
is there such a thing?
im using packets.
No
shit god damn
I was reading some open source vanish plugin's source code and I saw these lines:
val prePlayerVanishEvent = PrePlayerVanishEvent(player, onJoin)
Bukkit.getPluginManager().callEvent(prePlayerVanishEvent)
if (prePlayerVanishEvent.isCancelled) return
does callEvent waits for all of the event listeners do their job if any listener wants to cancel the event let it done and then continue?
Everything is done sync, so it will wait
IJ would tell you if the plugin wasn't up to date. They won't even let it run.
Minecraft Development is updated for the latest version of IJ though
i dont think it sucks
It's kinda useless if you're developing plugins
It's maybe useful for creating new projects, but then I can't think of a use for it
if you're just starting to make plugins its aight i think
but there's a certain point where that plugin will not generate things the way you need it to so its not worth
your mother
Hey guys
I'm seeking a way to save a lot of data at a fixed rate
does anyone have an idea of the algorithm I should follow ?
because if I run a timer of every 15 sec and it saves 403 things into database even if it's async it will consume a lot of CPU
you can't do work without doing work, not sure what you're trying to achieve here
you can keep a track of which objects are "dirty" (have been modified) to avoid needing to persist all the entries
but i think given that you can upsert 403 objects in a single query i dont think you need to worry about it too much
or even if you did it across multiple queries
Does anyone know if there's a method on the ItemsAdder API that I can use to set a texture to an item? I know I can simply set the CustomModelData, but I kinda prefer names ("fire-sword") over magic numbers
Hi Im trying to set up a custom GUI in PaperMC, and I have a custom resource pack with a gui image thats been applied to a font, but I was wondering how I add the font to the menu. I make it into a component but menu titles can only be strings right?
how do people display "hats" models with plugins? is it an entity?
item/block with resource pack probably
When the psychedelics wear off and you realize you've been wearing a slightly damaged sword the whole time
I was trying to set the color of a leather chestplate but for some reason isn't letting me use
chestplateMeta.setColor();
ItemMeta chestplateMeta = chestplate.getItemMeta();
chestplateMeta.addEnchant(Enchantment.MENDING, 1, false);
chestplate.setItemMeta(chestplateMeta);```
I checked [https://hub.spigotmc.org/javadocs/spigot/org/bukkit/inventory/meta/LeatherArmorMeta.html] and a couple of tutorials on YouTube and I can't see anything wrong. Any one able to help?
show current code where you use the setColor
chestplateMeta needs to be of type LeatherArmorMeta instead of ItemMeta so you need to do some casting
Thanks I'll give that a try tomorrow 🙂
What's better in theory, having one event handler handling everything or several event handlers (listening to the same thing) but doing different things?
In theory wouldn't several add boilerplate if they all had similar checks
imo its just a matter of preference
i think there's a benefit to having multiple event handlers where you don't have to modify existing code to add an additional thing
but you can also make your own system for managing that well with only a single listener
hmm true, will see, thanks
Anyone familiar with git ci/cd?
name: Node.js CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
defaults:
run:
working-directory: DiscordBOT
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 16.x, 18.x]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm install
working-directory: ./DiscordBOT
- name: Build with TypeScript
run: npm run build
working-directory: ./DiscordBOT
This is the structure of the project
for some reason I get an error:
Dependencies lock file is not found in /home/runner/work/KoridoriusCore/KoridoriusCore. Supported file patterns: package-lock.json,npm-shrinkwrap.json,yarn.lock
KoridoriusCore is the repo name
/home/runner/work/KoridoriusCore/KoridoriusCore is the wrong dir
it should look in /home/runner/work/KoridoriusCore/DiscordBOT, no?
even though working-dir is defined
ok, cool, found the issue
turns out the problem with setup-node, it had wrong cache-dependency-path, fixed with:
cache-dependency-path: DiscordBOT/package-lock.json

Epic
@EventHandler
public void LichKingsCrownEvent(PlayerToggleSneakEvent playerToggleSneakEvent) {
Player player = playerToggleSneakEvent.getPlayer();
PlayerInventory inventory = player.getInventory();
ItemStack itemStack = new ItemStack(Material.GOLDEN_HELMET, 1);
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&cLich Kings Crown"));
List<String> lorelist = new ArrayList<>();
lorelist.add(ChatColor.GRAY + "Boosts the wearers processing speed, making the world around you seem like it's in slow motion.");
lorelist.add(ChatColor.GRAY + "To activate the effect sneak.");
lorelist.add(ChatColor.translateAlternateColorCodes('&', "&7[Dropped from &cLenny The Lich King&7]"));
itemMeta.setLore(lorelist);
itemMeta.setUnbreakable(true);
itemMeta.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 4, false);
itemMeta.addEnchant(Enchantment.WATER_WORKER, 1, false);
itemMeta.addEnchant(Enchantment.OXYGEN, 3, false);
itemMeta.addEnchant(Enchantment.DURABILITY, 3, false);
itemMeta.addEnchant(Enchantment.MENDING, 1, false);
itemMeta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
itemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
itemStack.setItemMeta(itemMeta);
if (player.isSneaking()) {
if (!inventory.getHelmet().equals(itemStack)) {
return;
}
if (lichKingsCrownEventCooldown.containsKey(player.getName())) {
if (lichKingsCrownEventCooldown.get(player.getName()) > System.currentTimeMillis()) {
long timeleft = (lichKingsCrownEventCooldown.get(player.getName()) - System.currentTimeMillis()) / 1000;
player.sendMessage(ChatColor.GRAY + "Your brain has been overworked! Wait another " + timeleft + " seconds before you can overclock again!");
return;
}
}
lichKingsCrownEventCooldown.put(player.getName(),System.currentTimeMillis() + (30 * 1000));
for (Entity entity : player.getNearbyEntities(10, 256, 10)) {
if (entity instanceof LivingEntity) {
LivingEntity livingEntity = (LivingEntity) entity;
livingEntity.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 200, 0));
livingEntity.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_DIGGING, 200, 0));
player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 200, 0));
player.addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING, 200, 0));
}
}
}
}
}```
I've been getting this error in console and I finally got round to looking at it.
Basically
```Where the issue is:
if (!inventory.getHelmet().equals(itemStack)) {
return;
}```
Always seem to be returning null. I've tried a few different things and all it's achieved it shortening and simplifying my code (which is great but still not what I need).
Can someone give me a nudge in the right path to fix this?
ItemStack helmet = inventory.getHelmet();
if(helmet == null || helmet.getType() == Material.AIR || !helmet.isSimlar(itemStack))
return;
Thanks a lot! 🙂
Np also you should cache the item outside the event so you aren't just constantly making it.
it should only effect anything when a player shifts tho? or am I wrong?
Well yeah. But there is no point in constantly recreating the item
It shouldn't be creating the item? It's only looking to see if that item is in the helmet slot. Atleast that's how I meant it to be.
Or do you mean When it's looking for that item it 'makes it' and then compares?
they mean when you create the golden helmet
You create the item every time.
something that might be better is adding an nbt tag to the item to identify the item instead of checking if the item is the same as that
Should do something like
ItemStack crown = null;
public ItemStack getCrown() {
if(crown != null)
return crown;
//Create item
crown = item;
return crown;
}
I was using enchants before. but it didn't feel reliable.
Is there a way of adding some invis text or something that I can check for.
Depending on your version, NBT or PDC
1.19.4 but I plan on updateing when I'm closer to finishing.
Then PDC
nbt tags, its not apart of the api but there are other apis that exist for creating nbt data without having to be version dependent or using reflection, theres also pdc that can create new nbt tags but doesnt allow modifying vanilla nbt data
pdc == persistent data container btw
if your trying to look it up on the javadocs
I'm going to have to do some googling then 🙂 Thanks for all your help. This'll be fun.
Also last question. Would it be possible to create one big document for all my items using persistent data container?
Part of my plugin is a 'kit' feature. and that class is so messy looking.
ah no. I think I misunderstood something when reading about this before.
if your writing kits you might be better off creating json files or smth for each kit
instead of hardcoding it
I'll look into that too then 🙂
Would it be better efficiency wise? or is it just better looking? Because I've already almost finished.
well it means you dont have to hardcode a bunch of kits
thats if you want to write something to parse the kits or not
I don't need it to be changeable 🙂 not yet anyway. This is for personal use for now. Thanks 🙂
well its still something to consider in the future, even on personal projects creating and parsing files instead of hardcoding is usually a good idea depending on what you are changing
with your on disgression of course
Hi, I'm a setup creator and I use the DeluxeChat plugin for one of my setups.
Is there a problem uploading that plugin inside the /plugins folder because it is no longer possible to buy it?
did you ever figure this out?
Nah I didnt
i am also on the quest to figure this out
https://www.youtube.com/watch?v=kGXlJ2KHueU&t=1420s trying to do this
i got that working but my question is what if I wanted to make more of them, what font characters do i use? : ' )
I think its possible in Paper 1.20 because the API supports Components in menu titles
But in 1.19 and below i think you need to use some NMS stuff for sending packets to the user
its all so complicated
Wdym, you can use any character
Oh so ur using Deluxemenus?
Yeah theyll be using NMS i assume
i had it workin before and now its just "?????"
Is there anyone that knows how to show more than 16 characters in the prefix ? I used the prefixes with scoreboard but it's blocked to 16
( in the nametag )
https://www.spigotmc.org/wiki/creating-external-libraries/ how to create external library for plugins
what ?
im confused
why?
i dont know where put what
ok, so, are you using maven ?
what are you using ?
ok so you got the pom.xml, right ?
i want to have on 2 plugins
look
1 plugin
1 core plugin
if you're using a local lib
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>whateveryouwant</artifactId>
<version>whateveryouwant</version>
<systemPath>PathToPlugin</systemPath>
<scope>system</scope>
</dependency>
</dependencies>
if you're using a lib from internet ( it can be found on the docs of the plugin you want to use )
<repositories>
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.8.8-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
local lib means in project folder .jar?
local lib means that
C:/Users/varii/Desktop/Java Spigot/plugin.jar
so i cant make like plugin takes methods from another plugin in server
ofc you can
you put the libs in the pom.xml
than you initialize the main variable
how it works
if it's a minecraft plugin you do just that:
( you have to put the plugin in your server )
MainClassOfPlugin main = Bukkit.getPluginManager().getPlugin("PluginName");
idk tbh
what ?
in main class i have registerCommands method but in another plugin when i get from pluginmanager i dont have the method
blueslimecore has a maven repo
i haven't checked combatlogx yet
so you don't need to download the jar or anything
just put this code (replacing VERSION with the correct version) into your pom.xml: https://github.com/SirBlobman/BlueSlimeCore/wiki/Dependency-Information
so i add core plugin jar file to my website then i download through maven?
and this is for combatlogx: https://github.com/SirBlobman/CombatLogX/blob/main/api/README.MD
no
you don't have to download anything
maven handles it for you
uhhhhhhhhhh
if u want u can send me ur pom.xml
and I can edit it and show you what I changed
actually this link covers both combatlogx and blueslimecore
anyone ?
i cant send file
?paste
Paste Services
When asking for help with a config/menu/code issue please use our paste bin:
(we prefer it over pastebin.com)
• HelpChat Paste - How To Use
ok so I'll show you how to add the dependencies
It seems like you already did it with PAPI tho
but first, copy and paste this repository into the <repositories> section
like how you have spigotmc-repo, sonatype, and placeholderapi repos
then add these two dependencies
like how you have spigot-api and placeholderapi
then once you do that, it shows you how to use the api if you scroll down further
okkkk thanks
anyone please ?
why?
i want make dependency
so others use your dependency?
the simplest way would be to just use jitpack. requires 0 or almost 0 setup. but if you want to host your own then you can host something like https://reposilite.com/
there's also the option to host on other repositories like maven central. not sure what the requirements are to get on there tho.
Reposilite is very light, you can run it on very cheap vps
Talking abot reposlite, update it @pulsar ferry smh


that is exactly why I said "if you want to host your own".
ye but i wanted to mention another non-host-your-own option 🙃
oh
if only you could read. I mentioned that as well
Done nerd
and how to send compiled jar file to ftp server
you use the maven publish plugin. there's one for maven and one for gradle
I love it, I've used nexus before and I always felt like I was working against it, not with it. Few examples of issues I encountered in the few days of using it:
- cannot upload anything not ending with -SNAPSHOT to maven-snapshots, can not be configured
- if you click on an archive in the browser, you can see the IP of the uploader. This can not be disabled in the config. It's not much of an issue for CI, but it's quite an issue when I'm manually uploading API JARs for plugins that do not have repos.
if you click on an archive in the browser, you can see the IP of the uploader.
wait what
why 💀
.
guys... help?
gotta replicate this armorstand
so kinda need help with the eulerangles used in it
I do have the plugin but it's totally obfuscated lol
(rewriting a custom plugin for a client)
go ask sonatype
Oh wait, someone did. https://community.sonatype.com/t/removing-uploaders-ip-adress/5097
of course, the issue is behind their JIRA instance login
And also, it was laggy and slow as hell (and also consuming several GBs of RAM on my server)
On the other hand, reposilite
Quick and snappy UI, only eats 300MBs of RAM on my server.
Perhaps sonatype gave them "special support" ?
¯_(ツ)_/¯
do you know some other publicly available nexus instance?
oh, for example repo.infernalsuite.com
Yup, it shows the IP there
Well they kinda own both so I'm assuming doing special things would be easy
Yep, could have merged it into OSS while they were at it.
Well anyway, I'm glad I switched
. ( sorry i want someone to help me )
What version are you on?
1.8.8
honestly I'm afraid that's not easily possible
I'm using it, just it's blocked to 16 prefix, 16 name and 16 suffix, but I want more, look my code:
public void setNametag(Player player) {
ScoreboardManager scoreboardManager = Bukkit.getScoreboardManager();
scoreboard = scoreboardManager.getNewScoreboard();
team = scoreboard.registerNewTeam("_" + player.getName());
team.setPrefix(main.getPrefix(player.getUniqueId()));
team.addPlayer(player);
player.setScoreboard(scoreboard);
player.setPlayerListName(main.getPrefix(player.getUniqueId()) + player.getName());
}
Yeah, I'm afraid you can't really expect support with a 8yo version
But I think it is not bypassable
ik it's hard but the thing is that most popular servers did it, like hypixel for example
so it's not impossible
If you mean names above the player, they solved it by spawning an armor stand above the player.
I already tried, but the armorstand is too high when I put the as passenger of the player
they use teams? they could probably use armorstand as TAB (for name tag, not tab name)

