#help-development

1 messages · Page 692 of 1

echo basalt
#

yea

#

and 2 empty slots

ivory sleet
#

It wouldn’t be very nice if Java lua-fied some of their stuff

shadow night
#

I would love to have 32 gigs of ram

echo basalt
#

I bought it when ram was pricy

#

each stick was like 80 bucks

#

now they're half the price

tall dragon
#

i got 32 for like 100 bucks

shadow night
#

I wonder if I can get more ram in my laptop

echo basalt
#

yeah that's the thing

#

ram is so cheap nowadays

tall dragon
#

and i got the fast shit too

echo basalt
#

Mine are 3200mhz mismatched sticks overclocked to 3600mhz

#

jank

#

different brands

#

different controllers

shadow night
#

Sometimes I'm thinking if I should get 128gb ram if I get a pc

tall dragon
#

mine run at 6200 mhz

echo basalt
#

my laptop's got like 5400mhz ddr5

#

it's whatever

tall dragon
#

feel like 128 is a bit overkill

#

haha

shadow night
#

Why does ram feel so

#

Small?

echo basalt
#

it's surprisingly big

shadow night
#

Like, it feels like 16gb is like 4gb

#

And 128gb feels like a good 16gb

echo basalt
#

throwback to when I used a laptop with 4gb of ram to make plugins

#

we all started small

glossy venture
#

damn wtf java can stack allocate objects?

ivory sleet
#

Yes

glossy venture
#

wait nvm

#

oh

ivory sleet
#

I know its possible, just that we don’t have any control over it, (i mean the new java api shit thats in preview may offer explicit control)

eternal night
#

valhalla wen

glossy venture
#

would be sick

lilac dagger
#

does stack allocated objects mean iterating over linked list be faster?

#

or am i getting it wrong?

#

oh stack local objects

#

anything wrong with it?

#

oh

remote swallow
#

why dont you just put everytyhing on live usbs

#

you tell me

#

you run discord off a live usb

#

if you can manage tor un discord off a live usb

#

you can probably run intellij and maven off one

#

get a usb hub

#

but you can up load photos just fine

#

when discord would only get the pfp once

echo basalt
#

@echo basalt watch out buddy

#

one eye open when I'm sleepin'

#

🎶 one eeeeeeeeeeye 🎶

eternal night
echo basalt
#

shitty remix

#

wait no stickers will blow up your router

#

bros got that boonies internet

#

jokes on you I rizzed this chick and her mom

remote swallow
#

have a 22mb image

lilac dagger
#

i haven't seen a image loading, only stories

#

now i know it is true

remote swallow
#

internet only has 2 petabytes of possible data (real)

echo basalt
#

imagine using a hard drive

#

exactly

remote swallow
#

super spy drive

echo basalt
#

webcams are also government propaganda

#

this is why I went with chinese tech

sage dragon
echo basalt
#

sure they spy on you but only the chinese have access to that info

#

they won't share it with the US

#

your inet exploded

sage dragon
#

All because of your 13KB waste

remote swallow
#

reinstall windows

#

sorry

#

cli linux

echo basalt
#

lmfao

#

me, with the 30gb intellij folder

#

half of it loaded in ram

#

ehh you're not the only one

remote swallow
echo basalt
#

I've rocked a 4gb 2666 + 16gb 3200 for years

#

in dual channel pointandlaugh

#

the opps

#

they're coming

sullen marlin
#

Your cabled wifi?

echo basalt
#

styll

remote swallow
#

satanism

echo basalt
#

satanism

lilac dagger
#

try ping 8.8.8.8

#

and speedtest

#

see if you're dropping packets

#

tho you seem to be connected to discord so it can't be an issue

echo basalt
#

char[] is an object too

remote swallow
#

string isnt primitive

echo basalt
#

you don't

remote swallow
#

you dont

#

use String

#

?contentions

ivory sleet
#

String is and will never be a primitive mostly due to convenience since those instance methods are nice, but its heavily and I mean heavily optimized by the jvm, and jit, also redirects to native calls I think for certain methods

#

Just in time

echo basalt
#

LikeThis for classes
likeThis for variables and methods
LIKE_THIS for constants

public final static transient strictfp volatile void

ivory sleet
#

Java is both compiled and interpreted

echo basalt
#

🔉

#

no

#

:)

ivory sleet
#

:)

remote swallow
#

if you do we'll send the huskies after you

echo basalt
#

no

ivory sleet
#

definitely no

echo basalt
#

this ain't python

#

script kiddie alert

#

oh wow you are so cool

#

can I have your number

#

not this fake doxxing again

remote swallow
#

didnt you do that like a week ago

echo basalt
#

sure sure sure

#

let's pretend like you aren't coming here with ambiguous threats

#

pretending my name is kai

#

pinging me at 3am telling me to watch out

scenic onyx
#

I want to make a plugin that given 2 positions the blocks that are there can't be destroyed but you can destroy the buildings you've placed. at the end all the blocks you have placed are removed. Do you know how to do it? I would need it for my bedwars plugin.

echo basalt
#

we aren't chatgpt

#

but fuck it here's an idea

ivory sleet
#

You need to track the blocks that you want to be indestructible

#

or well the other way around

#

Destructible

#

Except you have non reifiability with type erasure

remote swallow
#

generics?

ivory sleet
#

Yes

echo basalt
#

generics are fun

remote swallow
#

except when they're not

echo basalt
#

so is regex

scenic onyx
echo basalt
#

throwback to when I did this

ivory sleet
#

💀troll

remote swallow
#

thats why the website is coded in jphp

echo basalt
#

fuck php

#

fortran

remote swallow
#

md and optic

echo basalt
#

imagine paying for a 10 year old version of xenforo

drifting halo
#

Skill issue

echo basalt
#

world record time

scenic onyx
echo basalt
remote swallow
echo basalt
#

how come you're working on this fancy ass project and don't know if a string is an object or not

#

this mf AI generated

drifting halo
#

nah AI can compile code

echo basalt
#

learn to code before claiming you're the bomb

glad prawn
#

bro didnt commit to github 🤓

remote swallow
#

hes ur 2000's ai

echo basalt
#

mans got banned

remote swallow
#

too much bandwith?

echo basalt
#

after telnet'ing into their servers

drifting halo
#

how tf do you even get banned on GH

glad prawn
#

but how

echo basalt
#

sounds like script kiddie to me

hazy parrot
#

Github desktop and containers?

echo basalt
#

github actions most likely

hazy parrot
#

What are u about

#

Oh

echo basalt
#

their jenkins counterpart

remote swallow
#

crypto mining on actions be like

echo basalt
#

imagine using gh desktop

#

cmd

hazy parrot
remote swallow
#

you can do all that but cant do anything to get better internet? or more storage?

hazy parrot
#

You should monetize your massive knowledge

remote swallow
#

exactly, you did it for free, pretty sure with half the stuff youve "done" you could get paid for it

#

get paid to do 1 massive thing then buy better internet

hazy parrot
#

I'm sure you can figure it out with your knowledge

fluid river
#

whats goin on

remote swallow
#

troll trollin

fluid river
#

what's wrong buddy

#

with?

#

???

echo basalt
#

he's khaled

#

struggling from success

fluid river
#

he is rick astley getting rickrolled 10 times a day

#

buy a new hdd for like 0bucks

remote swallow
#

get a job

echo basalt
#

buy a new one

fluid river
#

alr 1 day and you can offer an hdd

hazy parrot
#

That is bad even for balkans wtf 💀

echo basalt
#

hack my paypal account and steal all my money

remote swallow
#

you pay rent per day and buy food each day?

#

most people buy food in bulk once a week

hazy parrot
#

Just buy house

#

Don't rent

fluid river
#

and bruh is wasting time here on spigotmc

hazy parrot
#

That way you don't have to save

remote swallow
#

just go hack a server and live in that

fluid river
#

k cool but what is wrong right now

echo basalt
#

literally me

fluid river
#

what is your dev question

fluid river
echo basalt
#

except I don't drink coffee

#

I drink red bull

fluid river
#

i bing chilling

echo basalt
#

That's a lot of ram for your cpu

remote swallow
#

currently i could go get paid 5.28 an hour

echo basalt
#

so you're that one kid that stole a bunch of ddr3 ram from my school pointandlaugh

fluid river
#

what's your development-related question

echo basalt
#

then get to work

fluid river
#

Then why tf are you texting in help dev

#

not in general/verified

#

if you have no dev-related questions

echo basalt
#

yeah so

#

There's this thing called

#

quality

fluid river
#

and PR ofc

echo basalt
#

And ignoring it will cause some pretty bad issues

#

Instead of chasing a quick buck, just focus on being the best one available

#

Does it look nice?

#

Know your product and know your audience

#

Well

#

Why would a customer prefer yours over someone else's

#

So you're willing to nuke 90% of your audience because of a UI?

fluid river
#

because you have

🔥🔥 ON SALE 🔥🔥 BEST OF ALL TIME md_5 SPIGOT/PAPER/BUKKIT/BUNGEE/SPONGE ❤️❤️ PLUGIN FOR EvErY pOsSiBlE vErSiOn ‼️

echo basalt
fluid river
#

who cares?

pseudo hazel
#

i would rather have my ui be smooth and have my app work

echo basalt
#

then fucking make your own linux distribution

hazy parrot
echo basalt
#

and fuck off :)

fluid river
#

why are you even on spigotmc discord

#

on plugin-dev related channel

echo basalt
#

Well

#

You don't anymore

fluid river
#

talking about your problems

echo basalt
#

You're just here to talk about your 256kb packets and how slow your internet is

pseudo hazel
#

right so now you climbed into the closet

fluid river
#

thanks imlusion

remote swallow
#

hippity hoppity get off my property -md_5

echo basalt
#

Well

fluid river
#

what do you need then

#

?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!

echo basalt
#

Ask elsewhere we only care about minecraft minigames and not being threatened with ambiguous messages at 3am

#

I woke up at like 3am, checked your message and went back to sleep

#

it'd be nice if I hadn't woken up but shit I live to see another day

echo basalt
#

my marbles have been lost

remote swallow
#

i would rather die in my sleep than die awake

echo basalt
#

statistically, the average human has less than 2 arms

valid beacon
#

I need encoders, I need to write a plugin

remote swallow
#

?services

undone axleBOT
pseudo hazel
#

encoders to encode what

echo basalt
remote swallow
#

manual compilation

pseudo hazel
#

lmao

remote swallow
#

oh illusion while ur here, do you know if theres a thing in both sqlite and mysql for on conflict(id) update or whatever the proper format for thatis

echo basalt
#

uhh

#

I generally just have an abstract sql class and a map of queries

hazy parrot
#

AFAIK it's different syntax

echo basalt
#

if you ever use postgres y'know you'll have different queries

#

even different column types

#

So ideally your code is made to handle those changes

remote swallow
#

i really want to avoid different handlers for both sql types

echo basalt
#

oh no he found my spigot page

worldly ingot
remote swallow
remote swallow
echo basalt
#

maybe you were in the capital

pseudo hazel
echo basalt
#

yeah lisbon is nice

#

we don't have suburbs

worldly ingot
#

I don't know why SQLite has to diverge from the MySQL standard but bleh

#

Gotta work with what you've got

pseudo hazel
#

why does it

remote swallow
#

choco can i steal ur stuff, the abstract sql class layout

pseudo hazel
#

wtf does redlined mean

worldly ingot
#

Yeah go for it

#

Take anything you want from there

echo basalt
#

something about being declined shit based purely on discrimination

remote swallow
#

now you cant sue me

pseudo hazel
#

ah right

worldly ingot
#

I mean my stuff is open source KEKW I couldn't sue you for taking inspiration from it anyways

worldly ingot
#

mfw not using text blocks

#

Cringe

echo basalt
#

java 8 joehehe

remote swallow
#

why

worldly ingot
#

Because probably supporting 1.8

#

like a nerd

echo basalt
#

uhh

#

I use a lib that's like 1.18+ but eh

#

I don't discriminate

worldly ingot
#

Brother if you're supporting 1.18+ exclusively, you should use Java 17 KEKW wat

#

The server doesn't run on anything lower

#

Sainte stop being weird

remote swallow
worldly ingot
#

There have been a handful of occasions I've seen you just be strange, troll, or randomly flex for no reason? So, y'know... knock it off? It's really cringey

#

?kick @quaint mantle literally not even listening to me

undone axleBOT
#

Done. That felt good.

echo basalt
#

he's already been kicked before

#

md5 kicked him for attempting to doxx me like last week

worldly ingot
#

That's okay. He'll come back and know that next time it'll be a ban :D

pseudo hazel
#

why you though xD

echo basalt
#

no clue

#

I was walking home from the gym and he said I was bouncing around in exercise balls or some shit and started targetting me

pseudo hazel
#

he is probably like 14 yrs old or smth

worldly ingot
echo basalt
worldly ingot
#

For SQL structures I'd rather just have some proper concrete methods

echo basalt
#

props to him for finding actual info about me

#

It's not as easy as it seems but I have some better opsec to do

pseudo hazel
#

probably wouldnt be hard to find

echo basalt
#

(no clue if the info is accurate)

#

(I don't go to school anymore)

#

and he's tryna add me

pseudo hazel
#

lmao

remote swallow
#

bet he tried to add me too

#

but i have him blocked

#

why is this a thing

pseudo hazel
#

wtf

remote swallow
worldly ingot
#

tf?

subtle folio
worldly ingot
#

How is that any different from quotes or single quotes?

remote swallow
#

sure do love my dollar-slashy strings

subtle folio
#

kotlin gradle moment?

remote swallow
#

groovy

subtle folio
#

wtf

eternal valve
#

If I change the name of the chest with the anvil in Minecraf, for example, I made the name of the chest kraken chest, when I put it on the ground, I will change the model and texture with itermsadder, so can I change the gui screen that appears when I open it, can I make a gui connected to a separate name without eliminating the inventory and normal chest gui?

worldly ingot
hazy parrot
#

Yeah that isn't kotlin syntax lol

worldly ingot
#

TIL it's a multi-line string

subtle folio
eternal valve
subtle folio
#

you want to determine chest guis by their item names..?

pseudo hazel
#

no you dont xD

worldly ingot
#

Not through vanilla means. You'd have to probably listen for an interact event on that chest, get its name, open the appropriate inventory and handle the item changes

subtle folio
#

unless that’s intended why don’t you use pdc

worldly ingot
#

You could re-use the same Inventory instance though so that at least inventory contents are synchronized between users

#

But yeah I don't think you'll be able to avoid opening your own inventory and synchronizing contents with the chest

eternal valve
subtle folio
eternal valve
pseudo hazel
#

?pdc

subtle folio
#

just listening to events and canceling, then opening your own gui

eternal valve
#

Now I get it

#

Thx all

vital ridge
#

?paste

undone axleBOT
tall dragon
#

no @EventHandler

subtle folio
echo basalt
#

woeisme not this asshole

#

wrong name too

#

@worldly ingot

#

lmfao

vital ridge
#

I have this code: https://paste.md-5.net/egudalixab.java
This should calculate the dot product between the player and the zombie and according to the maths, give me a number close to 1 if I'm looking at the zombie and a number closer to 0 or a negative value if I'm looking away from the zombie. For some reason the output sometimes makes sense and sometimes doesn't and I mostly get wrong values. This is my NuxVec class:
https://paste.md-5.net/fafaxutize.cpp

worldly ingot
#

Dude

#

You're weird

echo basalt
#

yeah you got close but no

#

That's not me

worldly ingot
#

?ban @dapper dagger

undone axleBOT
#

Done. That felt good.

worldly ingot
#

Fucking weirdo

echo basalt
#

ban the main too

worldly ingot
#

Yeah

#

?ban @lapis jetty Doxxing

undone axleBOT
#

Done. That felt good.

tall dragon
#

i tink im missing context

remote swallow
#

nah its fine

timid hedge
remote swallow
#

this entire thing hurts

eternal valve
#

Can I ask one last question, can we change the position and size of those squares that we put 64 blocks in the inventory or chest in minecraf as a plugin without mods?

remote swallow
glad prawn
timid hedge
#

I didnt?
And even if i did, it should be that hard to guess why im asking again

remote swallow
#

you refuse to listen to us telling you to learn java so cant solve a simple npe?

echo basalt
#

We've been asking you to learn java and quit wasting our time for months

echo basalt
#

So yeah I'm not even gonna bother opening those links

remote swallow
#

error still doesnt match the code

timid hedge
#

I should, i just used the command and copyed the error

subtle folio
#

repackage your code and try again

timid hedge
#

Forgot to send this..

            if (args[0].equalsIgnoreCase("add")) {
                if (player.hasPermission("balance.add")) {
                    if (args.length < 3) {
                        sender.sendMessage("Usage: /balance add <player> <amount>");
                        return true;
                    }
                    String playerName = args[1];
                    OfflinePlayer target = Bukkit.getOfflinePlayer(playerName);
                    if (target.hasPlayedBefore()) {
                        System.out.println(target.getName());
                        try {
                            double amount = Double.parseDouble(args[2]);
                            Balance.getInstance().addBalance(target, amount);
                            System.out.println(Balance.getInstance().getBalance(target));
                            System.out.println(target.getName());
                            player.sendMessage("You added " + amount + " to " + target.getName() + "'s balance");
                            System.out.println(Balance.getInstance().getBalance(target));
                            System.out.println(target.getName());
                        } catch (NumberFormatException e) {
                            player.sendMessage("Invalid amount. Please provide a number");
                            System.out.println(target.getName());
                        }
                    } else {
                        sender.sendMessage("Player not found or hasn't played before.");
                        System.out.println(target.getName());
                    }
                }
            } 

It says that the error is at Balance.getInstance().addBalance(target, amount);

timid hedge
remote swallow
#

thats the cause of the main error

#

Balance.getInstance().addBalance(target, amount); is causing the error at Balance line 41

#

which is return true

#

which shouldnt ever throw an npe

worldly ingot
#

wot. It doesn't return true. It returns a double

remote swallow
#

choco read line numbers

worldly ingot
#

It returns a field from the result of Vault's Economy#depositPlayer() which doesn't have any nullability contract, but given that you're writing an Economy plugin I presume you've implemented your own economy

#

The line numbers don't line up because there are no imports

#

My guess is that you wrote your own Economy implementation and registered and are using it, but your depositPlayer() implementation returns null instead of a proper EconomyResponse instance

#

Then your Balance class is trying to use the result of that method and access a field from a null value

timid hedge
#

Ill send the whole class

#

?paste

undone axleBOT
remote swallow
#

do you have a class that implements or extends an Economy class

timid hedge
remote swallow
#

extends AbstractEconomy or implements Economy

timid hedge
remote swallow
#

okay

#

do you have an economy plugin at all

timid hedge
#

I got vault

remote swallow
#

vault is an api

echo basalt
#

vault is not an economy plugin

remote swallow
#

not an economy plugin

subtle folio
#

vault has an economy api..?

remote swallow
#

api

#

not impl

feral forge
subtle folio
#

pretty sure you’re able to use it as is for balance and stuff right out of the gate

remote swallow
#

no

subtle folio
#

yes

remote swallow
#

you need a impl plugin

#

eg essentialsX

subtle folio
#

fuck

#

i forgot essentials

feral forge
#

EssentialsX economy take that

echo basalt
#

uhh no

#

somewhat

#

still not 100% accurate

timid hedge
remote swallow
#

do you have any other economy plugin on your server

#

not vault

timid hedge
#

No only this and vault

remote swallow
#

so you have no economy plugin

echo basalt
#

yeah that's a problem

tender shard
#

damn vault's permissions api sucks so hard, it constantly relies on player names instead of UUIDs

timid hedge
remote swallow
#

you need to have a class that implements Economy or extends AbstractEconomy then

#

and create all the methods that it requires to function

feral forge
#

When I do @a with console or some plugins it gets changed into literally every player on the server, does anyone know how I could stop that? Because I deleted essentialsx chat thinking its doing that but no ;D

echo basalt
#

brigadier perhaps

#

sounds like an intended feature working flawlessly

feral forge
#

What's brigadier?

timid hedge
#

Sorry i dont understand, so i need to create a class that extends AbstactEcon omy and set all the methods as getBalance, addBalance... in that class

feral forge
#

Because it messes up any plugins that have @a in their commands

timid hedge
#

Thanks

feral forge
remote swallow
feral forge
#

I need to remove that

#

Right, wrong channel..

tender shard
# feral forge What

Bukkit.selectEntities takes in an entity selector string and returns the list of selected entities

timid hedge
tender shard
echo basalt
#

pov: you don't understand inheritance

half furnace
#

How to create custom enchantments?

timid hedge
#

?img

undone axleBOT
#

Can't send images? That's because you're not verified! Use !verify to complete verification.
Alternatively, you can upload screenshots to any image hosting site and share the link.

Here's some screenshot utilities that can use to upload images.
Lightshot: https://prnt.sc
Imgur: https://imgur.com/upload
Flameshot: https://flameshot.org

north nova
half furnace
#

How to create ?

north nova
#

Yeah

tender shard
half furnace
#

How can I create?

north nova
#

Yep

#

well

#

wait

#

there was a decent guide on spigotmc

lilac dagger
worldly ingot
tender shard
worldly ingot
tender shard
worldly ingot
#

If you want to implement Vault's Economy API you need to have some class that implements Economy or extends AbstractEconomy, then register it to the services manager

#

If you have not done that, you should be doing that and let your IDE auto generate all the methods you need to implement

tender shard
#

I already tried to eplain it to him days ago, he implemented all the Economy methods and then asked "yeah but what should they do" because from what I guess they don't have any economy plugin made yet and thought they just extend Economy and then it works

worldly ingot
#

So you are one of either two things. An economy user, or an economy provider

timid hedge
worldly ingot
#

But you need to actually know what your economy does and implement every single method it wants you to implement

tender shard
worldly ingot
#

You need to write code to actually support a functioning economy

remote swallow
#

cant wait for "Cant find symbol NumberUtil.displayCurrency"

worldly ingot
#

The only reason Vault exists is to provide a very simple, common interface to access your economy plugin's inner-workings without plugins having to explicitly depend on your plugin. They can depend on Vault and they'll know that something probably implemented Vault's Economy and they can just use it without knowing what exactly it's calling

remote swallow
#

and press implement methods

worldly ingot
#

Yeah you're not understanding how Vault works at all

timid hedge
worldly ingot
#
    public Balance() {
        rsp = my.server.economy.Economy.getInstace().getServer().getServicesManager().getRegistration(Economy.class);
        if (rsp != null)
            economy = rsp.getProvider();
    }

You cannot do this. You cannot get an Economy registration. You ARE the Economy registration

#

You cannot call any of Vault's methods because you ARE Vault's methods

timid hedge
remote swallow
#

have you wrote the method impl for all of the methods ur economy class now has

worldly ingot
#

You can use your own methods so long as they actually do something, yeah. Sure

#

Your Vault implementation should really be delegating to existing calls elsewhere in your plugin

worldly ingot
timid hedge
#

So i need to do this in my onEnable?
getServer().getServicesManager().register(net.milkbowl.vault.economy.Economy.class, new VaultEconomyProvider(this), this, ServicePriority.Normal);

remote swallow
#

you need the class for your plugin

#

and the paramaters for your class

#

for the 900tht ime

#

?learnjava!

undone axleBOT
near crypt
#

how are these custom models made?

worldly ingot
#

Right, instead of new VaultEconomyProvider(this) it would be an instance of your Economy implementation

worldly ingot
#

It's not too fancy

#

They just have good modelers and texture artists :P

glad prawn
#

Well it's really beautiful

near crypt
remote swallow
#

probably item display

tender shard
#

nowdays you'd use item displays yeah

smoky anchor
#

Could be, or could be a display entity

echo basalt
#

BlockBench + ModelEngine (or similar competitors)

tender shard
#

using armorstands is a relict from ancient versions (pre 1.19.4)

echo basalt
#

Or if you're using a recent version, yeah just slap it on an item and scale it up to 100

near crypt
#

ye in that way you can have infinite models without affecting the "real" item

#

right?

#

with custom model data

lilac dagger
remote swallow
#

this being midway down hurts

timid hedge
# worldly ingot Right, instead of `new VaultEconomyProvider(this)` it would be an instance of _y...

So like this?

public class Economy extends JavaPlugin implements Balance {

    @Override
    public void onEnable() {
        getServer().getServicesManager().register(my.server.economy.util.Balance, new Balance(Balance), this);
        getLogger().info("Economy plugin enabeling");
        getCommand("balance").setExecutor(new BalanceCommand());
        getCommand("resetjoin").setExecutor(new ResetJoinCommand());
    }

my.server.economy.util.Balance is the class where addBalance and my own methods are

lilac dagger
#

mostly for the server balance

remote swallow
#

no

remote swallow
lilac dagger
#

same with the bank

hazy parrot
#

Also I wouldnt call class with abstract suffix if its actually not abstract

timid hedge
#

But should i check if the player has a account?

remote swallow
#

you tell us

#

its ur economy impl

timid hedge
#

In the BalanceAbstract where i implmented alle me vault methods, there is a method to check if the player has a bankaccount do i need to check that when i add money to a players account?

remote swallow
#

you should know that, you implement it

#

if you need a bank account to deposit in ur impl, yes you do

#

if not, no you dont

timid hedge
#

Why do i get a error at return economy.getBalance(p);?

    public double getBalance(OfflinePlayer p) {
        return economy.getBalance(p);
        }
lilac dagger
#

which error?

#

null pointer?

timid hedge
#

Yeah

lilac dagger
#

your economy is null

timid hedge
#

Wait i got this in the top
private Economy economy = null;

lilac dagger
#

that does make a lot of sense

near crypt
timid hedge
#

But what should i set economy to?

remote swallow
#

normally you will have a player class that has all the balance etc methods

#

look at essential's impl

worldly ingot
#

Or slabs/other blocks if you can hide them inside the model

lost matrix
quaint mantle
#

is it good idea to save economy as nbt file or use scoreboard?

lost matrix
#

You mean scoreboard tags?

#

I would always prefer using files as they can be edited by admins.
Also nbt like pdcs or scoreboard tags can clogg up the data file.

echo basalt
#

Can't wait to have an actual good scoreboard api

#

why does it need to be so gimmicky

quaint mantle
#

i mean, when i was making minigame to do and count shit i wrote too much scoreboard lmao

#

i didnt know that dfu even exists

echo basalt
#

minigames are easy to write

#

you just need a little structure to start with

quaint mantle
#

it wasnt a little structure

#

i used worldedit for the structure lol

echo basalt
#

Not talking about pasting stuff

#

But actually structuring your game

lilac dagger
#

this phase thing seems quiet cool for a part of my plugin

echo basalt
sterile token
#

I wish i can fix the weird issue that doesnt allow me to run my the child command frm the its parent, when using the child permission. But with its parent one i can run all the commands Im real struggling

echo basalt
#

this works btw

sterile token
#

I will send code in some minutes when IJ opens if someone can give a hand i wuld be really thankfull

lilac dagger
sterile token
echo basalt
#

yes

sterile token
#

wait

echo basalt
#

I can say 10 ticks

sterile token
#

my keyboard doesnt responds

echo basalt
#

And as long as the map name matches this on the config it's whatever

lilac dagger
#

that's really cool

echo basalt
#

No hard dependency on worldedit, can use the structure api

#

Or if we depend on worldedit, and fawe is present, all the pasting is done async

sterile token
#

i mean if your time parser allow to parse <time><time unit (h | m | s)> expressions, even tho mixing many of thems?

echo basalt
#

Supports a single world grid or world pooling

lilac dagger
#

super cool 😄

sterile token
#

Canm you something like: <time><time unit (h | m | s)>:<time><time unit (h | m | s)> ? Ending in this result for example: 10:5:10 where without giving the unit and telling the format you want, its parses that into hh:mm:ss for saying example

echo basalt
#

it's more like

subtle folio
echo basalt
#

"19 minutes 10 seconds"

sterile token
#

oh right

#

different way but you can haha thats amazing

echo basalt
#

special chars are ignored too

#

So you can be like

sterile token
#

Can you give me a small hand with the permission issue i facing? I really cant find the solution just know what the issue but cant find the why

echo basalt
#

19 mins 10 secs

echo basalt
sterile token
#

oh yes, pretty nice your parser

echo basalt
#

giving me ptsd

sterile token
#

ptsd? English please sir haha

subtle folio
#

ptsd is an acronym

#

which is english

lilac dagger
#

post traumatic stress disorder

sterile token
#

oh ok

echo basalt
#

still working on this mf

subtle folio
#

skyvlock core ?

tender shard
#

No its obviously lifesteal

echo basalt
#

it's fucking

#

hypixel internals you baboon

subtle folio
#

my badddddd

#

i was more or less questioning your sanity rather than asking what it was for

quaint mantle
#

i made it using only fabric and Minecraft, i think without fabric api

lilac dagger
quaint mantle
#

it is completely java

subtle folio
echo basalt
#

crazy? I was crazy once

quaint mantle
echo basalt
#

(all this does is load islands from a database and paste them)

#

like no listeners at all

lilac dagger
subtle folio
quaint mantle
echo basalt
#

no internal metrics either

lilac dagger
#

i use bukkit's location but since the code is not public, i don't mind

echo basalt
#

full network compatibility

#

multi-machine, multi-proxy support

#

multi-proxy of different proxy types

#

Multiple server instances of different types

subtle folio
#

ok nerd

echo basalt
#

it just works

sterile token
#

Well i have IJ open i send code and explain what happen again. The problem is that if i have a sub command with rguments or sub commands, it tells me that i dont have permission when running the command with the child permission. But if i run it with the sub command permission directly (the root one let call it) its allow me. Really weird and find the reason i will add code now:

This my parser, pretty simple but works great. Because it can be used for parsing SingleCommand (meaning they dont have any associated argument nor sub command it, just like vanilla commands) and ParentCommand which represent commands associations, meaning a Parent can have other parents or Single to it

I will send code under because of shity discord limitations

echo basalt
#

But yeah there's a ton of like

#

multi-platform code

lilac dagger
#

but i bet you could do much better now

subtle folio
#

that’s hell

quaint mantle
#

and weird code

#

it took me whole month to make it lol

echo basalt
#

took me like 15 minutes to write tnt tag

#

we're writing like 5 minigames at work today because boss wants to be happy

lilac dagger
#

but tnt tag is easy

echo basalt
#

it is

quaint mantle
#

my thing idk if easy

quaint mantle
#

but i did many cool features

echo basalt
#

hey it pays way more than like

#

uh

#

mcdonalds

subtle folio
#

fair

echo basalt
#

people here make like 4 bucks an hour

quaint mantle
#

i literally wrote my own config library

#

inside it

#

but the minigame is very buggy tho

echo basalt
#

eh

#

bugs are easy to fix too

quaint mantle
#

but i dont know where are the bugs tho

#

it was like, people got crashed randomly from server

sterile token
quaint mantle
#

and i couldnt trace anything

echo basalt
quaint mantle
#

also this was one of my first modd

echo basalt
#

got another 7 to finish

quaint mantle
#

like i was learning java making the minigame lol

lilac dagger
sterile token
#

I have even asked GPT 4 and tell me that my code is perfect and must be working, without the permission issue i having

lilac dagger
#

i'm not familiar with mods

quaint mantle
hazy parrot
#

Ai 🤡

quaint mantle
#

however when i tested locally it should worked tho

lilac dagger
#

or is it sponge?

quaint mantle
#

it is fabric

lilac dagger
#

i see

quaint mantle
#

nothing magic

#

just java and basic events

lilac dagger
#

i saw this and this why

quaint mantle
#

oh yeah, mixins is library in both forge and fabric

lilac dagger
quaint mantle
#

fabric has modified version of mixins

quaint mantle
echo basalt
#

I don't see the command code

quaint mantle
#

command code?

#

commands are broken into multiple files

#

there is many commands in my minigame to configure everything

echo basalt
#

Not talking about your issue

quaint mantle
#

i love making stuff that are easily configurable for some reason

echo basalt
#

easily configurable stuff is easy to write

#

standard practice

#

I dislike hardcoding numbers

#

And it's not even hard at all to write configs

lilac dagger
#

my command system is basic

cobalt thorn
#

Making guis for config even better

echo basalt
#

guis are easy too

#

can be a bitch if you're dealing with multithreading

#

but

#

it work

cobalt thorn
#

Yeah no problem with them

quaint mantle
echo basalt
#

My current gui system works with layers which allows me to update certain parts after a while

#

ew kotlin

#

not reading that

quaint mantle
#

lol

quaint mantle
#

a rubber room

cobalt thorn
#

I was crazy once

quaint mantle
#

you just need to learn it i guess

#

like with everything else

cobalt thorn
#

Not coding > Java > Kotlin

north nova
#

Skript > all

quaint mantle
#

why coding is bad?

north nova
#

yall only have issues with writing code im out here living the live writing skripts

subtle folio
cobalt thorn
north nova
#

SO TRUE

cobalt thorn
#

And all his server was made out of skript

subtle folio
quaint mantle
#

no?

subtle folio
#

sometimes more verbose than java 💀

cobalt thorn
#

I remade his core in 30 nanoseconds

quaint mantle
#

kotlin dsl is great

#

function extensions are great

subtle folio
#

then the actual language coding experience

quaint mantle
#

reified generics

#

different keywords too
also different syntax for some stuff
smart casting

#

many data types

subtle folio
#

kotlin code is less readable then java code and it’s whole point of java is to be verbose to have really high maintainability and kotlin just strips that away

quaint mantle
#

pattern matching that still isnt in java

subtle folio
#

also makes it really easy for a new developer to develope bad habits and bad practices

subtle folio
quaint mantle
#

java 22 and it is java 20 rn

subtle folio
#

trust

#

it’s 21 rn lol

remote swallow
#

java 21 comes out this year

#

its in dev rn

subtle folio
#

experimentally out

quaint mantle
#

i aint waiting years just to get feature that is already in different languages

remote swallow
subtle folio
#

virtual threads 😫

quaint mantle
subtle folio
#

get it fun? because you have to say ducking fun everywhere

remote swallow
subtle folio
#

fun fun fun fun fun

quaint mantle
#

also kotlin has coroutines

subtle folio
#

so does java (to an extent)

#

runnable ??

remote swallow
#

completable future

quaint mantle
#

also many stuff are way shorter than java
oh and we have properties in kotlin

#

java lacks properties

#

and we have actual constant

#

and actual functional programming

subtle folio
#

java isn’t a functional programming langauge?

#

and who uses kotlin for that? we have clojure for a reason

quaint mantle
#

no, it is completely OOP

#

does anyone uses clojure?

subtle folio
#

yes

#

clojure is very popular

quaint mantle
#

even groovy is more used for actual code than clojure lol

subtle folio
#

just unsung because it’s used more enterprise

quaint mantle
#

also kotlin has official compilation to native and js lol

cobalt thorn
#

Kotlin can be compiled in JS?

subtle folio
cobalt thorn
#

None ever told me that

quaint mantle
#

if you actually cared you would know

cobalt thorn
#

I tried coding in kotlin for a week but i didn’t like they style

quaint mantle
hazy parrot
quaint mantle
hazy parrot
#

Coroutines are different to CompletableFuture future

quaint mantle
#

there is whole blog post on how to write apps,libraries etc in kotlin

hazy parrot
#

And runnable doesn't make any sense lol

quaint mantle
#

also kotlin can compile to many versions of jvm lol

quaint mantle
#

different java version have different bytecode versions

#

you cant run java 20 on jre 8

#

one think I hate dev'ing with kotlin is shading

#

like u gotta shade kotlin

#

right

#

it makes the jar fairly larger

#

shading?

#

you can disable all of it

#

using compile args in gradle

#

lol

remote swallow
#

you still have to shade kotlin

#

or library kotlin

quaint mantle
#

to trim the binary

hazy parrot
#

Kotlin stdlib is not large

#

Also many things are inlined

quaint mantle
#

inline i feel it is good tho

#

inline is used for reified generics too

quiet ice
#

Huh Indy as invokedynamic is even used over at kotlin

quaint mantle
#

yeah

tribal quarry
#

hey there, im getting weird entity tracking issues, any help appreciated! (please don't judge me for using 1.8, this error keeps happening by updating my plugin after couple of months so, I mean a lot of things had changed in the server, like anticheat plugin got updated, protocollib update, and these stuff)

quaint mantle
#

or help

#

the issue is with com.trexmine.bedwars.listeners.BlockBreakListener.onBlockBreak(BlockBreakListener.java:63)

#

and this com.trexmine.bedwars.utils.functional.WorldUtils.getBedParts(WorldUtils.java:62) ~[?:?]

quaint mantle
#

do you have full crash log?

tribal quarry
tribal quarry
quaint mantle
#

the uh

#

make it crash

lilac dagger
#

this isn't what crashes it

#

do you have a hologram by any chance?

tribal quarry
#

no i don't think so

#

Thats what happens: player breaks the bed, and byBed throws exception, affecting team bed not actually broken, so by that mean, they can respawn infinitely

lilac dagger
#

oh

#

maybe the world isn't loaded

#

nvm

#

something adds an entity

#

that is already tracked

tribal quarry
#
    public Chunk getChunkAt(int i, int j, Runnable runnable) {
        unloadQueue.remove(i, j);
        Chunk chunk = chunks.get(LongHash.toLong(i, j));
        ChunkRegionLoader loader = null;

        if (this.chunkLoader instanceof ChunkRegionLoader) {
            loader = (ChunkRegionLoader) this.chunkLoader;

        }
        // We can only use the queue for already generated chunks
        if (chunk == null && loader != null && loader.chunkExists(world, i, j)) {
            if (runnable != null) {
                ChunkIOExecutor.queueChunkLoad(world, loader, this, i, j, runnable);
                return null;
            } else {
                chunk = ChunkIOExecutor.syncChunkLoad(world, loader, this, i, j);
            }
        } else if (chunk == null) {
            chunk = originalGetChunkAt(i, j);
        }

        // If we didn't load the chunk async and have a callback run it now
        if (runnable != null) {
            runnable.run();
        }

        return chunk;
    }

originalGetChunkAt does it, this is spigot code i think, no idea? or..

#

I think its trying to generate chunk or what?

lilac dagger
#

remove certain parts of the code and see

quaint mantle
#

also i would suggest cleaning the code lol

#

like clean logic of it

tribal quarry
quaint mantle
#

oh yeah gib sec im on phone

#

any1 could help why is there no spacing here?

#

in the scoreboard, using teams too

lilac dagger
#

when using scores you can only have one exact line

quaint mantle
#

what i would do is just move

teamResult.ifPresent(victimTeam -> {

                if (victimTeam.isPlayer(player)) {
                    player.sendMessage(ChatColor.RED + "You can't destroy your own bed!");
                } else {
                    TeamColor victimColor = victimTeam.getInfo().getColor();

                    arena.getTeamByPlayer(player).ifPresent(enemyTeam -> {
                        TeamColor enemyColor = enemyTeam.getInfo().getColor();
                        String message = " \n" + "§f§lBED DESTRUCTION > " +
                                victimColor.getChatColor() + victimColor.getName() + " Bed §7was destroyed by "
                                + enemyColor.getChatColor() + player.getName() + "\n " +
                                (!victimTeam.getRejoin().isEmpty() ? "§b§lFINAL KILL!" : "");

                        PlayerBedBreakEvent event0 = new PlayerBedBreakEvent(arena, player, location, victimTeam, message);

                        BukkitUtils.callEvent(event0);

                        if (!event0.isCancelled()) {
                            victimTeam.breakBed(player, event0.getMessage(), true);
                        }
                    });
                }
                event.setCancelled(true);
            });``` 
the lambda into different function
lilac dagger
#

use chat colors to make different lines

quaint mantle
#

wym

#

oh so like

#
 obj.getScore(ChatColor.SUDIBIUSDBIUS + "").setScore(5);```
#

but nothing in the ""

lilac dagger
#

yes

quaint mantle
#

tried that

#

but yet

lilac dagger
#

every line must have a different color

kindred sentinel
#

How to create a custom craft with ingredients with nbt?

lilac dagger
#

otherwise they're the same and it will only take the last one into account

quaint mantle
#

?paste

undone axleBOT
quaint mantle
#

here is how it looks as of now

quaint mantle
#

realised that I have to do something like

obj.getScore(ChatColor.GREEN + "").setScore(8);```
now
#

recipes didnt really changed between 1.13 and 1.20

#

except someee stuff

kindred sentinel
quaint mantle
#

yeah, Minecraft doesn't really support nbt crafting

kindred sentinel
#

oh ok

quaint mantle
#

just try and see

#

if it works

kindred sentinel
#

oh yeah i know about this plugin

#

So another question. Could i register events in 2 different java classes?

hazy parrot
#

Why not

#

Just register both classes

quaint mantle
#

yeah you can

#

no one stops you

kindred sentinel
#

oh ok

subtle folio
quaint mantle
#

no

#

i will stop you on stopping them

subtle folio
#

noooo emoji_18

kindred sentinel
quaint mantle
kindred sentinel
#

without event

#
        ItemStack diamond = new ItemStack(Material.DIAMOND);
        ItemMeta diamondItemMeta = diamond.getItemMeta();
        diamondItemMeta.setLore(Arrays.asList("A"));
        diamond.setItemMeta(diamondItemMeta);
        RecipeChoice = new RecipeChoice.ExactChoice(diamond);
north nova
#

congratulations

kindred sentinel
#

thx

grizzled bone
#

hello guys i need help, how do i make it so different ranks can list multiple items on the ah, i want the vip rank to list 2 items on the ah and member 1

orchid trout
#

sir this is help-development

north nova
grizzled bone
quaint mantle
#

you could add some type of if statement or something

#

idk the implementation you did

north nova
#

doubt thats the case

tall dragon
#

hes probably just using a publicly available plugin

#

in which case this is the wrong place to ask

summer scroll
#

Can you force player to pull/reel in fishing rod?

echo basalt
#

try and see

quaint mantle
#

yeah

summer scroll
#

I don't know the way?

grizzled bone
#

im using the ah plugin

north nova
#

oh the ah plugin

grizzled bone
#

the 1 used by every almost all sevrers

tall dragon
#

ohh the ah plugin

north nova
#

right the one

#

true

#

almost all

#

hmm

tall dragon
#

its not like there are like 10 different ones

north nova
#

so not the other one

grizzled bone
#

nope

north nova
#

or the other other one

#

the one?

#

or which one of the ones?

tall dragon
#

lmfao

north nova
#

maybe none of the ones?

#

😕

quaint mantle
#

the hardest part of ah i think is the gui but thats it lol

#

and i think it is easily exploitable

north nova
#

unless its coded properly

#

lol?

tall dragon
#

you have to be suprisingly carefull making an ah plugin

grizzled bone
tall dragon
#

dupe wise

north nova
#

depends on ur codebase

#

just be smart

tall dragon
#

minecraft does weird stuff

north nova
#

so recode it

tall dragon
#

especially when they have clients that can close guis without sending packets

north nova
#

weeeeellll

#

theres a lot of ways

grizzled bone
north nova
#

"bind" your item to uuid if uuid is taken out more than once something is sus

#

tldr

quaint mantle
north nova
quaint mantle
#

it is very hard to get ah working properly

tall dragon
#

auctionhouse.auctions.<number>

north nova
grizzled bone
tall dragon
#

just type it in??

grizzled bone
#

alr

ivory sleet
quaint mantle
north nova
#

i really mean it

ivory sleet
#

Oh you mean the plugin?

north nova
#

just know what you're doing

#

and there won't be issues

#

its as simple as that

quaint mantle
#

do you know The Horizon? most dupe glitches is around the ah

ivory sleet
#

Cause its pretty simple to write an exploit exempt gui

grizzled bone
#

and the playerbase is small

north nova
#

that means youre secure then

#

😆

eternal valve
#

Can we change the position and size of those squares that we put 64 blocks in the inventory or chest in minecraf as a plugin without mods?

echo basalt
#

uhh

#

probably with core shaders

#

but you can't really change the inventory size itself

eternal valve
echo basalt
#

I mean you can use a resource pack and do some magic to make it seem like you have a single button across multiple slots

eternal valve
quaint mantle
#

also about the ah

eternal valve
#

I have just learned that you can't add extra buttons with the plugin 😩

quaint mantle
#

plugins are server side sadly

river oracle
#

You probably could tbh, though you'd need to use an entity

river oracle
#

display entities OP for that reason though you can do lots of crazy stuff

eternal valve
#

What do you mean by wealth, I'm shocked.

river oracle
#

I could see texture conflict on the client happening though

blazing flare
#

I'm trying to modify the AI of a spider's LeapAtTargetGoal. I want the spider to... actually leap and not just bounce around. I've got something that might be okay with the exception that the spider is incapable of looking at the player. Not really sure why. AI is my weakness, as is math. bleh.

quaint mantle
#

or you can use the new entities in 1.19

#

display entities

river oracle
eternal valve
river oracle
#

you'd need to do a block place for the outline though so use an already existing plugin

river oracle
#

it'll be a ton more work if its not a mod with plugin development and adding custom blocks and stuff you need to know what you're gettin yourself into

#

you can do pretty much everything with a plugin and texture pack its just 20x harder than if you were to do it in a mod

eternal valve
river oracle
#

doubt there are tutorial videos for this stuff

#

maybe forums posts if you're lucky

#

you can probably get away with finding tutorials using command blocks, but nothing around plugin development likely exists

eternal valve
#

Yes, I realized that we are doing it only with minecraft apis, it is really very difficult by using the existing one without adding anything new of

eternal valve
#

I'd better look at the minecraft api, then I'll make simple plugins and I'll reach what I want at the end.

river oracle
#

use them properly

eternal valve