#help-development

1 messages · Page 923 of 1

shadow night
#

Exactly

fallen lily
#

fuck the jvm *

shadow night
#

Why was kotlin written for the jvm?

fallen lily
#

Ye

shadow night
#

Why can't it be a seperate lang and just not fuck me off in this channel

fallen lily
#

^

#

JetPack Compose my beloved

shadow night
fallen lily
#

Bro has NOT seen KotlinC output Before

shadow night
#

Nah

fallen lily
#

Groovy has more built in obf

shadow night
#

I stopped trying to decompile shit longer ago

fallen lily
#

But it’s definitely harder to read than just pure java compiled

shadow night
#

True, prob because kotlin specific stuff

#

Ah fuck no, not the darwin again

fallen lily
#

and also nullability chr king

#

But you can remove that with compiler options

shadow night
#

I would migrate over to kotlin if I didn't enjoy java as much as I do

fallen lily
#

Yeah its getting better

fallen lily
#

And now ive stuck with it since

shadow night
#

I kinda wanna migrate over to C sooner or later

rough ibex
#

Kotlin has been great for me

shadow night
#

I started making lots of standalone apps recently and I might wanna go for performance

fallen lily
rough ibex
#

Well C is not java

shadow night
#

Damn bro, my brain is already melting with I/O streams, chill out

fallen lily
#

It is, until you try and scale beyond 3 source files which don’t require dynamic allocation

#

true

shadow night
#

The only assembly I might learn is 6502 assembly or whatever it's called cuz I like the challenge old consoles offer

fallen lily
#

Zamn

shadow night
#

Have ya guys seen that guy who made a CPU in excel?

#

Like, a literal cpu with ram, rom and a screen, all in excel?

#

Ik

#

I made something similar in mc before

#

A PRNG

#

Bitwise operations are usually faster but this is microoptimization lmao

river oracle
#

& 1 a by about 1 nanosecond

#

And thats if the compiler doesn't just switch % 2 to & 1 automatically

grim ice
#

Anyone has some type of idea?

grim hound
grim ice
#

project ideas

grim hound
#

uh

#

you can help me develop my antibot

#

it's pretty sick

#

you could add like BungeeCord and Velocity support

grim hound
grim ice
umbral ridge
#

create a fork of spigot and rewrite it from scratch

grim hound
umbral ridge
#

what antibot

grim hound
#

many plugins rely on CraftBukkit

#

and on reflected fields

#

so you can't really rewrite everything

young knoll
#

You can remap that

#

Not easy, but doable

stark moss
chrome beacon
#

The plugin is disabled

stark moss
#

how do i enable it

#

bc it worked fine before i added the other commands

#

wait yeah it does disable like instantly

young knoll
#

Check startup logs

stark moss
#

[21:50:04 INFO]: [AmericanFootballEnhanced] Disabling AmericanFootballEnhanced v1.0

young knoll
#

My bet is you forgot to add a command to plugin.yml

stark moss
#

shii

#

i am very dumb

#

ty

fallow gyro
#

Hi! Just wondering, how performant is the copy partial matches method here https://hub.spigotmc.org/javadocs/spigot/org/bukkit/util/StringUtil.html#copyPartialMatches(java.lang.String,java.lang.Iterable,T) ?

I'm expecting to be dealing with a list anywhere from 1 element in size all the way up to a couple thousand elements. Given that I'll be calling this within a tab completion method, I'd like to ask, how performant is this method? Would I be better off implementing my own method to get partial matches?

slender elbow
#

it's pretty straightforward

#

ig you could reuse a pre-sized list so you aren't creating a new one that is getting resized all the time

#

but the actual checking is very simple

stark moss
slender elbow
#

alternatively use a prefix tree or smth

young knoll
#

What's that java class to format time again

#

DateTimeFormatter?

fallow gyro
# sullen marlin do you think you can do it better

I'm not sure haha. I guess there's maybe the option of using a hashmap somehow (Although I'm not sure how that would look), but I'm wondering whether I'm looking to micro-optimise here and worrying too much about something which doesn't matter a whole lot.

eternal night
#

I mean, depends on the actual size of the collection you are passing

#

as emily said, prefix tree would be a potentially faster alternative

#

however, that is only really nice if the elements in that collection don't change too drastically too often

#

I would just not bother that early

#

its super simply to switch out later

#

go with the existing method and if you run into performance issues with it down the line, revisit it for improvements

fallow gyro
# eternal night I mean, depends on the actual size of the collection you are passing

It could vary. The data is all stored in a database, and could range from 0 elements all the way up to hundreds of thousands (Although I'm not expecting any more than a couple thousand). The list I'll be using is just an in-memory cache of a column in the table.

But yeah, I think based on what everyone's saying here I'm probably looking to micro-optimise something which, as you say, can be easily fixed later should any issues crop up.

eternal night
#

Yea NODDERS

fallow gyro
#

Alrighty then lol. Thanks all for your input! Hope your days go well.

sterile token
fallow gyro
sterile token
fallow gyro
sterile token
#

Also redis is not limited just to catching, you can also send something like push-pull. Where you publish data and then subscribe to it, getting it anb/or sending it back in different servers

fallow gyro
#

Oh interesting. Not sure how I'd be able to use that, but It's nice to know that's a thing

sterile token
fallow gyro
#

Trying to implement database functionality with hashmaps is a bit tedious and time consuming to do

fallow gyro
#

Do you know whether I'd need to still interact with Redis within an async task, or is it performant enough to access from the main thread?

sterile token
#

Because what if the connection goes off by any reason? Whole app or server is freezed until the connection recame back

fallow gyro
sterile token
#

Plus data to take in care that Redis is coded on native lang (C++) so its too fast for usage, supports data replication again many instances and even distribute it via many different locations by using clustering concept. Also data types it support is mainly binary and strings so that make it usable in any languages no mattering their data types

fallow gyro
sterile token
# fallow gyro By chance, are you a sales person for Redis :P

Redis is my whole life haha, i used it for deploying a "big network" which was expecting to be distribute against 2 locations, one for American and another for Europe. I take the big care of sincronizing data between server-proxy and proxies-proxies. There i have said anything you could think haha

slender elbow
fallow gyro
sterile token
sterile token
inner mulch
stark moss
#

Hi. Im having an issue where the bossbar doesnt update and the clock doesn't count down at all. /pauseclock, /resumeclock and /final do not work at all

Here is the code:
https://pastebin.com/pvNbQhD7

There were no errors

sterile token
sterile token
#

oh my bad 😂

stark moss
#

lol its good

sterile token
#

lmao weird my country detects that site as blocked because of suspicious domain actions

stark moss
#

lol

sterile token
#

also makes sense because the site is all in white, maybe thats one of it reason Hahah

stark moss
#

is there anything you can see that is causing the error?

sterile token
#

i wish could but the page starts loading and after some ms appears the message the web is not secure and blocked by my country because of privacity reasons and security risks. Sorry tho

#

can you use the next paste?

#

?paste

undone axleBOT
stark moss
#

sure

sterile token
#

that one i know i can open it

#

thanks and sorry tho

#

I wish i could help you

stark moss
sterile token
#

right it works, which was the issue?

stark moss
#

/pauseclock, /resumeclock, and /final just dont work

#

no error in the console

#

it just doesnt work

sterile token
#

okay, is the bossbar even created?

stark moss
#

/startclock works

#

oh yeah, the minutes:seconds things doesnt work

#

it prints like 6:1

#

and is like that the entire game

sterile token
#

Could you describe the mainly idea of each command

#

So i can check it more in detail and try to help better

stark moss
#

yeah sure.
/startclock - will start the countdown on the bossbar. it goes for 361 seconds. That is the countdown variable
/pauseclock - should save the bossbars progress, save the seconds remaining (pausedCountdown) and is supposed to pause it (Doesnt work)
/resumeclock - uses the saved variables from /pauseclock and resumes the countdown
/final - makes the bossbar title Final and displays each teams name and score. those are in other classes. it also sets the bossbar progress value to 0

#

@sterile token

sterile token
#

right perfect, sorry for not answering fast. Im currently working but i will check it

stark moss
#

update: i put all the code in a different class to see if the startclock command would be interfering with the class name considering there are other commands there. it didnt work. startclock is still the only one that works which means there is something wrong with the code of the other commands

#

and the minutes:seconds thing

ivory sleet
#

@twin venture

#

u still need help?

umbral ridge
#

how do you get a block face at which the block was broken?

umbral ridge
#

I want to cancel the BlockBreakEvent and then spawn a particle on the opposite direction of the block face that was clicked to be broken

#

red is the block face

#

blue is from where i want to spawn a particle

#

this is an example for blockface top

twin venture
#

so iam working on a package system daily , etc etc

#

so when a player click on it , he can recive it only 1 time a day , and after that he can recive it after 24h

sterile token
twin venture
#

how i can convert long to h , m , s?

sterile token
sterile token
river oracle
#

Self Proclaimed inventory Genius Stumped WIth Inventories truly Tragic

slender elbow
umbral ridge
#

thanks emily uwu

sterile token
#

I also asked all time the same question why spigot doesnt add some useful things, like something for time parsing in formats, getting indivual units like seconds, milliseconds, hours, etc of the parsed time. Also being allowed to re formatt it to display it in another format, etc

stark moss
#

Countdown Bossbar - /pauseclock, /resumeclock and /final fail to work

quaint mantle
sterile token
#

But idk as far as is not my own product i dont care, but definitly would be something i would always think for my own products

nimble mason
#

what's the velocity of a fully charged arrow? i want the arrows fired from bows to always be the speed of a fully charged arrow, no matter how much the bow was drawn back.

Arrow arrow = (Arrow) e.getProjectile();
                arrow.setVelocity(??);

what value should be in setVelocity to make this happen

umbral ridge
#

or rotation?

rough ibex
#

well particles dont have rotations

#

theyre billboarded

slender elbow
#

you'd just spawn a line of particles

#

it isn't one, it's multiple in a line

quaint mantle
#

what do you need boy

grim hound
#

I just created a new gradle project

#

why is it not finding the jar?

slender elbow
twin venture
#

so it decrease the time by 1 second ..

grim hound
#

and now this dud is red

slender elbow
#

show gradle file

#

?paste

undone axleBOT
grim hound
slender elbow
#

need java 17 for velocity

grim hound
valid burrow
#

u chache the inventory

#

and each second

#

you update the item

#

you want to animate

blazing ocean
#

does Player#setResourcePack support local paths?

umbral ridge
#

what is "data" ???
Cannot invoke org.bukkit.craftbukkit.v1_20_R3.block.data.CraftBlockData.getState()" because "data" is null

#

how can a block be null at a blockbreakevent

#

on top of that, I never call getState

slender elbow
#

only http and https are supported for resource packs URLs

rough ibex
#

But there are things out there to host a small http server

blazing ocean
#

gg

rough ibex
#

alongside your spigot

blazing ocean
#

i need to dynamically generate the pack

rough ibex
#

then youll need to put the pack in your little http server

#

figure out some way to host it then

#

basically you host a mc server at :25565 and an HTTP at :80

umbral ridge
rough ibex
#

you dont need HTTPS

slender elbow
wet breach
umbral ridge
#

nice explorer crashing again

wet breach
umbral ridge
wet breach
umbral ridge
#

hmm

wet breach
#

its com surrogate

umbral ridge
wet breach
#

that is it

umbral ridge
#

with a space?

wet breach
#

but you can't just kill that

#

since it provides other processes

#

and yes the process name has a space

rough ibex
#

Windoze

wet breach
#

so just use quotes or use task manager

#

killing com surrogate will not kill the task of moving or copying files

#

what it will do is force it to restart and stop processing other things it doesn't need to be doing and restart on the thing you want it to do

#

may take it a few seconds to do that

#

if you see multiple processes, just kill them all 😉

#

there will be one that you seem to not be able to kill as it comes back and thats the one for your copy process lol

umbral ridge
glacial narwhal
#

Hey! How can i do that a lightning strike don't delete items on the ground?

wet breach
umbral ridge
#

i couldnt find com surrogate

wet breach
#

Do you have the expanded view for task manager?

#

Killing explorer also kills com surrogate

ashen quest
#

Frostalf do u suggest ending random processes that take too much resources ?

umbral ridge
#

xDD

wet breach
inner mulch
#

is there a way to make this work so the method enforces the pipe which is being added to have the previous's pipes value as key?

wet breach
#

If you get that message best to probably leave that process alone lol

umbral ridge
#

I should restart my pc soon to install updates

wet breach
#

Wednesday appears to work for you

#

So why didnt you do it 2 days ago?

umbral ridge
#

I dont have time xD

#

It takes too long

wet breach
#

Then why did you choose wednesday? Lol

umbral ridge
#

that's the time of the notification

wet breach
umbral ridge
#

Not really no

#

I debloated my windows

#

did a clean sweep

wet breach
#

Apparently it still has bloat

umbral ridge
#

I left the updates on

#

because security updates are important

wet breach
#

So one of the things i recommend renaming is the game bar

#

Especially if you dont use the xbox stuff

umbral ridge
#

I dont but I actually need to have it installed to play games such as Sea of Thieves

#

which utilizes xbox login

wet breach
#

Its called gamebarpresencewriter it still runs even if you disable xbox stuff and likes to take up io time on the disk. Just navigate to where the exe is at. Take ownership of the file and rename it

umbral ridge
#

rename it to frostalf.exe

wet breach
#

If you want

chrome beacon
#

frostalfwashere.exe

wet breach
#

Windows updates reinstalls that file from time to time

umbral ridge
#

frostalf-the-bytes-lover.exe

wet breach
#

So a little annoying

umbral ridge
#

It does a lot of things when it updates

#

resets some of the settings

#

to its preferable state

wet breach
#

Yeah, i need to refind the defendet screen exe

umbral ridge
#

I was thinking of switching to zorin os

chrome beacon
#

I always use Sophia Script to mass change settings and debloat

wet breach
#

I keep getting this text input exe that runs and it comes from that process yet again even if its supposed to be disabled

umbral ridge
#

lol

chrome beacon
stark moss
#

Hi. Im having an issue where the bossbar doesnt update and the clock doesn't count down at all. /pauseclock, /resumeclock and /final do not work at all

Here is the code:
https://pastebin.com/pvNbQhD7

There were no errors

/startclock - will start the countdown on the bossbar. it goes for 361 seconds. That is the countdown variable
/pauseclock - should save the bossbars progress, save the seconds remaining (pausedCountdown) and is supposed to pause it (Doesnt work)
/resumeclock - uses the saved variables from /pauseclock and resumes the countdown
/final - makes the bossbar title Final and displays each teams name and score. those are in other classes. it also sets the bossbar progress value to 0

wet breach
#

Not sure why microsoft puts disable options if processes just continue to run

chrome beacon
stark moss
#

how do i?

inner mulch
#

this.countdown += myNumber;

#

this.countdown -= myNumberToSubtract;

stark moss
#

oh

inner mulch
stark moss
#

im newer to java sorry if i sound stupid

inner mulch
# stark moss wym by objects

so in java we have objects that are used to define stuff, your command is an object too. In your case it would be reasonable to create a CountDownBar object with a start() stop() function etc. and the logic within and then pass an instance of it to your command to manage it

worthy yarrow
#

Object oriented programming language is java... that being said everything you code has to do with an object. In your case multiple objects, such as strings, ints, etc stuff like that

inner mulch
#

i can send you some if you want

#

?paste

undone axleBOT
river oracle
inner mulch
#

which command?

#

you mean paste?

rough ibex
#

/s

inner mulch
#

/s ?

rough ibex
#

yes

#

end joke, end of sarcasm

inner mulch
#

?

wet breach
undone axleBOT
#

For Beginners:

Codecademy - Learn Java: Interactive Java programming course from basics to more advanced concepts. Perfect for absolute beginners.
https://www.codecademy.com/learn/learn-java
JetBrains Academy - Java Developer Track: Learn by doing with projects and challenges. It covers Java fundamentals to advanced topics.
https://www.jetbrains.com/academy/
Udemy - Java Programming Masterclass for Software Developers: Updated courses that cover Java 8 to Java 17 features. Suitable for those who prefer structured learning.
https://www.udemy.com/course/java-the-complete-java-developer-course/

For Intermediate to Advanced Learners:

Oracle Java Tutorials: The official guides by Oracle for Java programming—great for understanding the depth of Java.
https://docs.oracle.com/javase/tutorial/
Baeldung - Learn Java and Spring: Focus on Spring Framework and modern Java technologies. Best for intermediate learners aiming to expand their knowledge.
https://www.baeldung.com/

Practice and Hands-on Learning:

Exercism - Java Track: Solve exercises and get feedback from mentors. Great for practicing coding skills.
https://exercism.io/tracks/java
LeetCode: Practice your coding skills and prepare for technical interviews with Java.
https://leetcode.com/

Free Resources and Documentation:

Java Programming and Documentation: A comprehensive collection of Java programming guides, tutorials, and API documentation.
https://docs.oracle.com/en/java/

Community and Support:

Stack Overflow: A vast community of developers. Great for getting help with specific problems or understanding concepts.
https://stackoverflow.com/questions/tagged/java
r/learnjava on Reddit: Join the community of Java learners and get advice, share resources, and discuss projects.
https://www.reddit.com/r/learnjava/

Remember: Learning to program takes practice and patience. Don't hesitate to experiment with code and participate in community discussions. Happy coding! 🎉

wet breach
#

Here is some helpful resources to help with learning

stark moss
#

im already taking a course thanks

#

but ill keep those in mind

wet breach
#

Ah alright

inner mulch
#

i want this method to enforce this.
Pipe<?, K> previousPipe;
Pipe<K, ?> nextPipe;
it should take the previous's value as a key.

#

it doesnt work tho cuz i cant save the previouspipe

#

i was told to use a builder but couldnt quite get that to work as well

wet breach
inner mulch
#

whats that

wet breach
#

An api in java

#

Nvm

#

Probably not going to be useful

#

Only because after looking it seems it is only present in fx

#

And i doubt you want to rely on fx lmao

inner mulch
#

okay

#

thank you tho

wet breach
#

I wonder if the jdk has something similar kind of dumb it only exists in fx

#

Will have to look into that at some point

young knoll
#

Pretty easy to make

#

Isn’t pair just a class that with 2 generic objects

#

Basically Map.Entry

wet breach
#

Think so

vast wigeon
#

newPosition < 0: (-1 < 0) I get that error when trying to deploy my plugin, what does that mean?

rough ibex
#

uh, full error?

#

anything more

vast wigeon
#

That is the only thing

rough ibex
#

Nothing else at all?

vast wigeon
#

Happened after i added ```java
@EventHandler
public void playerJoin(PlayerJoinEvent event) {

    Player plr = event.getPlayer();

    String joinmsg = this.plugin.getConfig().getString("join-msg");
    joinmsg = PlaceholderAPI.setPlaceholders(plr, joinmsg);

    event.setJoinMessage(ChatColor.translateAlternateColorCodes('&', joinmsg));
}

@EventHandler
public void playerLeave(PlayerQuitEvent event) {

    Player plr = event.getPlayer();

    String quitmsg = this.plugin.getConfig().getString("quit-msg");
    quitmsg = PlaceholderAPI.setPlaceholders(plr, quitmsg);

    event.setQuitMessage(ChatColor.translateAlternateColorCodes('&', quitmsg));
}

@EventHandler
public void onChat(AsyncPlayerChatEvent event) {

    Player plr = event.getPlayer();

    if(plr.hasPermission("palasset.staff.format")) {

        String staffFormat = this.plugin.getConfig().getString("chat.staff").replace("%msg%", event.getMessage());
        staffFormat = PlaceholderAPI.setPlaceholders(plr, staffFormat);

        event.setFormat(staffFormat);
    } else{
        String chatFormat = this.plugin.getConfig().getString("chat.normal").replace("%msg%", event.getMessage());
        chatFormat = PlaceholderAPI.setPlaceholders(plr, chatFormat);

        event.setFormat(chatFormat);
    }
}```
sullen marlin
#

maybe a broken replacement in a filtered resource?

#

post your pom

vast wigeon
#

I only changed version to 0.1

#

It worked

#

Then i added those events

#

And got that error

sullen marlin
#

it is likely an issue with a file in your src.main.resources directory, not those events

vast wigeon
#

Probably my config.yml

#
name: PalassetCustom
version: '${project.version}'
main: caneless.com.PalassetCustom
api-version: '1.20'
depend: ['PlaceholderAPI']
#

That is my plugin.yml

#

Yea

#

Inside lifecycle

#

Never had this issue before

sullen marlin
#

sorry really dont know

#

try disabling filtering in pom.xml for now

vast wigeon
sullen marlin
#

<filtering>true</filtering>

#

true --> false

vast wigeon
#

: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::url parameter -> [Help 1`]

sullen marlin
#

why are you trying to deploy?

#

use package/install

vast wigeon
#

I have always used deploy

#

But install works?

sullen marlin
#

deploy puts it in a remote maven repo, I doubt its worked

vast wigeon
#

I will try install

#

How can i log with chatcolors?

#

That worked

sullen marlin
#

you can sendMessage to console

twin venture
sterile flicker
#

does anyone know the packet responsible for showing the main hand on the limbo server?

grim hound
#

You can either 1. Let them have spectator

#
  1. Give them invisibility
#

Or 3. Maybe try to spoof some arm animation of them

#

Or even 4. Spoof that their attack delay is a large number

sterile flicker
grim hound
#

But they'll think they have spectator so it's not a great idea

sterile flicker
grim hound
#

Personally I'd go for solution either 2 or 4

sterile flicker
#

why

grim hound
sterile flicker
# grim hound It will not

I still don't understand, you say that i can solve the problem by making the player invisible or changing his gamemode to spectator, but when I ask why and whether this will really display the hand, you say - "It will not"

#

also, I can't send the packet I need without an entity id.

grim hound
molten hearth
#

oh yeah this one's a banger

sterile flicker
#

Okay, I'll make a spectator as you advised

glad prawn
dawn flower
#

jackson or gson or another api

dawn flower
#

?

dawn flower
# dawn flower jackson or gson or another api

i chose jackson cuz gson's serialization sucks imo and i barely got it to serialize and i couldnt get it to deserialize, however... the plugin is like 2mb larger now, it quintupled in size

#

can i remove the stuff i dont use in jackson and not shade it in?

eternal oxide
#

what are you serializing?

dawn flower
pallid oxide
worthy star
#

if i want to like use a bukkit runnable, for 10 seconds, do i make it with 1 second delay and add 1 to a var and if var is 10 stop the task?

pallid oxide
worthy star
#

when player hits another player, i set a pdc key to true, then after 10 seconds remove it

#

and send an action bar while 10 seconds are running

#

with You're in combat for x seconds

pallid oxide
#
  Bukkit.getScheduler().runTaskLater(plugin, () -> {

        }, delay);
#

something like that would do it

worthy star
#

isn't it BukkitRunnable?

pallid oxide
#

delay is in ticks

worthy star
#

i thought of this

#

with 1 second delay

#

and if timer is 10 stop the task

#

wouldn't that work?

eternal oxide
#

yes

dawn flower
#

just increment ticksPassed by the delay not by 1

eternal oxide
#

int array?

worthy star
#

why array

dawn flower
#

it's a lambda

#

it has to be final

eternal oxide
#

yeah, put the value in teh runnable and you don;t need final

worthy star
#

it showed me that when i put the timer var out of the runnable, so i just put it in runnable, out of run() method

pallid oxide
#

The solution i provided is valid

 Bukkit.getScheduler().runTaskLater(plugin, () -> {

        }, delay);

Bukkitrunnable uses same methods but this is just smaller

worthy star
#

ok

eternal oxide
#

runTaskTimer as you need a repeat

worthy star
#

i don't need to register it in the main class, right?

dawn flower
#

is there a compacted jackson library

#

i found "jacksonjr" but idk how to use it

pallid oxide
worthy star
#

ight

#

what should i put in the ()

eternal oxide
pallid oxide
eternal oxide
#

you are serializing an object and Bukkit has all this built in

dawn flower
pallid oxide
#

but usually not recommended just to use randomly stuff you are not familiar with, excample lambdas and anonymous classes&functional interfaces

dawn flower
#

when i use yaml

#

people tell me use json

#

when i use json people tell me yaml

eternal oxide
#

json is a sub set of yaml

worthy star
#

btw do i just add var++ and send the action bar

#

and save the var out of the scheduler

dawn flower
pallid oxide
dawn flower
#

so i opted to use json for serialization since bukkit doesnt have serialization

worthy star
#

wait

worthy star
#

nvm

#

JDK? 17

dawn flower
eternal oxide
#

ConfigurationSerializable

worthy star
#

1.20.4 mc plugin version

pallid oxide
#

u have 1 ) too many

worthy star
#

oh mb

pallid oxide
#

i mean u have ) in wrong place

worthy star
#

ig thats it

dawn flower
#

O-O

worthy star
#

thx

#

im blind

#

xD

dawn flower
#

this is the 5th thing im going to use for storage

#

first yaml then custom serialization then gson then jackson then back to yaml

pallid oxide
#

next sqlite then mysql then use some orm and then mongodb

eternal oxide
#

I'd always use Yaml for Spigot, unless you are wanting to send json in packets

dawn flower
#

honestly idek how the database system works for persistence, no one has a clear explanation

eternal oxide
#

Spigot db was removed a while ago. only drivers remain

dawn flower
#

i might even go for a database rn if theres a good tutorial

#

im tired of files

pallid oxide
dawn flower
pallid oxide
#

Well i can promise if u go for database without any experience u will have tons and tons of problems with async stuff or freezing server/locking database ect

eternal oxide
#

PDC, depending on what the variable is used for

dawn flower
#

the problem with a file is if they modify a single value everything is gone

pallid oxide
tardy delta
dawn flower
#

actually is the db hosted on the server that has the plugin or what?

pallid oxide
#

but u should proably go yml or json

dawn flower
#

if i use separate host cant they just reverse engineer it and get values they're nto supposed to get?

pallid oxide
#

so no they cant

eternal oxide
#

you can never protect everything 100%

dawn flower
#

unless i obfuscate it

pallid oxide
#

also u can limit so your database can only be connected from your servers ip then they need to hack your server host to be able to connect to ur db

eternal oxide
#

if it's in the jar it can be read

pallid oxide
eternal oxide
#

you should not be accessing a remote db from a plugin with any password, unless it's read only

dawn flower
eternal oxide
#

what is the remote db for?

dawn flower
#

storage

pallid oxide
dawn flower
#

...

pallid oxide
#

so jar doesnt contain credentials

dawn flower
#

alr

pallid oxide
#

thats how all/most of the plugins do

#

so people who have access to your server files have access to database credentials

#

but anyways they couldnt connect to it unless they execute stuff throught your server console or plugins since u can limit which ip can access the database

weak adder
#

How can I use the e.getRequest().getCallback() method to check if the player is connected to the server successfully

    @EventHandler
    public void onServerSwitch(ServerConnectEvent e) {
        ProxiedPlayer player = e.getPlayer();
        ServerInfo currentServer = e.getPlayer().getServer().getInfo();
        ServerInfo targetServer = e.getTarget();
        

        if(currentServer == null) {
            for (ProxiedPlayer proxyPlayer : ProxyServer.getInstance().getPlayers()) {
                if(proxyPlayer.hasPermission("neptune.staff.servers")) {
                    Message.SERVER_JOIN.send(proxyPlayer,
                            "{player}", player.getName(),
                            "{serverName}", e.getTarget().getName());
                }
            }
            return;
        }
        
        for (ProxiedPlayer proxyPlayer : ProxyServer.getInstance().getPlayers()) {
            if(proxyPlayer.hasPermission("neptune.staff.servers")) {
                Message.SERVER_SWITCH.send(proxyPlayer,
                        "{player}", player.getName(),
                        "{targetServer}", targetServer.getName(),
                        "{currentServer}", currentServer.getName());
            }
        }
        
    }
proud badge
#

What does "player's current timestamp" mean?

#

Like timezone IRL or?

sullen marlin
#

nah client side day/night time

#

that's some really bad documentation tbh

#

look at setPlayerTime for better documentation

proud badge
#

Isnt the time serverside?

sullen marlin
#

yes but you can set it per-player

proud badge
#

Like it cant be day for one player and night for another

#

Or can it?

sullen marlin
#

it can be if you override it with that API

proud badge
#

Ok I see

worthy star
#

?paste

undone axleBOT
upper hazel
#

My question is a little off topic from bukkit and towards Spring boot jpa, but I’ll ask. Is Spring jpa and requests via @RestController necessary when interacting with the database and issuing them to another microserver if gRBC is used?

worthy star
round finch
#

how you do that?

worthy star
round finch
#

😮

#

Thank you

worthy star
#

anyway

#

who got an idea?

eternal oxide
#

victim has no PDC entry

wet breach
#

or the type isn't correct

worthy star
#

what exactly?

wet breach
#

well it says line 31

#

which I assume vData

worthy star
#

oh you mean the pdc

wet breach
#

however you shouldn't assume that either one has data to begin with

worthy star
#

yea im trying to remove it, because i thought it may be it

wet breach
#

you should check first that neither of them are null before doing your equality check

worthy star
#

the pdc or the victim & attacker

wet breach
#

where you are doing your get

worthy star
#

ight

#

now

wet breach
#

they will always have a PDC, just it will either be empty or not empty

worthy star
#

warning

#

i removed victim pdc parts

wet breach
#

Can't cast a pillager to player

#

This makes sense because Player is actually unique

#

can't just simply cast something to it

worthy star
#

the part of casting is removed

#

now i just send to player

worthy star
#

but

#

first it sends the line after the runnable, then sends you're in combat with x for 1 second

#
            new BukkitRunnable() {
                int timer = 10;

                @Override
                public void run() {
                    if(timer <= 0 || !player.isOnline()) {
                        cancel();
                    }

                    timer--;
                    Common.actionBar(player, "&cYou're in combat with " + e.getEntity().getType() + " &cfor " + timer + " &csecond(s).");
                    //Common.actionBar((Player) victim, "&cYou're in combat with " + ((Player) victim).getName() + " &cfor " + timer + " &csecond(s).");
                }
            }.runTaskLater(PvpManager.getInstance(), 20L);



            pData.remove(Keys.STARTED_PVP);
            //vData.remove(Keys.STARTED_PVP);

            Common.actionBar(player, "&aYou're no longer in combat.");``` it sends `you're no longer in combat` then `You're in combat with SKELETON for 1 second`
eternal oxide
#

the runnable executes after your other code.

worthy star
#

why

#

and

eternal oxide
#

runTaskLater. ALL runnables run later

worthy star
#

oh

#

and why it does it just for 1 once? just 1 second then it stops

eternal oxide
#

well, theres one exception, but thats an adge case and will only be confusing

#

you rtask only runs once as it's runTaskLater not runTaskTimer

worthy star
#

this good?

eternal oxide
#

that will start after 1 second, then terminate in half a second

#

after spamming 10 messages in 1/2 a second

worthy star
#

what should i do then

ocean hollow
#

why am I getting this error?

#

im trying to get float from float, but it says me about double

shadow night
worthy star
#

0, 20L?

shadow night
#

try it and see

fallow gyro
#

Hi! I'm probably missing something obvious here, but how would I create these command suggestions, as shown with CommandAPI? Is this something I'll require an external dependency for, or is this possible with Spigot? Thanks!

eternal oxide
worthy star
#

btw it still does the youre not in combat then does the task

#

for some reason

#

i did it RunTaskTimer

ocean hollow
eternal oxide
pulsar parcel
#

I am playing with NBT tags a little bit. I have mojang mappings nms 1.19.2 and I found on Internet that to give item a NBT tag you need
NBTTagCompound compound = new NBTTagCompound(); You would then add compound.a(tagKey, value); and then just nmsItem.setTag(compound); However nmsItem.setTag(); doesn't take NBTTagCompound as a parameter, but it takes CompoundTag. So I changed it to this: https://pastebin.com/J23xKWd9
Now if I create an Item with my ItemBuilder and read the tag right after creating it using this:
new ItemBuilder(Material.IRON_SWORD).addNbtTag("SomeTag", "SomeValue").readNbtTag("SomeTag"); it returns what I put in it. But if I give the item to player and than check with /data it doesn't have my tag anymore. I know that my explaining is probably a mess, but does anyone have any idea what am I doing wrong?

worthy star
#

what should i do then

#

:)

worthy star
#

runTaskTimer and runTaskLater are only ones with periods and delays

worthy star
fallow gyro
# dreamy chasm Need a tab completer

I've got a tab completer, but if I returned <Player>, for example, the player would be able to press tab and have the text "<Player>" autofilled.

I'm looking for something which can't be tabbed on, but merely suggests what sort of arguments the player should enter.

I'm guessing I'd need to return something different from my tab completer besides a regular list of strings?

remote swallow
#

That would be brigadier

eternal oxide
dreamy chasm
fallow gyro
eternal oxide
#

Did you add teh rotations as Floats or Doubles?

worthy star
eternal oxide
worthy star
#

i want to do the runnable, then the you're not in combat

#

but

ocean hollow
worthy star
#

it keeps doing you're.. then runnable

fallow gyro
# dreamy chasm you just need to return a single string then I guess, just return the string "<P...

No, these are like "type suggestions" for lack of a better term. If you return a regular list of strings, the player is able to hit "tab" on their keyboard, and then the text "<Player>" would be filled in to their command. I need it so that the player can't press tab, but merely have it has a suggestion for the type of input. I'm not sure I'm explaining that great, but I'm not sure how else to word it.

shadow night
eternal night
eternal oxide
#

then put all the messages in the runnable and only output the first message if the counter is max

eternal night
#

you can't just cast it

ocean hollow
#

so should I use double?

eternal night
#

yes

ocean hollow
#

thank you

eternal night
#

or manually convert the List<Double> into List<Float>

eternal night
#

but casting isn't the solution

twin venture
#

How i can achieve the time thinggy?
and how i can make it update every seconds without the need of removing items , add it again .. etc

chrome beacon
#

You'll need to replace the item

twin venture
#

is that the only way?

sullen marlin
#

You just set the meta

chrome beacon
#

ah right that's true

twin venture
#

wouldn't that make some performance issuse?

chrome beacon
#

not much

#

Premature optimization will just cause problems

vast wigeon
#
if(sender instanceof Player) {
            Player plr = (Player)sender;

            String worldName = this.plugin.getConfig().getString("spawnlocation.world");
            int spawnlocationx = this.plugin.getConfig().getInt("spawnlocation.x");
            int spawnlocationy = this.plugin.getConfig().getInt("spawnlocation.y");
            int spawnlocationz = this.plugin.getConfig().getInt("spawnlocation.z");

            World spawnWorld = this.plugin.getServer().getWorld(worldName);
            Location spawn = new Location(spawnWorld, spawnlocationx, spawnlocationy, spawnlocationz);

            plr.teleport(spawn);
            plr.sendMessage(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("prefix")
                    +" &bDu har nå blitt teleportert til spawn!"));
        }``` How does that code send me to 0 0 0 and not 0 71 0? As my config says ```spawnlocation:
  world: "world"
  x: "0"
  y: "71"
  z: "0"```
#

I think i might have fixed

spare prism
#

im trying to apply a potion effect to a player, it works, but it sets a duration of it much more lower than I specify

playerMenuUtility.getOwner().addPotionEffect(new PotionEffect(playerMenuUtility.getEffectType(), playerMenuUtility.getEffectDuration(), playerMenuUtility.getEffectLevel(), false, true, true));

playerMenuUtility.getEffectDuration() is equal to 7200, which should be 120 min, but it gives me 6 mins instead

spice furnace
#

it's in ticks

#

7200/20/60 = 6 mins

spare prism
#

ty

spice furnace
#

np

spare prism
dawn flower
#

how do i migrate to a new storage system without making people lose their data?

dawn flower
dawn flower
#

patch?

spare prism
#

batch

dawn flower
#

tf is batch update

spare prism
#

an update with a large dataset

dawn flower
#

use simpler terms please

vast wigeon
#

Does anyone here know how i can add like options to different arguments? Like the first argument is command and then it's a certain amount of subcommands as options dropdown?

spare prism
dawn flower
#

yaml to json

spare prism
dawn flower
#

the yaml one was so bad, it sometimes wasnt fast enough to save when you do /reload confirm

spare prism
dawn flower
#

i got no experience with databases

#

and i don't want a dataleak

grim hound
spare prism
spare prism
dawn flower
#

if i'm going to use databases id prefer to at least work with them for 2 weeks on testing plugins

#

and yaml is too bad rn to stay another 2 weeks so i want to migrate to json

#

which i salready way better right now

spare prism
dreamy chasm
#

what makes you think writing JSON is going to be crazily faster than writing to a YAML file

dawn flower
chrome beacon
#

Parsing a yaml file isn't much slower. The slowest part is usually just getting the data from disk

worthy star
dawn flower
worthy star
#

wtf does this mean

dawn flower
#

with good serialization

spare prism
chrome beacon
#

^^

dreamy chasm
worthy star
dawn flower
#

🤷

dawn flower
#

i can reload 10 times in a row with json and it's perfectly fine

spare prism
dawn flower
#

yaml is for configuration

#

i dont think yaml is supposed to be used for storage

#

json is literally made to be storage

spare prism
#

so it is

hazy parrot
wet breach
timid hedge
#

Why when im setting the sword-type in the config to "abc" (just for testing) it only gives to the items before the sword and cancelles the sword and all the items after, but if the sword-type (in the config) is set to ex. IRON it works and im getting everything

https://paste.md-5.net/vucimisuye.cpp

green prism
dawn flower
#

honestly idek why this argument started, i needed an external library either way and to change entirely how i store data because of how dumb i am, if i'm already going to do that i just opted to json instead, i had issues with yaml and even if json is slower or isn't faster i didn't have issues with it

#

it's working smoothly right now unlike yaml

dawn flower
green prism
molten hearth
#

Wikipedia straight up says

Due to the conciseness, JSON serialization and deserialization is much faster than YAML.

lol

wet breach
#

so create and register a handle and you should be able to control the logging for that

#

I am not super experienced with messing with these things because logging shouldn't need to be this complex and I don't really care to control the logging

green prism
#

Oh okay, so it wouldn't be a bad practice to create a whole class just for that, am I right?

wet breach
#

if I had it my way, I would have everything logged 😛

#

well I am pretty sure you would have to regardless

wet breach
#

so whether its bad practice or not is moot XD

green prism
#

Well... Yes but

molten hearth
#

Configuration files can execute commands or load contents without the users realizing it.

Oh yeah this idea seems pretty good

wet breach
#

it depends on the yaml implementation you are using

#

but both are flat file storage

#

yaml and json are not storage formats in of themselves, rather a data format.

#

in order for them to be storage formats and not just some flat file, they would need to be their own file type

molten hearth
wet breach
#

therefore it is up to whoever implements it

#

second, as for comparing to php in being insecure, I am not entirely what they mean by insecure by default ?

#

technically you could say exe's are insecure by default

vast wigeon
#

How do i add options to commands? Like you do /<plugin> <options> and make a dropdown like it is for playernames ingame

wet breach
#

anyways, as for the whole .load() this is dependent on how its implemented. It should load something in relation to yaml, but the spec doesn't say it can't sanitize

tardy delta
wet breach
#

php by default doesn't use the CLI to run

#

the only way php could be insecure is if you allowed it to use the CLI or allowed the webserver global access

tardy delta
#

does the spec even say anything about code execution?

wet breach
#

no

#

well idk for php, but for yaml no

tardy delta
#

implementor fucked up then

wet breach
#

most stuff is left to you to implement, the Spec only defines what yaml is and how some things should be done

#

but its not definitive

#

in fact, you are free to stray from the spec as you please as well

#

nothing prevents you from doing so since there isn't like some validation of whatever spec of yaml you are conforming to

molten hearth
#

whst it meant for php by unsafe by default is that it doesn't provide a safe yaml parsing option unless you enable it in the configuration

wet breach
#

well yaml is flat file therefore no special parser is needed

molten hearth
#

most libraries will give you something like parse() and parse_safe() but in php I guess you need to change a setting to make parse safe by default

wet breach
#

you can parse safe already, just don't use some weird library

molten hearth
#

idk tbis article says otherwise

wet breach
#

I have never known a time I needed a lib to parse a flat file with php

#

but whatever, I guess the newbies are dumb

twin venture
#

Hi iam having a problem :9

wet breach
#

?ask

undone axleBOT
#

If you have a question, please just ask it. Don't look for staff or topic experts. Don't ask to ask or ask if people are awake or available. Just ask the question to the channel straight out, and wait patiently for a reply. Make sure you use the right channel regarding the topic of your question. Create a thread in case the channel is already in use!

twin venture
#

why its say 19..... days?

#

i only have it 1 day

wet breach
#

idk how you are deriving the time

twin venture
#

and this how i do it :

#

iam in vc but i can't hear you xD

#

it should say 24h , cuz this package i have is set to 24 hours only

#

so it should start removing one second ..:
23 h , 59 m , 58s .. and goes on till it hit 0

wet breach
#

well you add claimtime

#

how long is claim time?

#

duration is set for 24, but if you start adding to it, its going to be more then 24

tardy delta
#

people still on java 8?

wet breach
#

most likely

tardy delta
twin venture
#

using java 17

tardy delta
#

then also use java 17 constructs

mortal hare
#

rate my svg symicon

#

for exit pls

#

i made this in inkscape

#

nothing special but im not sure if its good

tardy delta
#

hmm are .c files supposed to be 6MiB?

mortal hare
#

no

tardy delta
#

github cant even handle it

mortal hare
#

unless you putting everything into one file

#

is this typescript parser?

tardy delta
#

looks a bit awful, nah c3

#

another lang that tries to be a replacement for c

#

the fact that c2 also exists says enough

earnest forum
#

does anyone know what the name of the spawn player packet is in 1.20?

warm pine
#

Why is 'org.bukkit.ChatColor' deprecated

remote swallow
#

because your on paper

rough drift
#

Paper on their way to deprecate Player (I would bet money on it)

remote swallow
#

@eternal night can confirm?!?

#

happening on soft spoon?

rough drift
#

oml.

#

I will use that from now on @remote swallow

remote swallow
#

thats what they call it

#

like actually

#

its not a hard fork its a soft spoon

rough drift
#

I-

remote swallow
#

(spoiler papermc repo)

eternal night
#

Player is an overrated interface anyway kappa

rough drift
#

I agree.

eternal night
#

but yea, softspoon

#

best name

river oracle
tame wolf
#

Splorf

river oracle
# eternal night 💯

I was going to start from nms but now I will yummygrape paper it'll he the most severe doomsday counter for bukkit type server software as we know it

eternal night
#

Make sure to include revolutionary patches like Add synchronised to every method

eternal night
#

Exactly 5Head

remote swallow
#

i will patch all the patches and remove everything and make the vanilla server run

wet breach
remote swallow
#

we dont need no plugins

eternal night
#

We already have mache xD

river oracle
eternal night
#

truee

river oracle
#

I keep getting tempted to start this project then I realize I need money 😭

#

It sounds so fun like I can't stay away

eternal night
#

and probably mental sanity

river oracle
eternal night
#

I mean, glowstone tried and yea

river oracle
#

I'm starting with nms as a base

eternal night
#

Ah

river oracle
#

Atleast I'm able to acknowledge while mental ill I'm not am entire dev team

#

I can't update versions and such all by myself

#

I'm a freeloader mojang can do that for me

ashen quest
#

I feel like adventure just made it more overdone

#

I don't really know I just get that vibe

#

I just prefer being simple

#

simple strings over TextComponent etc (I do not code plugins that often fyi)

slender elbow
#

i mean minecraft hasn't used section formatting in over a decade, it's all components

#

adventure or not

wet breach
#

only a single person created and updates that game

river oracle
wet breach
#

you don't need to maintain updates if its your own code anyways

river oracle
#

You need to add the stuff mojang is added though

wet breach
#

no, just have to support the protocol is all

#

add stuff at your leisure

#

better yet, create a custom client

#

now you are free to implement whatever protocol you want as long as you keep the account verification stuff intact

grim ice
#

to make a simple chat message u need like 20 lines

inner mulch
#

?paste

undone axleBOT
inner mulch
slender elbow
#

you should be getting an error in the console saying you cannot listen to org.bukkit.event.Event

inner mulch
#

The Event is set tho isnt it?

#

To playermoveevent

slender elbow
#

no

#

the method taking E is simply taking Event

#

the generic type is erased

inner mulch
slender elbow
#

i'm pretty sure that there were errors

inner mulch
#

it was registered

slender elbow
#

you are printing before the registering happens

inner mulch
#

yes but after this there werent errors

#

what old event system

slender elbow
#

registerEvent with your own EventExecutor i assume

echo basalt
#

Eh you can prob merge those

slender elbow
#

ah no i know what's wrong

#

the event handler method is private

#

and in a superclass

inner mulch
#

ohh

#

public?

slender elbow
#

that should fix it yes

#

but still, the generic thing applies

#

so you'd have to do the ^

inner mulch
slender elbow
#

i also recommend doing an instanceof check

#

e.g. if you are listening to a subclass of an event but it's the superclass that holds the handlers list, and it's the subclass that is called

#

the event system is very cringe

green prism
green prism
worthy star
#

what does that mean

#

for this code

#

it happened after i added format editing

wet breach
#

do you not know how to debug your own code?

worthy star
#

it says error

#

so

wet breach
#

and?

worthy star
#

1 sec

green prism
wet breach
#

or the levels or whatever

green prism
#

How can I use an handle?

#

I'm already overwriting spigot's logger level setting to severe

#

and doesn't work

umbral ridge
#

is it possible to get the advancement default title color

wet breach
#

you can register handles with the logger, its like registering a listener

dire blaze
#

does anyone know the placeholder name to show VIP on tab scoreboard

sand spire
umbral ridge
#

How do you get a rectangle from bottomLeftY and topRightY block locations?

worthy star
#

hi i have this code to get player's prefix and suffix, but the if ... != null doesn't seem to work ```java
String prefix = LuckpermsUtils.getInstance().getPrefix(player);
String suffix = LuckpermsUtils.getInstance().getSuffix(player);
String group = LuckpermsUtils.getInstance().getGroup(player);

    String format = plugin.getConfig().getString("chat-format");
    
    format = PlaceholderAPI.setPlaceholders(player, format);
    if(prefix != null) {
        format = format.replace("%player_prefix%", prefix);
    }
    if(group != null) {
        format = format.replace("%player_group%", group);
    }
    if(suffix != null) {
        format = format.replace("%player_suffix%", suffix);
    }
    format = format.replace("%message%", String.join(" ", message));

    event.setFormat(Utils.colorize(format));
#

i added that because it sends error if player doesn't have a prefix or suffix

sand spire
sand spire
umbral ridge
#

tnx

umbral ridge
sand spire
worthy star
#

its the prefix

#

if i remove player's prefix or suffix it sends the error

#

if i give him no errors and works

sand spire
worthy star
#

it doesn't say the line in error, but i assume its 70,67,64

#

the format.replace(...)

sand spire
worthy star
#
chat-format: "%player_prefix% &f%player_name% %player_suffix% &8» &7%message%"``` this in config
#

it sends error only if i remove the prefix or suffix of player using command

slender elbow
#

i mean, seeing the error would help more than going blind

worthy star
#

i did

slender elbow
#

a

worthy star
umbral ridge
sand spire
#

that's a download link xd

worthy star
#

what lol

#

1 sec

slender elbow
#

ChatListener.onChat(ChatListener.java:45)
Objects.requireNonNull(plugin.getConfig().getList("bad-words"))

#

getList seems to be returning null

#

and the Objects.requireNonNull is throwing the exception respectively

worthy star
#

its not null

slender elbow
#

well it clearly is

glacial narwhal
#

why when i build my plugini get the error: 502 bad gateway ?

worthy star
sand spire
#

74

#

at me.hothifa.chatfilter.listeners.ChatListener.onChat(ChatListener.java:74) ~[ChatFilter-1.0-SNAPSHOT.jar:?]

worthy star
slender elbow
#

yeah okay that is a different issue

worthy star
#

thats setting the format

#

event.setFormat(Utils.colorize(format));

#

the problem is with prefix and suffix

sand spire
#

well its not a null error

#

this is the error

#

java.util.UnknownFormatConversionException: Conversion = 'p'

worthy star
#

yea but what 'p' lol

slender elbow
#

it doesn't like the %p because it's trying to parse that in String.format

worthy star
#

what 💀

slender elbow
#

you need to have a valid String.format string with two %s, one for the Player.getDisplayName, another one for the event message

glacial narwhal
#

why when i build my plugin i get the error: 502 bad gateway ?

slender elbow
#

When this event finishes execution, the first format parameter is the Player.getDisplayName() and the second parameter is getMessage()

Parameters:
format - String.format(String, Object...) compatible format string

slender elbow
#

probably a response from a maven repo or something

#

shitting itself

glacial narwhal
worthy star
slender elbow
#

you don't but the server does

#

that is the requirement of the format string

slender elbow
glacial narwhal
slender elbow
#

would need to see what site is responding with that

worthy star
#

ok how should i fix xD

#

slender elbow
#

you need to pass a valid format string

glacial narwhal
slender elbow
#

e.g. event.setFormat("%s drinks dish soap: %s")

worthy star
#

what is %s for

#

xd

slender elbow
#

format string

#

String.format

worthy star
#

so should i add %s around it or ..

#

if im being dumb sorry

slender elbow
#

you would need to check your build logs

dry hazel
sand spire
worthy star
#

but where should i put that duke

glacial narwhal
slender elbow
eternal night
#

this link downloaded malware to my pc

#

can we ban emily

slender elbow
#

weird

slender elbow
eternal night
glacial narwhal
glacial narwhal
slender elbow
#

uh not sure tbh

#

when exactly does that error show up? what do you click or do?

sand spire
#

Can I spam communications with a MongoDB database, or will that cause lagg and should I try to minimalize that by saving data every few minutes + onDisable, and loading data onEnable & onAsyncPlayerPreLoginEvent

glacial narwhal
slender elbow
#

hm

sand spire
#

So I can spam the database? cause if I for example have an int that goes up quickly its updating every second

#

So I can spam it async? I don't need to hold the data in collections and send it every few minutes

#

Yeah but you say to send the data everytime it updates so why should I cache it if it updates quickly

twin venture
#

Hi so iam trying to get the date so this package is 24h , 1 day

#

but it give that weird number

sand spire
#

So I can spam update data, but not spam read data

twin venture
#

this is the code to save it to mysql database

sand spire
#

Alright thank you

#

Crazy how reading can be more performance heavy than changing the data xd

twin venture
#

i do this to load it :

sand spire
#

what is the difference between bad performance and lag

twin venture
#

what iam doing wrong?

sand spire
sand spire
#

Alright thank you

twin venture
#

but when i click on it :

sand spire
#

Although idk if some of the methods of MongoDB will read the data again when I for example use the eq method