#development
1 messages · Page 40 of 1
well then
Wait did you mean .unloadWorld() or .delete()
Unload all force loaded chunks and check chunks with plugin tickets.
Ok give me another second.
Probably easier debug if you add message to worldunload event
I will try that because for some reason Bukkit.unloadWorld isnt returning anything.
i find that unlikely
I did:
boolean test = Bukkit.unloadWorld(worldName, true);
Maybe i debugged it wrong but not sure.
Remeber you can't unload world (world you specified in server.properties)
Yep i know. and I think it forgot to add my world in my worlds.yml just now but in the event, it did trigger but still didnt delete the world folder
So, it did unload the world but it didn't delete the world folder.
.
The world unloading does take time so you will have to wait for it to unload before running the delete method.
It said this before the command tried to delete the folder:
[21:45:43 INFO]: [ChunkHolderManager] Waiting 60s for chunk system to halt for world 'test'
[21:45:43 INFO]: [ChunkHolderManager] Halted chunk system for world 'test;
[21:45:43 INFO]: [ChunkHolderManager] Saving all chunkholders for world 'test'
[21:45:43 INFO]: [ChunkHolderManager] Saved 0 block chunks, 34 entity chunks, 0 poi chunks in world 'test' in 0.01s
You didn't delete the world file in that code?
if (!worldFile.delete()) {
sender.sendMessage(ChatColor.RED + "Failed to delete the world folder!");
return true;
}
You just unload world. Unloading world doesn't delete files
worldFile.delete()??
Not work
Why?
if you want temp worlds, e.g. for minigames, you should look into slime world
No, I don't want temp worlds.
This was from my old skywars plugin. (After I kicked the players from the world.)
Wouldn't work if world folder was in another location
Bukkit.unloadWorld(args[1].toLowerCase(), true);
Bukkit.getScheduler().runTaskLater(this, new Runnable() {
public void run() {
new File(args[1]).delete();
}
}, 40l);
Hmm.
I personally like use fileutils for deleting world files
I don't think the waiting for the world to unload is the problem here because the WorldUnloadEvent did trigger before the command could continue.
WorldUnloadEvent triggers before its unloaded but doesn't tell you that the world is done unloading.
Really? Odd.
World deleting is actually pretty simple. World create without lagg is hell 😄
@crude gyro also set the boolean in the unload method to false. You're deleting the world you don't need to save it.
.
Lol.
"old skywars plugin"
Ok ok.
And its not really good code xD Its an entire skywars plugin coded in 4 classes lmfao
Yeah should spread it out to multiple classes.
Its up to you obviously but for cleanliness and readability for debugging later down the line. Others can give you a list of reasons why its better lol
Too lazy.
Bukkit.unloadWorld(world, true);
File worldFile = new File(Bukkit.getWorldContainer().getPath(), world.getName());
final boolean[] deleted = { false };
Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
public void run() {
deleted[0] = worldFile.delete();
}
}, 40L);
if (!deleted[0]) {
sender.sendMessage(ChatColor.RED + "Failed to delete the world folder!");
return true;
}
Still didn't work or i did something wrong again.
Reason i made the boolean an array: My IDE showing colors give me eye pain.
Bukkit.unloadWorld(world, true); set save to false.
Saving the world takes forever in the latest versions of minecraft.
Still didn't delete it though.
Welp... Could do it yourself...
public void worldDelete(File file) {
for(File f : file.listFiles()){
if(f.isDirectory())
worldDelete(f);
f.delete();
}
}
you know you can change the colours right
AtomicBoolean 😌
not like doing that thing with the boolean would work at all in this scenario
?
And its not really good code xD Its an entire skywars plugin coded in 4 classes lmfao
if only there were a way to reply to relevant information when posting a message in a discord channel
would be very useful in times like these!
Was pulling the code from that project.
ok?
So since the conversation still contained the reference A reply wasn't really needed
i beg to differ, but sure
Well you joined the convo late so 🤷
Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
public void run() {
private void worldDelete(File file) {
for(File f : Objects.requireNonNull(file.listFiles())){
if(f.isDirectory())
worldDelete(f);
f.delete();
}
}
worldDelete(worldFile);
}
}, 40L);
Is this what i am supposed to do because it's giving me errors. ('file' has private access in 'org.bukkit.plugin.java.JavaPlugin')
worldDelete is its own method
You place it elsewhere in the class
Got it down to 1 line:
Bukkit.getScheduler().runTaskLater(plugin, () -> worldDelete(worldFile), 40L);
And did that work?
It deleted everything inside the folder.
But the world folder is still a thing.
I guess yeah it did?
Odd. I guess at this point try increasing the delay.
I don't think that function was supposed to delete the world Folder
but everything inside it.
Ah yeap. Sorry. Add file.delete(); after the loop
Yeah, it's working but I'm trying to find a way to make it more compact.
Thank you though.
For some reason, the entire code fails when i try to load a yml file
here's the error
Could not pass event PlayerJoinEvent to TrackingCompass v1.0-SNAPSHOT
org.yaml.snakeyaml.constructor.ConstructorException: could not determine a constructor for the tag tag:yaml.org,2002:java.util.UUID
in 'reader', line 4, column 17:
PlayerTracking: !!java.util.UUID 'b3eedd52-d512- ...
^
Here's the code
File tplayerdata = new File("plugins/TrackingCompass/UserData/"+UUID.fromString(userdataconfig.getString("PlayerTracking"))+".yml");
FileConfiguration tplayerdataconfig = YamlConfiguration.loadConfiguration(tplayerdata);
this is probably very stupid but is it possible to make my custom bow behave like it has the infinity enchantment but without the enchantment being visible?
yes
@wheat carbon fix please
as BM said, yes. Check this out https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/EntityShootBowEvent.html#setConsumeItem(boolean)
when was the last time docdex was not broken 🥲
Looking for a long-term developer, paid hourly or per project. 1.19.3 event system.
thanks
Can anyone help me with port forwarding because for some reason on my router it doesn't want to port forward even with my settings
convert the uuid to a string before you save it, and then convert it back to uuid when you load the file
afaik you should only be saving privitive values and strings, such as the number types, string, char, boolean, etc
pay me $500/hour and ill make you a join message plugin
'toString()' in 'java.lang.Object' cannot be applied to '(java.util.@org.jetbrains.annotations.NotNull UUID)'
userdataconfig.set("PlayerTracking",toString(tplayer.getUniqueId()));
Does anyone know anything about mineos?
I don't
I fixed it, just had to actually check what the errors said. For tags for example, just use sender, as you partially said. For the rest, just use sender.getUniqueId()
I'm so confused why this config doesn't update. I set the value with this config.set(uuid, playtime); which I have tested, and the code is indeed being run.
And then I save using this
playtimeFile = new File(path);
config = YamlConfiguration.loadConfiguration(playtimeFile);
try {
config.save(playtimeFile);
LOGGER.warn("Playtime config saved");
} catch (IOException e) {
LOGGER.error("Playtime could not be saved");
e.printStackTrace();
}
I'm clueless what to debug, as this exact code works for another file, just with a different path ofc. The file is created and everything, but just doesn't update.
You need to load it again after you save it
As well as before?
can someone help me to fix that only i get the package, but the otherplayers need that package too
@Override
public void onPacketSending(PacketEvent e) {
Config config = new Config();
Player p = e.getPlayer();
if(config.getPlayerVanishedList("de.command.vanished") != (null)){
if(config.getPlayerVanishedList("de.command.vanished").contains(p)){
e.setCanceled(true);
}
}
}
My question is why are you storing vanished players in a 'config' (yml) file
"Main" 💀
.log(1) ... 💀
yea i will change that later with the vanished players to a database its just for testing
I'm a JS noob (and idk how asynchronous programming works)
Basically, I am just creating an api request using node-fetch.
whmcs.js -> https://paste.helpch.at/demihiyaxa.js
service.js -> https://paste.helpch.at/jojofemaki.js
For some reason, why does console.log(json) actually print out the json, but when I return json in the method right after it's undefined?
Try to printout 2 times the same json, want to know if that also happens. If the second printout also is undefined, then it can because json can be used 1 time somehow.
When I printed the json twice, the second printout is the same json
Though actually, when I print it out it goes like
Promise { <pending> }
Successful log in!
{
result: 'success',
clientid: '1',
serviceid: '',
pid: '',
domain: '',
totalresults: 0,
startnumber: 0,
numreturned: 0,
products: ''
}
I think the Promise is the first print out and the json is coming after (from the await) somehow
I'm just not sure how to fix it
I know in java you have thenAccept when using async idk if that's a thing in js also.
Second, let me look up
Remove the return method
return json make it just json
json.send?
I am redding this
It something has to do with await or the thing you're returning but pretty sure like you said, it's returning before it grabbed the json
I'm not entirely sure how Promise works, but this is the code when the request method is called
return fetch(url, request)
.then((response) => response.json())
.then((json) => {
return json
});
i think it returns the fetch promise first
but for some reason
im not sure tbh
it returns promise first then the json obviously
that wouldn't return the json though
Since it's the same json
that would just return the response object
oh nvm i read your code wrong
you shouldnt be saving the player object, if your gunna save anything save the uuid as a string
also cache the results instead of constantly loading and saving the values
no i don't think it works
json() is also another thing of its own
you have to wait for it to finish
idk if that makes sense
that's then
ik in java completablefuture has thenApply
but i think the await/async stuff is a bit different in js
im not sure tho tbh
This is so weird when I look at the code on the docu
@pure crater maybe bit weird but try this (just for testing)
OHHH
I see what is happening
Yes try this first
I tried it but it gives the same result
Also with that?
Yeah
Uh
wait one second
Mk
If I keep whmcs.js as it is
and replace the method with
async function getProducts(clientid) {
const whmcs = new WHMCSRequest()
const params = {
action: 'GetClientsProducts',
clientid: clientid,
}
return whmcs.request(params)
}
and change the console.log to be
getProducts(1).then((res) => {
console.log(res)
})
it does print it out
yes
So that's good right
i think honestly
it may be better to just use the promise
rather than block
the thing is going to be async anyways because its node cron scheduled api calls
Yeah
Anyone have a plugin request I should make and release at spigot mc
anticheat plugin which secretly runs /op Ivan8or
Heeelloo,
quick question, is it possible to re-add the __cfduid cookie cloudflare used to set?
@pure crater you have to use 'await' keyword
Else you're returning the promise itself, not the result
Is there a way i can make PlaceholderAPI expansion return Component?
No
The closed would be to deserialize the components as a MiniMessage string if the plugin where you want to use the placeholder supports mini
async/await is just syntactic sugar over returning Promises or calling .then, it's the same thing
yeah I was talking about this part
if you return (promise (blah => promise logic)), then you will get a promise back
whereas return await promise(...) or
if you return promise(...) and do promise().then(blah => , then its fine
Hi,
Is there anyone that is able to help me regarding the Vault plugin API?
» Give the helpers some details
» Ask suitable questions
» Be polite
» Wait
Is the method Bukkit.getServer().sendPluginMessage(plugin, server, message) available in all versions of Spigot?
yes
can someone help me with port forwarding on ubuntu server?
in VPSes, at least for the one I used, the ports were all forwarded already, you just had to modify the firewall (in both the website and the server itself)
For the website, you gotta look that up, for the server, I recommend ufw as it's really simple to use (simple guides online)
also prob #off-topic
Yeah so i setup iptables and ufw
iirc ufw is a wrapper for iptables
so you shouldn't be using both
idk how it works if you use both
I think ufw requires iptables, but I'm not sure what happens if you setup iptables and then ufw later on
try looking up how to reverse the iptables rules that u put
i've never used iptables so I'm not sure how
also, for me, the VPS I used (Oracle) required opening another firewall on the website too
so make sure to check if yours does too
Yeah ive used oracle but im self hosting
ohhhh ok
port forwarding itself is the same across all devices but its just the firewall that needs to be opened on ubuntu
Dont i need to port foward on my isp?
well you have to port forward your router but you can look up a tutorial
the one I used was by "Troublechute"
Yeah I've got spectrum and they have been such a pain gotta call there support again
actionannouncer, advancedcustommenu, arcanevouchers, areashop, autosell, chatinjector, chatreaction, chatreactionplus, citizens, craftbook, crazyauctions, crazycrates, deluxechat, deluxecommands, deluxejoin, deluxemenus, deluxetags, essentialsx, ezblocks, ezprestige, ezrankspro, fastasyncworldedit, fawe, featherboard, fishslapper, frozenjoin, globalholders, griefprevention, guihelper, guilds, headdatabase, holographicdisplays, hyperverse, infoheads, inventoryfull, itemmanager, javascript, jobsreborn, kiteboard, levellingtools, luckperms, mastercooldowns, materials, mcmmo-classic, mcmmo-overhaul, messageannouncer, minecrates, nuvotifier, oneversionremake, papermc, papibot, piggybanks, placeholderapi, playersettings, playertags, plotsquared, pouches, protocollib, rankupholograms, spoof, tempmotd, teupgrades, tokenenchant, tokenmanager, updatechecker, viaversion, voteparty, worldedit, worldguard
o
isn't spectrum pricey?
I use TCPShield 🤷
they only allow 3 domains/subdomains now 🥲
when it was smaller it was unlimited 😔
does the World view distance override Client's view distance?
If the view distance of the client is lower, no
k so it overrides it when its higher than the World's view distance
Client view distance wont be higher than what the server side limit is
The view distance of the client is limited by server's. If the server view distance is 6 and client's is 10, then it will be limited to 6.
ah I see
You cant ask server more than it's limit, but you can obviously ask less
https://paste.helpch.at/apigumoyag.rb
What does this error mean?
unrelated to view distance
Do you do anything with BlockPlaceEvent and AsyncChatEvent?
yes with AsyncChatEvent
I am setting the BlockData in AsyncChatEvent
oh wait do I need to run it async too?
yep, its fixed now
Are there any existing commandhandlers that are public?
mattframwork is the most commonly recommended
triumph-cmds*
same thing
is there a way to get all the commands that are in the commands folder to be registered?
Heyo Friends,
I am currently working on a vod platform and I am struggling with the chat stuff.
The goal is to display the chat messages in sync with the player, while also keeping a buffer of the last 50 messages.
Rewinding and going forward (seeking) should also be possible
I have a few questions which can't seem to find a good answer for:
- how should I actually load the chat?
1.a should I just download the whole Json (8h stream = 2.1mb JSON)
1.b maybe ask the API to give me the message at timestamp x + the next 25 so I don't flood the api with requests - How should I handle seeking? (an Idea was: dump the buffer, ask api or something for the current message of timestamp x + the last 50)
This is the code:
https://paste.helpch.at/esezatuneh.java
what am I doing wrong here?
what is on line 55?
MultiBlockChangeInfo[] changes = container.getMultiBlockChangeInfoArrays().read(0);
well that means the packet doesn't have any MultiBlockChangeInfo ig
are you sure you don't want to use write ?
how should I modify the blocks in MULTI_BLOCK_CHANGE then
I am using write
its a ProtocolLib packet
if i add {deluxetags_tag} to essential config it wont work
#general-plugins please
okay 😄
is this the correct way to slide string ? prefix = content[1][-2::]
Приветствую. Подскажите, знаете ли вы, как сделать в deluxemenus такую систему:
- Перечисление игроков. Показывает в меню (Забанить игрока), головы, которые = количество игроков на сервере (Допустим 10), в меню будет 10 голов.
Я слышал, что это возможно реализовать, но нигде не могу найти.
English only @slender whale
If I do something like this in my class
public Button setHoverColor(Color c) {
this.hoverColor = c;
return this;
}```
it will return the updated object right? (making it basically a builder)
(should probably separate the builder from the actual button...)
unsure
Yes
Anyone good at reading crash reports and knowing what's broke/
Someone is
?help
» Give the helpers some details
» Ask suitable questions
» Be polite
» Wait
Разбира се, че е възможно! Само трябва да използвате PAPI и други добавки. Също така можете да намерите подобен готов. Аз също се интересувам. Отново може да комбинирате Skript GUI с DM.
oui oui baguette
vodka
Someone have GUI for Plotsquared?
wrong channel
you still have to use the right channel, regardless of your nationality 🙂 #general-plugins
I wasn't sure about my subject
https://mcpaste.io/61b25d343476d07d Can anyone explain why my server keeps crashing? It's daily and please reply or ping me if you can tell me what's wrong
Interesting how only some Bulgarians understand Russian, but all Russians understand us
Anyone know how to avoid the issue that when armorstands have setMarker applied to them they dont take any velocity
Not sure if you can, marker has a lot of odd side effects
Any specific reason why you need them to be markers?
id assume they dont want them to have a hitbox
tho tbh maybe using packet only armorstands would be better idk
Yeah, issue with packet only is you need to suppress updates on it
What are you trying?
You have to set a new location with the teleport not before.
Entity entity = ...; // Your entity instance
Location location = entity.getLocation();
location.setYaw(90);
entity.teleport(location);
^^^
I would clone the location incase you variablized it and want to teleport it back though.
well judging by him adding +5 to yaw and pitch I think he just wants to make it rotate or smt
pls anyone have canva for teams
Not really a dev question but more a math question:
How do I write this in one equation where the first number in every parenthesis keeps getting 1 added if that makes sense
((a • b + b) + x ) + ...?
Nvm found it, was looking for this
it is actually Σ n * 45000 + 45000, the limits of the sum are already [3, 5]
what you have there is 45000*4 + 45000*5 + 45000*6
Oh yeah true, thank you
Does Waterfall support fabric servers?
gaby, it's the same thing
n * x + x = x * (n + 1)
No, Fabric Proxy-Lite only supports Velocity
it does that a lot
Is it possible to dispatch a command to backend servers through a bungeecord plugin?
Tryinna figure out how
Trying to prevent my paper servers from staying on when Bungeecord is not running
Is it a bad idea to have these paper servers ping Bungeecord every 10 seconds, and if it fails to establish a connection have these paper servers shut down?
that sounds more like you want some sort of container orchestration
because how are you going to have the servers turn themselves back on?
how can players remain connected if the proxy goes down though?
How can I decode this into x, y, z of the Location?
Container orchestration?
k8s
Huh
Is that complicated? It feels like an extra layer of complications on top of learning Bash/tmux/bungee
kubernetes
uh
honestly not sure, never used it
but it's the "best" way of doing something like this
reading about it, it sounds like it's a LOT for what i'm doing
What I mean is that it sounds like something I might want to add later on when I got more to work with
Ehhh
I’d say it’s much better in the long term than making some janky pinging plugin and having to deploy that on every server
Nah I mean i don't need that yet
honestly doesn’t even need kubernetes, just put your entire stack in a docker compose file then you can start and stop the whole network at once
"Entire stack in a docker compose file" what
Are you familiar with docker (compose)?
Not really
Not sure what that is haha
pterodactyl panel
I'm using PuTTY and TMUX
eek
What
thats a pretty primitive way of doing it that will get quite cumbersome after you have more than a few servers
especially if you want to automate stuff
Ah
I have been using this since I have been learning it at Uni
What does Ptero do exactly? Do I connect to the server similarly to how I would with PuTTY but it's got an interface instead of just a console panel?
Never heard of Multicraft either
I've never really made a server network before, only ever made plugins and mods
ah okay
well yeah, the best way (if you care about future proofing) is almost definitely going to be docker-based in some way
whether thats ptero or you just manage the containers yourself
ptero gives you a nice UI but doesnt give as much fine-grained control
Reading about Ptero it looks pretty difficult
The setup itself is relatively straight forward
Idk it don't look simple to me 😂
to be honest for a large part
you're just step 2. copy paste, step 3. copy paste
a large majority of the guide is just, paste this line in
it only goes wrong if you do something out of order or set up something else differently
There's this huge warning about how the page is NOT about copy pasting stuff in
Haha
Yeeah it says about "consulting with my operating system's package manager" which I have no idea what it even means
if you're on ubuntu or debian, apt
yeah i am on ubuntu 16
I think
16 💀
Trying to figure out what version I am on
uname -a
Linux GGUSM 4.4.0-193-generic #224-Ubuntu SMP Tue Oct 6 17:15:28 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Not sure where I read my version in all that
good question
maybe lsb_release -a ? 
Ubuntu 16.04.7 LTS
Yeah it's a machine my father won at some work lottery
It's got 192GB of RAM and it is generally very powerful
But I assume it's pretty old?
ubuntu 16.04 came out in almost 7 years ago
id have to say probably, or if it can run it, it may not be recommended
Hmm okay
even down to simple security patches in the past 7 years
I won't move on to Ptero then till my dad updates it then I guess
I can still work on paper plugins and bungeecord plugins though right? Without having to rewrite them once I use ptero
you wont need to rewrite them to work with ptero
Yeah I guess it's mostly just configuration changes and learning how Ptero actually works
it is a general game panel (and not only games)
updating should be pretty easy FWIW
you could probably do it yourself in like half an hour
Cause what I was thinking was to continue doing things through PuTTY, and once I am more familiar with Linux through this I can move on to using Ptero
Yeah, but since it's not mine I wanna make sure he's fine with it
I don't see why he wouldn't be
But i'd rather be sure
Does this make sense?
sure
very true, i am really starting to feel the lack of fine-grained control lol
So Ptero is easier to use but provides less control
it's not like it's urgent, just something to consider if/when you want to scale up
But the longer I wait the harder it will be to scale up?
yeah that's the whole point of it
it's a cute little web GUI that manages your docker containers basically
and has a lot of provided features like a scheduler and network allocations and autochanging configs and stuff
To restart servers every so often and such?
it can do that
to do anything really, it's basically just a cute cron GUI
Isn't that all stuff that can be done through bash scripts too though
but yeah we use it for server restarts, setting temp permissions and stuff
well of course
but why do it in a script when you can press a button
but this feels more reliable and gives you a nice UI to customize lol
A better learning experience I guess
i definitely don't think manually doing a bunch of shit is worth the "learning experience"
maybe because i'm already quite familiar with linux but god that stuff sucks
now i've just moved up a level to problems ptero doesn't solve, but it's quite hard to move away from it at this point lol
what can't ptero do that you need? I'm curious
ur mum
higher level orchestration mostly
just stuff like nicely synchronizing my config files between servers via an overlay filesystem, making new servers is a pain in the ass, the web text editor is lacking, etc.
me when ptero does my mum 
but you can create extensions though 
sure, but i'm not going to do much of that in PHP lmao
What makes setting up Ptero harder?
The bigger the network is the harder it gets I imagine?
fair Star 🤣
oh nothing makes setting up ptero harder
setting up new servers is still absolutely easier with ptero than manually
it's just still a pain in the ass for the kind of stuff we want to do
it’s not like it’s much harder, it’s just more files to move, ports to setup, etc
The earlier the better really
most of the problems we have are synchronizing various files between all the servers in a composable way
even with like 1-2 servers there’s not really any reason not to use it
I won't have more than 4 servers for the first couple months anyway
For the common person running a server ist perfectly fine
oh yeah no it's more than fine, it's a superb choice
Yeah star has more enterprise-y requirements
Well okay, once I update Ubuntu I will look into Ptero
To be honest
don't be honest
Regarding your original question with the shutting down, is it even necessary?
Alright major issue
Lol
I will need to give some context about my living situation so this is clearer
“Because kubernetes killed my grandma, okay?”
The server is in Sweden, in a house my family and I have there
I am currently going back and forth between Italy and England, as I study in the UK and I come in Italy for the holidays
thats a lot of traveling
It is indeed
But what I am saying is
If through updating the server's Ubuntu version shit goes wrong, nobody is in Sweden to put it back on its feet
And I'd have to fly there to get it back together (or my dad would)
Well then the question is if you think it’s worth the risk or not
For what it’s worth there is very low risk
My dad says that there is some risk still
There’s a 90+% chance all will be fine
Though he also said that the machine has Apache which can be used as a webserver
Idk if that's any good honestly, haven't ever looked into it
Yeah flying to Sweden is expensive as hell from both the UK and Italy
nginx supremacy 
It’s not really relevant in this scenario, apache is fine although nowadays nginx is the standard
Why is it not relevant
why is it relevant?
I have no idea
How does that contribute to / alleviate the updating risk?
He told me that if I need a webserver I can use that idk 😂
Nah it's about using that instead of Ptero
its with
the web ui is just how you access ptero
using apache with ptero is very simple because its just pressing one of these buttons and continue following the guide
Ptero 
you’re*
im gonna make you derank back to diamond brister
I find that unlikely
For example, I have a client with about 15 servers, they can spin them up, move them across nodes, etc, with the click of a button.
im gonna hack into the blizzard mainframe and set your SR to 3200
I mean there is objectively a small risk of updating breaking shit no matter who does it
Make new ones in under 15 seconds and assign them a port
And it does more than just Minecraft.
Issue is that Ptero might not work on Ubuntu 16, my dad's not really for downloading it in case shit goes south
of course there's always the potential option of just renting a VPS from somewhere if you have a bit of cash to spare
and then if you break anything you can just reset it
Oof yeah Ubuntu 16 is EOL isn't it?
what's the use of a server with 190 smth GB of ram that runs a 7yo OS version?
Yeah but since we've got this machine that costs tens of thousands of dollars it'd be a shame not to use it
damn it's a supercomputer?
I've mostly been using it to run medium sized servers with friends (20-30 people) without spending a cent
this gets more and more interesting
I guess?
ok but do you have a reason to use ubuntu 16?
you could use a VPS to learn how linux is setup and how to use pterodactyl
gaby scroll up
and when it comes to upgrading the fuckin nasa pc you have, you have enough knowledge
it's about the risk of updating breaking shit
Idk my father's been studying this shit for decades now so it's a bit tough to argue against what he says haha
yeah, I know, I'm just saying why his dad is against updating
for that reason
My dad just picked up 100TB of storage for our in-house system. I think that's a total of 132TB now? I'm like... my brother in christ, what do you need all that storage for?
you never know 🤣
He really said "Plex"
you have no idea how much hentai i could download
your dad is planning to store PH on your in house system
I want to set up one for our home 😦 but the old pc that I have is not good enough
guarantee
I'm trying to figure out how powerful this thing actually is
Tried running lshw but there is way too much shit
neofetch?
We had a 1U enterprise server blade and a regular PC and he's decommissioning that old PC for a new one he just bought.
Apparent there's a couple good Reddit subs for this stuff and I think he spent less than $600 for everything?
Well, the storage at least.
there's a couple good Reddit subs for anything 😌
unable to locate package neofetch sad
you got a 1U what?
I think closer to $800 / 900
when was the last time you apt update'd lol
I think that's the right term for it. He has a intel enterprise server blade / rack? Idk. It's whatever goes in the racks.
I have no idea
probably 7 years ago
lmao classic
I thought those were called blades. Idk hardware. I do software.
I've done it but still nothing
i don't even know if you have to restart to upgrade to at least like 18.04
Probs still more updated than some of my client's machines.
i guess for the kernel, but you don't have to restart for it lol
Yeah that's what I'm afraid of
Scalable Rackmount System for challenging and noise sensitive environments with 8th Gen Intel® Core™ i7/i5/i3
anyway regarding the actual problem, im not sure theres much we can say - it's up to you if you think it's worth the risk or not. but in my experience i've never had a system bricked to the point that you cant even ssh in after upgrading
nah im spooked of this
it seems like something would have to go catastrophically wrong for that to happen
yeah the only time i've not been able to ssh after something is my own fault setting up Wireguard incorrectly lmao
i mean
Technically
The house isn't empty
We rented our house out
The server is locked behind a door inside of a wardrobe
i mean it's incredibly unlikely the server just like won't boot again
https://www.kontron.com/en/product-configurator/app-p155747 1k for an i3, 8GB of ram and a mother board ☠️
and if that does happen, those people living there are very unlikely to be able to fix it lol
Yeah true
I'll just call my dad later today and see what we can figure out
He's currently in Estonia, worst comes to worst he can just fly back to Sweden haha
try using Entity#setRotation instead
not the 1.12 💀
well that is unfortunate isn't it
you're using nms right
surely
theres like setHeadRot or something similar in the nms entity
probably
damn setRotation was added in 1.13
server blades are specifically servers that rely on the PSU / network interfaces a specialized enclosure provides
a single server blade is a bit cheaper than a regular rackmounted counterpart but you need to buy the enclosure for it to be usable
Is there an easy way to prevent an Entity's entityID from changing when the chunk is unloaded?
I have some static ArmorStands that I'm attempting to modify with packets, but the ArmorStand's entity instance keeps the initial entityID that it is spawned with instead of the updated one once the chunk is reloaded
How can I get the entityID of the ArmorStand via it's saved instance?
why are you modifying it with packets?
Client sided meta data change
ah
wb UUID lookup?
also possible memory leak if there are a lot of entities which stay unloaded (maybe)
Essentially, this
public static int getStandID(ArmorStand stand) {
for(Entity entity : Bukkit.getWorld("darkzone").getNearbyEntities(CONFIRM_LOCATION, 10.0, 10.0, 10.0)) {
if(!(entity instanceof ArmorStand)) {
continue;
}
if(entity.getUniqueId().equals(stand.getUniqueId())) {
return entity.getEntityId();
}
}
return 0;
}```
Doesnt return the same as
```java
stand.getEntityID();```
ye I think you can do isValid check
maybe
and if that doesn't work then the getStandID
You mean my method?
ye
Yeah, I try using that but the packet doesn't target the right entity somehow
I have no idea what's happening
It's like the client is still expecting a different ID
Oh wait, there's some super strange behavior.
Like 1/10 times it displays the metadata change for like 1 frame before reverting
Everything works fine until the chunks are unloaded
Ok, I ended up just writing awful code that respawns the entities when the chunk is loaded
Is there any way to teleport a player from one backend server in a bungeecord network to another?
Through code in a paper plugin
bungeecord plugin messaging if you want to do it from a spigot server https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/#connect
https://www.spigotmc.org/wiki/sending-players-between-servers-in-bungeecord/#sending-the-player or this for a bungeecord plugin
Yeah it's a paper server but I assume it's the same
So Connect followed by the server name
In two separate lines
yeah, but you have to do what's above as well, that is just the message, but you need to register a channel and send it
Yeah of course
I want to create some form of API plugin for my other plugins to depend on, though I want it to be private if possible as I will just use it for own private plugins.
Issue though is that if I deploy it to a maven repository, it has to become public
I see
For now I made it public anyway since it's better for my plans
Though, for some reason it won't let me add my project as a dependency
https://jitpack.io/#Klyser8/klynetapi/v1.0.0 it is on there, so I don't see why adding those two to my pom.xml doesn't work
What am I supposed to do
Looks like it's building with an old version of java, so probably need to tell jitpack to use a new version somehow
Time to read their docs 🧠
just gotta change the java version in my project's pom right?
since it's 1.8 though it's supposed to be 17
jitpack will build the project with java 8 unless you tell it to use a different version through jitpack.yml I believe
Maven projects that specify a target version in their pom will be built with that target version.
do you have a target version set?
<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>```
I changed that to 17 from 1.8
Yeah build success
great
thank you
https://github.com/PlaceholderAPI/Bungeecord-Expansion/pull/10 fixed bungeecord placeholders for servers with upper case names
Anyone familiar with this error? unsupported class file major version 61
Getting it when trying to build my paper plugin
You are building your plugin on newer Java than your server runs on
I get that error when attempting to build the plugin though
61 is JDK 17
Not in the server
Maven
Are you using maven-compiler-plugin?
maven is stinky 
I used to use gradle but I wanted to try using Maven again since i'd run into a lot more problems with gradle usually
Show me your pom.xml
incredible
Do you have JDK 17?
Yeah
Thing is
I have built another plugin with no problem
It's this one that's having issues
Literally 10 minutes ago
Try updating maven plugins
I mean I imagine that's not the issue? Since I created these two projects 30 minutes apart and one works while the other one doesn't
The issue is with Matt's framework for some reason
The way I am adding it in my pom.xml
It can't be
I mean
Removing it solves the issue
Or I mean I think specifically it's the plugin
The maven shade plugin
What is the issue?
This is my pom.xml: https://paste.helpch.at/xijubimoxu.xml
Still getting the Unsupported class file major version 61 error when trying to build my project
That is, it was moved to triumph-cmds
What does that mean
But it shouldnt stop you from building with java 17
This is the continued version
Ahh well cool
I'll look into that instead
Could be that what's written on MF's website is outdated
Yeah that's the thing
My other plugins on Java 17 work
So it's definitely something with what I got from MF's website
If you go to project structure, do you have jdk 17 selected?
Yeah
Removed MF it builds fine, i'll try triumph instead
Where do I find the version though
On the website it just says (Soon)
You can open the repo and search, I think it is 2.0.0-SNAPSHOT
que
Click the link
Yeah I'm on there but there is a LOT of stuff
It has a folder structure, because they are folders
Yeah but what am I looking for?
So go to dev/triumphteam/
Triumph cmd-core?
so yeah it is 2.0.0-SNAPSHOT
Good
Now this
I already have the shade plugin in my project
Should I replace it with that?
You only need the relocation part
Ok let me see
Try mvn -version
you need to update the shade plugin
.
3.2.4 doesn't support Java 17?
idk, try 3.4.1
Weird
invalidate caches and restart here we go
Now it works?
try to update maven as well
Okay invalidating caches and restarting fixed this
great
Now try compiling your project
And now it works
Nice
Though there's a bunch of warnings
yeah the reason it didn't work when you added the command library is because that's when the shade plugin was used
if it is a warning and it doesnt stop you from building, then ig you can ignore it?
Yep
Yeah I suppose so, just curious on what's up with that
Two libraries contain one exactly the same class
Manifest
klynetapi-1.0.0.jar, triumph-cmd-bukkit-2.0.0-SNAPSHOT.jar, triumph-cmd-core-2.0.0-SNAPSHOT.jar
Yep
https://stackoverflow.com/questions/12767886/use-of-the-manifest-mf-file-in-java by default you will only see manifest version, but it has other uses
An easier solution to your problems would be to swap to gradle ;p
Hello how do we remove the multiple players attack with the sword in spigot 1.9.4 ?
Because when we attack there is the blast of the sword that damage nearby players
you might beable to stop it by cancelling EntityDamageByEntityEvent when EntityDamageEvent.DamageCause == ENTITY_SWEEP_ATTACK
anyone know if this would work for updating config files (when user updates plugin that contains, for example, new messages)?
save old values -> replace old file with new default one -> set new values to ones from old ones
or am i just being silly and there is a much easier way?
Does anyone have the functional deluxejoin for 1.19?
DeluxeJoin was discontinued
Could you update it for me and I pay?
thanks
any little help about how to get remapped jar for 1.19.3?
i tried
java -jar BuildTools.jar --remapped --rev 1.19.3 but i didn't get remapped jars
is it not worth just doing java -jar BuildTools.jar --rev 1.19.3 where you get everything
but it should be in /Spigot/Spigot-Server/target
I've got ProtocolLib on my 1.19.4 server, though whenever a player joins an insane amount of very long errors start spamming the chat/console
Not sure if anyone knows what might be up with that
(Paper server)
Which ProtocolLib version are you using?
4.8.0
I'll paste the error in in a sec
It's just extremely long, it goes beyond the size of the console
Get the dev build instead https://ci.dmulloy2.net/job/ProtocolLib/616/
No
thanks, managed to do it
Cool cool
any chance someone could explain to me why when i import ||(sorry that i dont use gradle/maven, i just dont put anything out there ofr public but i test/try out for myself on my local pc that's why it's easier for me to just import .jar and not rely on somewhere else, but i didn't use 1.19 files yet)|| spigot 1.19.3 either remapped or any other version i got from BuildTools, Particle.DUST_COLOR_TRANSITION or Particle.VIBRATION won't apply (it says Particle.DustTransition cannot be resolved to a type)
do i need paper api .jar and if yes, where can i get it? i tried getting it from here https://papermc.io/repo/service/rest/repository/browse/maven-public/io/papermc/paper/paper-api/ but every single .jar file from here leads to 404 not found (nginx)
solved, i did not get paper api .jars but i removed paper 1.16 (or older) jars from my eclipse external libraries because it was having priority and it basically ignored some stuff from spigot 1.19 shaded jar that i got via BuildTools... so i just removed paper 1.16.5, applied dependencies, then re-added it and applied deps again and it works now fully 👍
Yesm, I am using it, do you have the repository declared?
<repository>
<id>dmulloy2-repo</id>
<url>https://repo.dmulloy2.net/repository/public/</url>
</repository>```
<dependency>
<groupId>com.comphenix.protocol</groupId>
<artifactId>ProtocolLib</artifactId>
<version>5.0.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>```
Ah I see, reason why it's working is because I added jitpack add https://jitpack.io
I also have this:
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>```
?
Could that be the problem lol
Yeah could be
Rip then
Just realized that it's not working for me right now either, it did yesterday though
man what is this luck, it's the last day for a couple weeks I can work on this fml
Nah, plib's repo
Clone it and publish to maven local
Ah OK I read this for like 5 secs and saw jitpack lol
Not sure how you clone on jenkins
No from jenkins, from github
The latest version on there is 4.8.0
Which is from a year ago, the code in master is recent
Ah yeah 2 days ago
The minecraft version for protocollib 5.0.0-SNAPSHOT is 1.19.3
It works on 1.19.4 for the most part though
I see
I can't mvn clean install cause the pom has 38 errors
Could not transfer artifact org.spigotmc:spigot:pom:1.19.3-R0.1-SNAPSHOT from/to dmulloy2-repo (https://repo.dmulloy2.net/repository/public/): transfer failed for https://repo.dmulloy2.net/repository/public/org/spigotmc/spigot/1.19.3-R0.1-SNAPSHOT/spigot-1.19.3-R0.1-SNAPSHOT.pom, status: 503 Service Unavailable
Yeahh
You need to run buildtools for 1.19.3
What is that
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
what then
Once you run it for that version you can go back to plib and try it again
Ah okay so that's all i gotta do?
Then you need to publish plib to maven local
Yeah
Where's that found usually? i forgot
Nothing
oh shit yeah it works now
I think? at least, 5.0.0-SNAPSHOT is not givin errors anymore
Does it make sense to shade in protocollib, if this plugin is actually an API for ALL my plugins?
For personal use
Nah, it makes more sense to have it in the server instead
Yeah but then each plugin I make I will need to add ProtocolLib as a dependency and its repository in the pom.xml
And when I update protocollib, i will have to update every single one manually
If I shade it in my API plugin, won't it be faster/easier?
Idk if im missing something that makes this dum
Is it normal that the dependency doesn't work until about 5 minutes after you've done mvn clean install?
you will still have to depend on the core, hut id assume ypu could do that
also afaik you dont have to update the protocollib api everytime, only if it doesnt have something you want to use
i could be wrong idk
I see
Does TriumphTeam support tab completion?
I don't see the @Completion annotation there used to be in MF
I believe it is called Suggestion now
Is anyone aware of some weird bug where in IntelliJ IDEA the cursor stops working
It wont let me click anywhere
No
If I make changes to a project on my local maven repository, how long does it take for other projects to see these changes?
It's normally immediate, you just need to refresh the project using it
Am I missing something
I run mvn clean install on the project, then on the other I just reload all maven projects right?
maven moment
Not sure how it works on maven, but yeah publish and reload
Yeah it's not working for some reason
Not even restarting does anything
Yeah for some reason even after doing mvn install, the project in my .m2 folder is outdated
this enum constant dont exist in spigot 1.9.4
spigot 1.9.4 💀
Does setting a player's Y velocity while jumping not work?
@EventHandler
public void onPlayerJump(PlayerJumpEvent event) {
Player player = event.getPlayer();
playTimeTravelEffect(player);
Vector playerVel = player.getVelocity();
playerVel.setY(5000);
player.setVelocity(playerVel);
}```
I tried with 5 and 5000, it just launches me in the air slightly higher and that's all
Where can I find people who are doing DeluxeMenus? I need to hire someone to do some DeluxeMenus designs for me.
How can I access this channel?
I don't have it.
Hello, how can i intercept "PacketHandshakingInSetProtocol" in spigot 1.9 i tried but the packet is just never sent (i want to get the player client version and i dont want to use ProtocolLib ) here is what i made ((CraftPlayer) player).getHandle().playerConnection.networkManager.channel.pipeline().addBefore("packet_handler", "protocol_handler", new ChannelDuplexHandler() { @Override public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception { System.out.println(msg); if (msg instanceof PacketHandshakingInSetProtocol) { System.out.println(msg); final PacketHandshakingInSetProtocol packet = (PacketHandshakingInSetProtocol) msg; final int version = packet.b(); System.out.println(version); } super.write(ctx, msg, promise); } }); I also printed all the packets sent but i cant find Handshaking one on player connection
bump 💀
why are you supporting such a weird version
like, use either 1.8.8 or 1.12.2, everything inbetween is irrelivant
might be time to reinstall intellij completely
entity sweep attack cause was added after 1.10 was released
i was just pondering about it and thought of that lmao
and i cant do what u suggested because i tend to include comments with each option
the first part of each of my plugins' messages file is just a huge documentation which i should probably just put on github 💀
a
I auto update config on each update
comments get deleted but they have default config on github
i set path and value for important warnings xdd
i honestly hate when plugins do that
thats the only easy way to make it
i hate even more when they say
"updated to 2.0, delete config"
"add this to config"

ye that sucks too, which is y i rly want an auto-updater for it lmao
whenever that happens, i gotta:
- find wherever the heck the default config is
- copy it
- compare to current config to see what changes i need to make (i tend to copy all new stuff [options + comments] so i dont have to keep going back to default config)
- save new config
depending on how accessible the default config is, how many changes were made, and how organized the config is, the process usually takes 10 minutes to multiple days (if i gotta contact support or something)
to copy comments you need latest versions right?
yeah? idk if i understand what ur asking tbh
i mean, to save comments and edit them or add them
you need new versions of servers
i mean spigot 1.19
doesnt work in 1.8 - 1.12
ohhhh, ive got no idea, never tried editing comments, i assumed it wasnt possible (as per experience with some plugins that would delete all comments after auto-updating)
which is why i thought of my original idea
i remember they allowed that in new versions bc of snakeyml update
but since it was not possible in old versions (legacy) without external libs
it's not an option for me
autoupdating config and rip comments is the only option

does spigot use configurate? or only paper? my server sometimes crashes cause of configurate errors and i always see paper, idk about spigot tho
Spigot doesnt
It’s just a yaml library (which I’m pretty sure uses snakeyaml) that paper uses, it was made by spongepowered
👍
Anyone messed around with fine tuning an AI model to replace manual plugin support to users and ease the support friction? Curious what development path you took and which model you built off of etc.
I haven't
I feel like it'd be pretty hard (and likely would cost some money for hosting the ai) since you gotta teach the AI everything about your plugin and possibly a lot of things about minecraft and spigot
there are existing services out there
chatbot AIs for support which have been out for a long time now iirc
How do i get the blocks between that two plots? Coded my own plot system.
Location#distance
mayhaps
or a silly Math#max - Math#min
but i dont know math i could be totally wrong
couldnt you get the corner of a plot + 1 block and then the corner of another plot + 1 block and then aabb the area
since more then likely your plots are on a grid
thx
i am so confused right now
i hate spigot
in an interact event, when setting the item in the main hand to the exact same item the player had after checking if the player has an item in hand, it breaks juke boxes
var player = event.getPlayer();
if (player.getInventory().getItemInMainHand().getType().isAir()) {
return;
}
player.getInventory().setItemInMainHand(PermissionUtil.check(plugin, player, player.getInventory().getItemInMainHand()));```
PermissionUtil just returns an item, and usually the same
perhaps cancel the event or smth
but i dont want to cancel it?
i don't really understand what's going on ngl
what you're trying to do and what is actually happening
thank you gab
fucking hell
xD
NOW I have super reactions lmao, but I didn't earlier
im making a plugin which can apply wraps to an item (different texture) and I want to remove it when the player doesnt have permission
you started very bad @dense galleon
ChatGPT
ChatGPT made me this script to update my paper servers whenever it is run.. Does it look right?
It seems to work to me though.
https://paste.helpch.at/ubazanowex.bash
I know no bash, ChatGPT be helping
so when clicking the juke box, somewhere between me checking if there is an item in hand and me setting an item in the hand, the disc gets removed from the inv
I mean, from what you shared before, simply having this
@EventHandler
private void on(PlayerInteractEvent event) {
var inventory = event.getPlayer().getInventory();
inventory.setItemInMainHand(inventory.getItemInMainHand());
}
should be enough to "break jukeboxes"?
You are setting player's item in hand and it is also used on the jukebox
apparently yes
Error: Invalid or corrupt jarfile paper.jar

that url path for the downloads api has been discontinues long ago
chatgpt not having updated information
instead of papermc.io/api/v2/...
you should only set the item in hand only if they no longer have the permission to use it, not all the time
Bash really uses fi to close an if? lmao
YES 

That's actually hilarious I saw that
esle when?
so, any ideas?
.
oh wtf
and perhaps if you have to update it, cancel the event? Or at least for when the block is a jukebox and the item is a disc

