#dev-general

1 messages · Page 294 of 1

half harness
#

pog

#

lol why do I have the most amount of code

obtuse gale
#

Imagine not knowing binary

#

Smh

unkempt tangle
#

Since when is it unprofessional to show your /pl

surreal quarry
#

idk about unprofessional but a lot of servers don't like to show them lol

half harness
#

shows things like anticheat

#

allows users to bypass easily

surreal quarry
#

if its a shitty anticheat yea

#

anticheats shouldn't have ways for regular users to bypass

half harness
#

since some clients have settings for different anticheats like Spartan, NCP, AAC, Matrix, etc

obtuse gale
#

How many have settings for Watchdog 🌚

half harness
#

literally all

#

:p

obtuse gale
#

Yet thousands of people get banned :kekw:

#

Amazing

half harness
#

sOmEtHiNg cAlLed

  • imperfect
  • reporting
  • staff
  • you'll eventually get banned 🙂
obtuse gale
#

By watchdog* so you can ditch staff lol

half harness
#

anyone know why this might be happening?

#

ignore plugman

surreal quarry
#

does fortune apply to blocks?

half harness
#

idk

#

not sure

#

probably not

surreal quarry
#

try it with a diamond

#

see if it works

half harness
#

but idk why it's not dropping an ingot

surreal quarry
#

why would it drop an ingot

half harness
#

uhh

#

isn't it supposed to drop an ingot

old wyvern
#

xD

#

It isnt

surreal quarry
#

no

#

lmao

half harness
#

oh

old wyvern
#

smelt it lol

surreal quarry
#

you gotta smelt iron

half harness
#

OHHH

#

LMAO

#

okay im so stupid

#

🤦

#

wait

surreal quarry
#

you could write a plugin so you dont have to though fingerguns

half harness
#

lol

#

i sometimes play with that

#

what blocks do fortune apply to?

surreal quarry
#

i would assume just things that drop the minerals or whatever. like diamonds, coal, etc

old wyvern
#

Diamonds, Lapis, Coal, Redstone

half harness
#

oh

#

that sucks

#

ok

surreal quarry
#

write a plugin to change it fingerguns

half harness
#

it already exists tho

#

cutclean

old wyvern
#

Probably even gravel if on shovel I guess

surreal quarry
#

might do wood as well if on an axe

old wyvern
#

Really?

half harness
#

🤨

old wyvern
#

I dont think it works with wood

#

might be wrong

half harness
#

i just mined a diamond ore with a diamond shovel to see if it would drop multiple diamonds

#

it dropped none 🤣

#

i forgot

#

that u need iron pick

surreal quarry
#

well

#

yea

forest pecan
#

did you drink something fishy dkim

#

lol

half harness
#

lol

#

diamond pick with fortune + gravel = a lot of flint

#

now

#

diamond pick with fortune + wood = ?

#

a lot of wood

obtuse gale
#

Fortune also works on crops

obtuse gale
distant sun
#

and leaves iirc

obtuse gale
#

And the nether gold ores since they drop nuggets

obtuse gale
#

Today I found out about local classes

#

They seem useful but I don't see myself actually using them, I'd use nested classes or just full blown classes instead lol

surreal quarry
#

what if you wanna use the local class in some other situation too

#

then you gotta refactor

obtuse gale
#

like I get the point, it's like an anonymous class but a teeny tiny bit more "extended" and you can use it as many times as you want

#

but I think I would use a nested class for that

#

idk

old wyvern
#

But a nested class would hold a reference to the parent class's instance tho

obtuse gale
#

? what?

#

not if it's static

old wyvern
#

true

jovial warren
#

and then you look at this:

regal gale
#

:))

jovial warren
#

just to confirm my sanity hasn't just disappeared out the window, that will only be instantiated once won't it, since it's kinda static

somber tulip
#

If I wanted to, I could run scala code on a minecraft server right? I mean it all compiles to the same JVM. I don’t mean using any of the bukkit code, just for stuff like analysing a file quickly or running some logic? (Just asking because I am also learning scala and may be a good way to improve) I don’t see much reason why it wouldn’t but also I see a lot of resources implementing their own scala builder for plugins

jovial warren
#

I'm using Kotlin and that's a JVM language

#

and that runs perfectly fine

#

so if Scala is interoperable with Java (which I believe it is), then no reason why it won't work

#

Kotlin better though xD

old wyvern
#

Yea bm already did that once

ocean quartz
#

Use Kotlin 👀

somber tulip
#

Alright, I’ll try see if I can get it running tomorrow but just wanted to have a quick check. And it probably is but Uni teaches us scalaaa 😉

jovial warren
#

using constant time values btw is a bad idea isn't it

#

what I did will only instantiate it once throughout it's entire runtime I think

old wyvern
somber tulip
#

Oh sweet

old wyvern
jovial warren
#

property?

#

that term always confuses me lol

#

I'm just using local values atm

smoky summit
#

If any developers are available I'd appreciate if they could give me their input on if certain plugins I'm paying to have complete are overpriced or suited.

jovial warren
#

go for it

old wyvern
# jovial warren property?

Yea
rn you have

val TIME_NOW = LocalDateTime.now()

switch that to

val TIME_NOW 
      get() = LocalDateTime.now()
jovial warren
#

how did I not think of that

ocean quartz
#

Lmao

old wyvern
#

lol

jovial warren
#

I've spent 5 fucking days on this donkey code whack plugin that somehow works and it's still got these sorts of stupid bugs in it

smoky summit
# jovial warren go for it

$150 USD for a queue system, pretty standard, has most features that all queue plugins have. Connects to Luckperms databases to sort rank priorities on a per-realm basis.

jovial warren
#

yeah that's a rip off

#

Queuer coming soon™️ btw

old wyvern
#

define standard

smoky summit
# old wyvern define standard

Allows you to queue for realms with ranked users being given priority over unranked. The higher the rank the greater priority given. Able to /queue pause or increase/decrease the rate of which players join with /queue speed <queue> <ppm>

jovial warren
#

not bad

#

but way overpriced

oak coyote
#

If it’s made fully custom then the price is your decision

jovial warren
#

someone please flame me for this

oak coyote
#

It’s typically more than public

compact perchBOT
#
📋 Your paste, BomBardyGamer
https://paste.helpch.at/mavuqaxohu

A member of staff has requested I move your message to a paste,
Most likely beacause it contains a config/error/code snippet.

jovial warren
#

wow

ocean quartz
#

Dammit xD

#

I guess no one uses that bin so can't be converted

jovial warren
oak coyote
#

private val gui = Gui(plugin.gui.rows, plugin.gui.title.colourise())

#

I like the amount of public variables this contains

#

It’s sexy

ocean quartz
jovial warren
#

it's raw text...

#

no wonder

ocean quartz
#

Yes, bad

smoky summit
#

Is 7-8 hours a reasonable timeframe to have it be complete?

oak coyote
#

No?

jovial warren
#

that's ridiculous

oak coyote
#

A good queue system should take a few days

#

At least

jovial warren
#

few days?

oak coyote
#

And that is just pure work time

ocean quartz
#

Send the source code of deluxe queue and done

smoky summit
#

Not 7-8 hours in one day straight, 7-8 hours of work total across several days

oak coyote
#

But we don’t work 24/7

jovial warren
#

lol

#

deluxequeues is open-source

#

I'm gonna be working on my own free and open-source standalone queue server using RabbitMQ soon

smoky summit
#

I'm surprised prices are so inflated considering development charges at a reasonable price (for known/advanced developers)

#

$20/h

jovial warren
#

developers charge stupid prices sometimes

#

but they know they can, since the people they're charging are too incompetent to know how easy it is to do what they're doing half of the time

smoky summit
#

Right

ocean quartz
#

Prices are definitely not inflated, if you really think about it prices are very cheap
People will charge something like $50 for like 15+ hours of work while a normal developer would make that in 1 hour

jovial warren
#

imagine getting paid for your work though

#

imagine

half harness
#

meanwhile I do 50+ hours of work for $10 or less 😢

ocean quartz
#

Exactly, spigot devs are very underpaid

jovial warren
#

well, I can't really say shit now actually, since the guy I work for sponsored me on Patreon at the £10/month tier (highest tier) as a thank you

oak coyote
#

You all just suck at pricing

#

😂

ocean quartz
#

Yup

jovial warren
#

I just don't program for the money

oak coyote
#

Do you I do?

jovial warren
#

money's not something that interests me all that much, it's just kinda there, and it pays for things, nothing more

half harness
#

the money makes me procastinate :p

jovial warren
#

same

#

I get motivated because I love programming, not because I'm getting paid for it

half harness
smoky summit
half harness
#

ill do the same thing for $15

jovial warren
#

lol

oak coyote
#

If it’s good then it’s your choice

half harness
#

maybe $10

oak coyote
#

Ignore dkim he undercharges due to quality 😱

half harness
#

👀

#

🥲

smoky summit
#

Interesting lol

oak coyote
#

😂

half harness
#

theres two types of people

  1. People that do it all for the cash
  2. People that do it because they enjoy coding
#
  1. People that dont know
oak coyote
#
  1. Those who do it for fun, but still recognise their time is valuable
half harness
#

im so bad at time management

#

sometimes i work on the same plugin for 6+ hours a day for 2 weeks straight

#

to get $10 🙂

ocean quartz
# smoky summit Right, and that all makes sense. However $150-$170 for a queue system no matter ...

Most developers will do anything for cheap, I am not saying the person is over charging or undercharging, what I am saying is that most people under charge
Most "clients" won't pay enough because they think "it's just for a game"
You can find people that do web design for like $50 on fiverr but if you contact a company it'll be very expensive, it's something similar to that
Imo $150 is pretty reasonable for a plugin like that, you may think it's simple, but it goes much deeper than that
At the end of the day it's your choice to accept or not

half harness
#

wait

oak coyote
#

I’d probably charge about that much for a plugin that is custom and complex like that

regal gale
#

I always find the price based on value and complexity of the plugin as developer

half harness
#

is @smoky summit the dev or client?

oak coyote
#

But others may charge different

#

client

half harness
#

oh

#

unless a plugin took a year to make I'd never charge $150 :p

ocean quartz
#

Like, let's think about it, I could do if for you for $50 or i could sell it on spigot for $20, if 3 people buy it I already made more than I would doing a commission

oak coyote
#

Well you seem to value your time as 2 cent per hour

#

So shh

regal gale
#

Get gansta until someone willing to request to make whole skyblock for 1000$ cursed_fingerguns

half harness
#

lol

ocean quartz
#

Imo prices should be based on time, if it's complex it'll take more time, if it's not it won't

regal gale
smoky summit
oak coyote
#

Correct

#

Experience is important

smoky summit
#

But one of the things planned to be made is a custom skyblock core, and based on how prices are now that would probably cost at least 500-1000 which really seems like its being pushed (at least to me).

regal gale
#

Also, there're instances where people ultimately raise the price up because of the length taken

oak coyote
#

If you trust the developer and feel it’s worth it then it’s a good decision

regal gale
#

I'd rather not do it and claim it my own lol

oak coyote
#

Cores can cost around that much yeah

#

They take a decent amount of time

half harness
#

||offtopic so ill put in this spoiler but i just godbridged 22 blocks pog||

oak coyote
#

It’s fine this is general

#

Not the support channel

regal gale
#

It's close to dev-relating anyway, so it's good

half harness
#

oh i have question

regal gale
#

Also

but I just godbridged 22 blocks pog
Who asked :thonking:

half harness
#

lol

#

is it possible to detect when a player stops holding right click?

#

(in air)

oak coyote
#

Packets based yep

ocean quartz
#

Nay

half harness
half harness
regal gale
#

"Nay"?

half harness
#

nay = no

oak coyote
#

Neigh

regal gale
#

Nein

#

Also, packet doesn't even sent when interacting on air without anything in hand (right click)

ocean quartz
#

And it's constantly sending packets so figuring if it's holding or not is almost impossible, hence why i said nay

half harness
#

hm

#

so theres no way to detect when a player stops holding right click?

#

bc i can use playerinteractevent for pressing it

#

but idk about un-pressing it

half harness
#

👀

#

🥺

obtuse gale
#

There's an Action for PlayerInteractEvent for RIGHT_CLICK_AIR

#

It's cancelled by default

half harness
#

fefo

#

do you know how to detect when a player isn't holding down right click anymore
or
detect when a player is holding down right click

obtuse gale
#

No clue lol

half harness
#

😭

old wyvern
obtuse gale
#

You can use that to make clickable holograms

#

But again the event is cancelled by default because the vanilla action is to do nothing

unkempt tangle
#

He's sick.

hasty plank
#

Hey, i purchased VotePlugin, should it be ran alongside another plugin

#

It's advertised as an all-in-one, but doesnt even seem to have the basic /vote

obtuse gale
#

So on my website admin page I want to be able to edit each row in the database, but i want a different page from each table

#

So each page is basically the same it just has different data

#

how would one do that (react)

old wyvern
forest pecan
#

i dont expect anyone to get caught but

half harness
#

😫

#

i totally didn't press it

obtuse gale
#

Pulse, these "videos" don't work cross-platform lmao

obtuse gale
#

lmao

regal gale
#

(wrong channel)

obtuse gale
obtuse gale
#

who was the one who had issues sending sounds with packets?

#

@hallow crane 'twas you!!!
This is explained in the protocol specification, you need to multiply the sound location by 8, the 24 most significant bits of the integer are the integer part of the location and the 3 least significant bits are the decimal places

tl;dr all you have to do is multiply the coords of where you want the location by 8 and then cast to int, tested about an hour ago, it works just fine like that

That also means that if you don't multiply by 8 the sound location will be "shifted" towards 0;0;0 so it may sound right at 0;0;0 ±1 block

#

question

#

answer

#

hope it helped 10/10

#

I want my website to have multiple pages for some of my database tables, those pages have like a table of all the rows, and a area to edit the data in it,

#

So both pages will be the same in functionality, just different tables

#

Whats the best way to go about this (React)

hot hull
#

Is hangar planning on having free only os plugins, or can they be closed source? Because it'd be fucking awesome if only os

old wyvern
#

hangar?

hot hull
#

Yugi 🤦

quiet depot
#

only foss

#

afaik

hot hull
#

foss?

quiet depot
#

free and open source software

hot hull
#

Thank god

quiet depot
#

you know moss?

#

the server?

hot hull
#

Not in it, but yea heard of it

quiet depot
#

just to connect some dots that stands for minecraft open source software

#

iirc

#

they've got essentials and factions and shit

hot hull
#

Mhm

old wyvern
hot hull
#

Paper's new plugin platform

old wyvern
#

Wait what

hot hull
#

Probably the most accurate description

#

Bruh I swear to god you've asked this beforr

#

Before*

old wyvern
#

So like the spiogt marketplace thing?

old wyvern
#

Probably someone else

hot hull
#

They'll only be allowing free open sourced plugins on there so not exactly a marketplace

old wyvern
#

Ahh

empty flint
#

Have you guys worked with Bungeecord plugins before? Can I build them for Bungee and use them on normal spigot/paper servers or does bungee need a different API that isn't compatible?

hot hull
#

bungee is a different api

empty flint
#

So I need to make 2 different plugins if I want to support both?

#

not sure how that works

steel heart
#

use bungee.yml as the bungee manifest and then plugin.yml as the spigot manifest. Then have different main classes and yeah pretty much that.

#

Don’t interfere Bukkit api with bungee api

empty flint
#

Oh so I can package them in the same jar and bungee will ignore the plugin.yml and bukkit will ignore the bungee.yml?

steel heart
#

Yeah, bungee reads bungee.yml if one exist, it doesn’t it will try reading plugin.yml

#

Yes

#

Die thrice?

empty flint
#

since I don't have any bungee experience, I'm really not sure if that's sarcasm or not xD

empty flint
steel heart
#

Well that depends on the usage.

empty flint
#

oof thank god

steel heart
#

You’d firmly use bungee plugin to take advantage of retrieving additional information and not to mention utilizing plugin message channels.

#

Possible some event handling

#

And global commands

empty flint
#

and the rest should be handled by the bukkit plugin?

steel heart
#

But if you want to interfere with content, a spigot plugin will be mandatory

#

Yeah

empty flint
#

got it, so the bungee plugin is only active on the hub I assume and it is sort of like the communication backend for the spigot plugins that are running on the separate servers?

steel heart
#

That could be one way.

#

You can think of your bungee plugin as being some sort of mini proxy over the spigot plugins

empty flint
#

so it's a gateway between the spigot plugins?

#

like a connection?

steel heart
#

You would use plugin message channels for that

empty flint
#

so what's a clear example of the purpose of a bungee plugin that can only be done using the bungee plugin?

#

BungeeCord Plugin Messaging Channel?

steel heart
#

Uh yeah, your bungee plugin could use that, wait let me link javadocs

empty flint
#

It doesn't look like you need a bungee plugin for that purpose though

#

at least not if this is still up to date

steel heart
#

the "idea" would be that the bungeecord intercept messages from spigot plugins and can the forward it so if one of your spigot plugins would want to talk to another, then it has to go through the bungee

static zealot
#

yeah but to send messages from one bukkit to another you need to send it thru bungee

#

you can't just send it bukkit to bukkit

steel heart
#

or use redis which is objectively superior

#

Also you can listen for stuff like when a player switches from Server to Server

#

and not just Connect/Disconnect I believe

#

yeah

static zealot
#

yeah that's another thing

empty flint
static zealot
#

also the MOTD

steel heart
#

Worst case relfect the command map

static zealot
#

it needs to be on Bunge

#

if they connect to bungee

steel heart
#

blocky

#

is this bungee hub plugin a bungeecord plugin?

#

or is that the name?

empty flint
#

sorry I am not familiar with the terminology. I thought the bungee network has a central hub that is not actually a spigot server

#

at least that's how it was explained to me

static zealot
#

bungee is what connects your backend servers together

empty flint
steel heart
#

yes

#

w/o using bungee

#

though it requires an external source

#

if you do end up using redis, I can suggest lettuce

#

redis 4 java lib

empty flint
#

so redis would be an alternative to bungee?

steel heart
#

yeah

frigid badge
#

nah

empty flint
#

lol

frigid badge
#

incorrect

steel heart
#

yes it has good pub subs

#

well if you want info from bungee no I guess

#

like players online or smtng

empty flint
#

right, right

copper mason
#

'gday
I'm getting stuck with attempting to override a vanilla command. Here's a snippet of trying to get any command:

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
    {
        System.out.println("command:" + label);
        return super.onCommand(sender, command, label, args);
    }

The printline is only called when I run a command native to the plugin I'm working on (e.g. has the correct prefix), and not when running any other command.
Reason I'm trying this is to overwrite a vanilla command with one of my own. What am I doing wrong?

frigid badge
#

redis is an in memory key value database

#

bungee is a proxy

#

completely different

steel heart
#

Yes, but I prefer redis pubsubs over simple plugin message channels

frigid badge
#

sure but it isn’t a bungee replacement

steel heart
#

yeah sure

#

thats very basic innit?

#

@empty flint may I ask what you're going to use a bungee plugin for

#

yes

#

what's the exact issue here?

copper mason
#

They and I want to overwrite a vanilla command

#

and are failing to do so on our own

#

so we come here to get help

steel heart
#

lol okay

copper mason
#

🙂

steel heart
#

Do you know anything about reflection?

#

It might be less or more mandatory to have slight knowledge about it since I think you may have to use it in order to access CommandMap

#

(Spigot atleast)

#

Paper does expose it

copper mason
#

it basically means you can get all classes e.g. commands?

#

right-ish?

steel heart
#

Well yeah the CommandMap is essentially a glorified Map<String,Command>

obtuse gale
#

I want my website to have multiple pages for some of my database tables, those pages have like a table of all the rows, and a area to edit the data in it,
So both pages will be the same in functionality, just different tables
Whats the best way to go about this (React)

empty flint
frigid badge
#

you don’t need to remove it from commandmap

heady birch
#

since you are using react you must build a whole api and then a seperate web app to connect to the api

copper mason
frigid badge
#

any bukkit plugin’s commands has a higher priority than vanilla commands

frigid badge
#

yes

#

yes

distant sun
#

Obvious

static zealot
#

because you're you..

copper mason
# frigid badge yes
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
    {
        System.out.println("command:" + label);
        return super.onCommand(sender, command, label, args);
    }

The printline is only called when I run a command native to the plugin I'm working on (e.g. has the correct prefix), and not when running any other command.
Reason I'm trying this is to overwrite a vanilla command with one of my own. What am I doing wrong?

steel heart
distant sun
#

perhaps return true?

steel heart
#

But

copper mason
distant sun
#

mhm

empty flint
prisma wave
steel heart
#

You need to set it up, that's at most trivial though. But if you want like a common scoreboard, tablist (iirc), global commands, better player connection api etc

#

then bungee might be a good choice

empty flint
#

yeah, I think I will go with bungee then

compact perchBOT
copper mason
#

Do I have to somehow register my command...? I'm not sure how to overwrite the command

steel heart
#

Yeah problem with plugin message channels is that they require a player connection

distant sun
#

^

#

Which is dumb imo

steel heart
#

they use player connections to send data

empty flint
#

So you can't message server-to-server?

steel heart
#

yes

#

but a player needs to be online

empty flint
#

oh well that's dumb

#

lmao

steel heart
#

Yeah

empty flint
#

is there a way to circumvent that?

steel heart
#

that's when redis would be the best replacement

ruby craterBOT
#
public interface Server
extends Connection```
Server has 2 methods, 1 extensions, and  1 super interfaces.
Description:

Represents a destination which this proxy might connect to.

steel heart
#

yep

static zealot
#

proxy.getServers

steel heart
#

uhm

#

d;methods bungeecord proxyserver

ruby craterBOT
#
Methods:
net.md_5.bungee.api.ProxyServer#getOnlineCount
net.md_5.bungee.api.ProxyServer#getName
net.md_5.bungee.api.ProxyServer#getChannels
net.md_5.bungee.api.ProxyServer#stop
net.md_5.bungee.api.ProxyServer#createTitle
net.md_5.bungee.api.ProxyServer#broadcast
net.md_5.bungee.api.ProxyServer#getServerInfo
net.md_5.bungee.api.ProxyServer#getPluginManager
net.md_5.bungee.api.ProxyServer#matchPlayer
net.md_5.bungee.api.ProxyServer#getConfigurationAdapter
net.md_5.bungee.api.ProxyServer#setConfigurationAdapter
net.md_5.bungee.api.ProxyServer#constructServerInfo
net.md_5.bungee.api.ProxyServer#getPluginsFolder
net.md_5.bungee.api.ProxyServer#getServers
net.md_5.bungee.api.ProxyServer#ProxyServer```
static zealot
#

net.md_5.bungee.api.ProxyServer#getServers

distant sun
#

Is it only me or redis looks easy to use and cool?

static zealot
#

idk never used redis. xd

empty flint
#

Sooo for the information exchange on the proxy, one would use bungee but if no player is online, I'd have to resort to some other form of communication?

#

Doesn't that also mean the communication on bungee depends on the connection the player has to the server, meaning if they play with 300 ping then all the messages go through that delay as well?

steel heart
#

I'm not sure but it wouldn't surprise me if that's the case

distant sun
#

True

#

But most likely is not

empty flint
#

well that sounds dumb as shit

#

redis it is then?

#

idk

#

why would they code it like that tho

steel heart
#

yes

#

java.lang is always imported

copper mason
#

Thanks for nothing I guess

steel heart
#

yeah I meant the classes in the package ofc lol

empty flint
steel heart
#

might have to shade it

#

so on every server I'm afraid

#

but it's good (the lib)

copper mason
#

How do I overwrite a vanilla command,
I cannot capture vanilla commands in my

public boolean onCommand(CommandSender sender, Command command, String label, String[] args)

I can only get the commands with my prefix.

How do I know when a certain vanilla command was ran because that function is not called when any command other than one with my prefix is ran

distant sun
#

What is lettuce?

steel heart
#

its a redis for java lib

#

better than jedis in my opinion

distant sun
#

Aight

steel heart
empty flint
#

@steel heart I will definitely take a look, ty. I think I might actually combine bungee and redis. Use the bungee proxy server as a central server and run the backend logic from there, and then use redis for communication between the more front-endy spigot servers

distant sun
#

For custom objects you can use gson, right?

steel heart
copper mason
#
    public boolean PlayerCommandPreprocessEvent(Player player, String message){
        System.out.println("Command: " + message);
        return true;
    }

Prints nothing. Ever.

static zealot
#

ugh

copper mason
#

Sorry if I'm r-word

static zealot
stuck harbor
#

depends how u use it

prisma wave
#

That's fine

#

kinda

remote goblet
#

It’s a lot of work to make it static

prisma wave
#

yes?

remote goblet
#

Or make it non static

#

Well, it does there

#

Well for it to access playerInv, playerInv has to be static aswell

stuck harbor
#

d;paper Inventory#getTitle()

ruby craterBOT
#
@Nullable
Location getLocation()```
Description:

Get the location of the block or entity which corresponds to this inventory. May return null if this container was custom created or is a virtual / subcontainer.

Returns:

location or null if not applicable.

stuck harbor
#

oh ni

#

I don't think it is getType

remote goblet
#

lmao

stuck harbor
#

🤷 just look thru all of ur IDEs recommendations

remote goblet
#

getType will return InventoryType Enum

stuck harbor
#

gotta love an enum

#

efe

#

google 'get title of inventory spigot'

#

oof

#

or efe

#

just use

#

mf gui

#

eee

#

?mf

compact perchBOT
remote goblet
#

Have any of you thought of just like

#

checking spigot docs yourself

stuck harbor
#

lol

#

no

#

weird

#

so many ways that can fail mmm

#

doing like 50 operations in one line

remote goblet
#

Well anyway it was this

#

d;paper InventoryView#getTitle()

ruby craterBOT
remote goblet
#

I wouldn’t rely on InventoryView#getTitle for checking click events btw

#

Hmmm

stuck harbor
#

efe dies

#

this is what happens when u use a bad api

copper mason
# static zealot https://www.spigotmc.org/wiki/using-the-event-api/
[12:33:04 ERROR]: [Iris] Iris v1.3.2 attempted to register an invalid EventHandler method signature "public void com.volmit.iris.manager.command.CommandLocate.PlayerCommandPreprocessEvent(org.bukkit.entity.Player,java.lang.String)" in class com.volmit.iris.manager.command.CommandLocate
stuck harbor
#

oh wait

#

efe why do u name ur packages weird

hot hull
#

You can't pass in your own arguments Coco

stuck harbor
#

u gotta put ur branding in there

hot hull
#

The event method can only contain the event param

#

Yea because HumanEntity

stuck harbor
#

nought wrong with that

hot hull
#

Which kinda makes no sense but oh well

copper mason
hot hull
#
@EventHandler
public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) {
  // code  
}
stuck harbor
#

we need to use discord as an ide

remote goblet
#

I hate that video

hot hull
#

Yes efe, good one

copper mason
#

thanks

remote goblet
#

Love the song, hate the video

#

The video makes me sad

hot hull
#

Yea most music videos are yikes

#

Except for nf's

remote goblet
#

Didn’t wanna see someone being discriminated against and killed peepoSadSip

hot hull
#

Those are all awesome

remote goblet
#

He’s a dad now peeposhake

static zealot
#

dk man I feel like you guys are simping to much for that NF guy

remote goblet
#

Or going to be

hot hull
#

"that NF guy"

static zealot
#

no

#

I'm an interstellar worm

#

but I am not allowed to tell you that so now I need to kill you all

hot hull
#

Please do nuke this planet

dawn hinge
#

Do it

static zealot
#

oh don't worry its allready in the works. not to much until I'll feed on all your souls

copper mason
#

@hot hull Thanks, that worked.
I'm still getting the default output for the command as well though, any way to prevent the command from going though, e.g. if someone types /ban it doesn't actually run the default command code?

remote goblet
#

I feel like you’re all just really late to listening to certain music

dawn hinge
#

Hurry up then smh

hot hull
#

Coco, Show me what you have right now

static zealot
#

barrier

hot hull
#

Use an RP and make a ban hammer dumbass

copper mason
#
    public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) {
        Bukkit.broadcastMessage("Pog");
    }```
remote goblet
#

I mean, fair point frosty

static zealot
#

yo I don't hate NF. I actually listen to it but people in here actually simp for him. there are some songs I can't even listen to from him but they're like. listen its so good i

hot hull
copper mason
#

Can you elaborate on cancel?

hot hull
#

event#setCancelled

static zealot
#

well I can't disagree with you here.

remote goblet
#

Yeah you’re all very late to certain artists mochasit

copper mason
static zealot
hot hull
#

I've been listening to nf for like 5+ years now, which is pog

remote goblet
#

Then you’re fine but efe

#

Yes sir

#

Watch this will be a song I listened to Atleast 10 years ago

#

Okay guaranteed

#

Yes

#

What are you doing, choking them to silence???

static zealot
#

xd

hot hull
#

efe, VOID_ITEM best item for a gui.

#

Do it.

#

And KNOWLEDGE_BOOK also good

static zealot
#

Ori idk if I'm late to NF but that's not the thing. for me the vibe matters just as much as the lyrics and when you have just dark vibes its not for me. and that's why I don't like some of NF's music.

remote goblet
obtuse gale
#

I want my website to have multiple pages for some of my database tables, those pages have like a table of all the rows, and a area to edit the data in it,
So both pages will be the same in functionality, just different tables
Whats the best way to go about this (React)

static zealot
#

poor aj. keeps copy pasting the message xD no help for him today

remote goblet
#

shush

obtuse gale
#

yep lol

hot hull
#

efe, paper

static zealot
#

idk any backend so I can't help you

hot hull
#

But again, RP.

remote goblet
hot hull
#

Gonna start using them when 1.17 drops, the amount of cool shit

remote goblet
#

CustomModelData nbt catClap

static zealot
#

I've worked like 2 months with Resource packs. I gave up after I kinda got scammed

#

why??

remote goblet
#

Lazy fuck

static zealot
#

well then don't make your own admin system

#

lmao

#

just use litebans

#

way cheaper, faster and better

#

like wayy wayy better

remote goblet
#

Why make your own plugin if you don’t wanna do the work

static zealot
#

well I need couple plugins

#

you could help me

remote goblet
#

Make a skyblock plugin

#

I keep telling people this

#

Most of you are incapable of making a decent one

#

But I encourage you to try

#

It’ll keep you busy

static zealot
#

love it

remote goblet
#

Any type of skyblock plugin I don’t care

#

If you want

static zealot
#

oh man I have to go work on this core again. fuck

tranquil crane
remote goblet
#

I feel like that was a diss at me

#

In some way

tranquil crane
#

no me

copper mason
#

@hot hull Thank you so much for your help, I managed to make it work.
Much obliged!

prisma wave
#

functional programming in excel

#

lambda n.n*n

#

\x -> \y -> yx(xy)

static zealot
prisma wave
remote goblet
#

I will never understand, why in the loving fuck my plugin decides to take up to 12 minutes to compile a jar

static zealot
#

do you use gradle?

remote goblet
#

yes

hot hull
#

Takes some time to start it if you're doing other stuff at the same time

oak coyote
#

Gradle does appear to have slower compile times than maven

prisma wave
#

it can depend

#

gradle is usually much faster but it occasionally seems to have spikes where it takes a long time

regal gale
#

I think it only happened at first boot for me

lunar cypress
#

gradle does not have slower compile times, it only takes some additional time initially to start its daemons and some to parse and run the build file

#

however its task system is a lot more sophisticated and efficient than maven's goals

#

linear lifecycle? couldn't be gradle reversed_fingerguns

oak coyote
#

Yeah I don’t really use gradle enough so I was likely just seeing the first time longer compiles

frigid badge
#

then just have a view per page where you use that component

remote goblet
#

no its not because I have something else going on

#

its that plugin in specific that takes 3-12 minutes

#

every other plugin takes 300-500ms

prisma wave
jovial warren
#

👀

static zealot
#

is it tho?

jovial warren
#

imagine undercutting your competitors by saying you'll do it for free though

obtuse gale
#

Hi

jovial warren
#

these are the sorts of requests I like to snatch up and avoid people overpaying for lol

static zealot
#

dw it wasn't that much free money

hot hull
#

Ah yes because why pay for honest work when a kid with too much time can do it for free!

static zealot
#

and we wonder why people underpay minecraft devs lmao

hot hull
#

Because of people like Bardy

static zealot
#

The request wasn't just a plugin to check PAPI placeholders. he wanted custom placeholders as well.

hot hull
#

And their 2 brain cells (no offense bardy)

jovial warren
hot hull
#

<3

static zealot
#

love you BBG

jovial warren
#

you know how I am

static zealot
hot hull
#

With that I mean your viewing position on the matter, not your intellect

static zealot
jovial warren
#

yeah I know

static zealot
#

if you have that much time lmao

jovial warren
#

lol

hot hull
#

I was gonna meme on top of that, but that'd be mean

jovial warren
#

I just don't like the idea of people paying someone for something this easy

#

especially not $20

static zealot
#

what's so easy about that?

jovial warren
#

it's PAPI lol

static zealot
#

no its not

#

that's what I'm tellinjg you

#

I messaged the guy

#

he wants custom placeholders to get other servers motd

jovial warren
#

they told me they wanted it for PAPI

static zealot
#

as well

#

well idk

jovial warren
#

let's see if I can make something that works first time lol

static zealot
#

if it was just PAPI then yes. but he told me that PAPI is not even necessary just custom placeholders at least. PAPI if I want

half harness
#

whats a good price for around 25 hours of work 👀

jovial warren
#

just going to ask them to make sure lol

jovial warren
half harness
#

😳

prisma wave
#

i could do that in about 20 minutes lol

half harness
#

wot

#

what r u guys talking about

static zealot
#

about a request-paid

half harness
#

uh

#

none of those look like 20 minute work ones

static zealot
#

it got removed dw

half harness
#

ohh

#

what was it?

static zealot
#

it was " a good deal "

half harness
#

plz tell me 😫

#

im curious

prisma wave
#

literally just papi + String#equals for $30

static zealot
#

someone wanted a plugin that executes commands when some custom placeholders match a value

#

not true BM

half harness
#

👀

static zealot
#

once again

prisma wave
#

well

static zealot
#

he wanted custom placeholders

prisma wave
#

pretty much

jovial warren
#

this is a bit more complex than that

static zealot
#

...

#

BBG... what did I tell you? xD

jovial warren
#

he wants you to intercept when a placeholder is replaced and run a command if the value of the replacement is a certain value

prisma wave
#

ah

static zealot
#

runnable

#

lmao

half harness
#

still not worth $30

static zealot
#

every tick

prisma wave
#

not sure it said that on the request lol

jovial warren
#

which I believe is pretty much impossible

static zealot
#

also it was 25$

#

not 30

half harness
#

😠

jovial warren
#

it was $20-$30

prisma wave
#

he said $20-$30

#

^

static zealot
#

ah dk

#

thought he said 25

half harness
static zealot
#

also I was thinking of something else lmao. for some reason I also thought he wants custom types like equals equals ignorecase contains etc.

jovial warren
#

is it even possible to listen for plugins replacing placeholders?

static zealot
prisma wave
static zealot
prisma wave
#

so multiply that

#

but it depends

half harness
#

uh

static zealot
#

oh wait now that I think about it its not as easy as having a runable

#

because he wants the commands just once

half harness
#

i tend to do like $0.50 per hour

static zealot
#

when its replaced

jovial warren
#

$10-$15/hr? jesus christ I miss out on a lot

static zealot
#

not every time lmao

prisma wave
static zealot
half harness
#

i meant

static zealot
#

xD

prisma wave
#

if paid hourly i'd usually ask for $15

jovial warren
#

the person I work for sponsors me on Patreon for £10 a month now for the work I do lol

half harness
#

for a commission

#

i can't spell

static zealot
prisma wave
#

indeed

#

that's why it depends on the work & person

half harness
#

im still java nub

static zealot
#

like that's why I like more payment per work not per hour

jovial warren
#

imagine counting your hours

prisma wave
#

if it was a commission why didn't you arrange a price in advance lol

static zealot
#

because I know I can spend 1 hour but others can do the same thing in maybe 30 minutes

#

also that

#

you should have TOS and a price set at the beginning

static zealot
#

I kinda copied Piggy's TOS xD

#

because I feel like they're very fair

half harness
#

whats piggys tos

static zealot
#

also I've seen people charge for fixes on their own broken shit.

#

which kinda sucks.

half harness
#

👀

half harness
jovial warren
#

that's probably the best ToS I've seen in a while

static zealot
#

yeah they're pretty good

#

I feel like they're very fair

#

for both parties

half harness
#

link?

static zealot
half harness
#

oh

#

i did

#

i searched everywhere

jovial warren
#

also, you remember you mentioned that runnable task?

static zealot
#

Tearms Of sERVICE

jovial warren
#

blitz

static zealot
#

search that

#

lmao

half harness
#

o

prisma wave
half harness
#

im blind

static zealot
#

yeah I know it won't work BBG

jovial warren
#

how would you even do that?

static zealot
#

said above why

jovial warren
#

yeah

half harness
static zealot
#

because it would execute the command

#

every time

jovial warren
#

so it's impossible then

prisma wave
#

smh

#

ctrl +f

static zealot
#

not just when its changed

jovial warren
#

what he's asking for is impossible

#

without changes to PAPI (to have an event fire every time a placeholder is replaced)

static zealot
#

ah for PAPI yes. for custom ones tho not for all.

prisma wave
#

nah i think it would be possible

half harness
#

i have a question

compact perchBOT
#

There is no time to wait! Ask your question @half harness!

prisma wave
#

you could make a placeholder that delegates it

static zealot
#

how? PAPI doesn't fire na event on every placeholder change

prisma wave
#

wait what's the actual request

static zealot
#

execute a command

#

once a placeholder is changed

#

and matches a value

#

but just once

prisma wave
#

oh

#

runnable?

static zealot
#

like you can't just do runnable

#

it would do it every time

#

it finds the same value

prisma wave
#

just add a check lol

static zealot
#

he wants it only when it changes

prisma wave
#

store the previous value and compare then

jovial warren
#

that's literally impossible then

static zealot
#

yeah I thought about that as well but idk.

prisma wave
#

im like 80% sure it's possible

jovial warren
#

without making some hacks.exe like a runnable every tick (that would probably sacrifice performance)

static zealot
#

well I am sure it is possible and impossible lmao

prisma wave
#

i dont think the performance hit would be that bad

jovial warren
#

or changes to PAPI to have an event be fired every time a placeholder is replaced

static zealot
prisma wave
#

scoreboard plugins do placeholder parsing every tick afaik

static zealot
#

but if they're just a few then probably not that bad

half harness
#

what should I do if this happens: ```

  1. Give plugin (just a medium sized one... $5 worth)
  2. They dont respond
  3. They say they have issues with their pc
  4. They don't respond for days again
  5. They ask "How is you?"
  6. They say they got their paypal banned
jovial warren
#

lol

half harness
#

It's just $5... so im not going to go all crazy about it

prisma wave
#

lol

static zealot
#

I was thinking of a blacklist. where I would just add people that don't pay or are just crazy or anything and don't work with them in the future lmao

prisma wave
#

a guy didnt pay me for a $20 plugin when i was like 12, i felt really sad

half harness
#

lol

static zealot
#

@hot hull doesn't get paid on a daily basis so you can ask him lmao

half harness
#

arraylists sound yummy now

#

now I get why it's arraylist

static zealot
#

damn is it bad if I use ConfigMe and Spigot's getConfig? xD

prisma wave
#

linked lists

half harness
#

huh

#

which one is better?

prisma wave
#

usually array

half harness
#

I'm trying to make "ids" sort of... but currently I just use UUID.random() or whatever the method is 😂

#

im lazy

static zealot
#

I need to read the COnfigMe docs 😦 to understand what bean proprieties are. I hate reading 😦

prisma wave
#

property = field + getter + setter

static zealot
#

yeah but what's a bean

prisma wave
#

a POJO

#

a data class

#

etc

half harness
#

but i make the users type the uuid

prisma wave
#

ah

half harness
#

instead of just "1" it's "9812739821398712983721987392187321"

#

in mc

prisma wave
#

ic

#

just make an integer that increments then

half harness
#

i have tab completers... think that's enough?

#

oh

static zealot
#

ah so I can just save custom type objects

prisma wave
#

you can probably use static for that

half harness
half harness
prisma wave
#
data class Blah(
  val id: Long = ++highestId
) {
  companion object {
    private var highestId = 0
  }
   init {
      highestId = max(id, highestId)
      //If we're deserializing something with an ID of eg 6, we need to make sure that highestId compensates for this
   }
}
``` i did something like  this recently
#

pretty clever imo

static zealot
#

hmm I don't like configMe. idk how to get a list of lists xD

half harness
#

triumphconfig fingerguns

static zealot
#

its just updated configme

static zealot
#

tho I'm thinking of updating because I like the @Path annotation

prisma wave
#

it's pseudocode

#

and effective

#

ez incrementing ids with no duplicates

jovial warren
#

fair

static zealot
#

is 1.0.1 latest version of trimph-config?

obtuse gale
#

Maybe

#

Go figure

static zealot
#

thank you sir xD

#

you were of great help

obtuse gale
#

Ikr

#

Give me the helpful role

static zealot
#

oh wait. there's even 1.0.5 lmao

#

welp

#

fuck

obtuse gale
#

Lmfao

static zealot
#

welp now to figure out what a PropertyMapperData

#

is

ocean quartz
#

Blitz wtf, why are you using ConfigMe stuff?

static zealot
#

dw about it. I was on 1.0.2

#

not 1.0.5

#

but what the hell is a PropertyMapper ?

ocean quartz
#

Doesn't matter the version you don't create a property like that and you don't need jvmstatic
Why do you need a property mapper?

static zealot
#

yes I know I've changed that.

ocean quartz
#

Why do you need a property mapper?

static zealot
#

idk

#

xD

ocean quartz
#

Oh
Where did you even see that?

static zealot
#

I can't even find it now lmao

jovial warren
#

@prisma wave going back to my earlier thing about the messaging thingy btw, if I'm publishing a message to every server and waiting to deal with a response from one of them, how can I know when no one has the player?

#

I ain't using a timeout, since that's going to be super slow

#

and I'd rather not have every single server send back a response

static zealot
#

anyways I figured it out. yeah idk why I thought I need that. I forgot lmao.

#

and Matt I just thought its all same as ConfigMe just change the path in the annotation. I didn't know its Property.create

ocean quartz
#

I made it a lot different, the property initializer was annoying to use and wouldn't work well in Kotlin

prisma wave
#

easiest way would be to send a response back from each

jovial warren
#

fair

static zealot
ocean quartz
#

Yeah i need to write that stuff 😫

forest pecan
#

Just to verify .find() in matcher checks if any ocurrance is found within the string, but .matches() checks if the whole string matches, right?

jovial warren
#

matches will check if your input matches the given regex

#

find will give you a match

obtuse gale
#

matches basically adds ^ and $ and the beginning and end of the pattern so to say

#

And checks the whole thing

forest pecan
#

in my case, i want to check if a version is a specific version like it matches 1.8,1.9,1.10,1.11,1.12

#

and its not guaranteed

#

that it will always whole thing match cause of sub versions

#

so would i use .find()?

#

cause .matches checks the whole thing, and 1.8.9 does not match to 1.8 if its the whole thing

obtuse gale
#

Yeah sounds like you would use find

forest pecan
#

Kk sounds good

#

i was like wtf my regex works wat lol

#

then i realized it was matches()

lunar cypress
#

this sounds like you perhaps shouldn't use a regex

forest pecan
#

well, originally i made an imutableset

#

of the legacy string versions

#

then made a loop

#

but i found that regex could get the job done

lunar cypress
#

what is it that you want to do exactly

#

check if one version is higher than another?

forest pecan
#

No..

obtuse gale
#

Just check for any 1.13+ class

#

Easy

hot hull
#

Just get the server package, split it and get the exact version?

forest pecan
#

i could do that, but in my case its limited to a specific range of versions

hot hull
#

Doesn't change the fact

forest pecan
#

well im using Bukkit.getVersion

#

and checking if it contains a string

#

by using regex

#

im only using the server package thing for nms

hot hull
#

Bukkit.getServer().getClass().getPackage().getName().split("\.")[3] iirc

#

Which gives you everything you need

ocean quartz
#

Bukkit version won't tell you the R version of the server

forest pecan
#

i dont need that tho

hot hull
#

Whos that aimed at Pulse

forest pecan
#

im just checking if the server version is between 1.8-1.13

#

lol

#

idc what sub version

#

it is

hot hull
#

So then use what I said and just check with that?

ocean quartz
#

if (Bukkit.isPlebVersion())

forest pecan
#

Pattern.compile("1\\.(?:8|9|10|11|12)").matcher(ver).find()
where
final String ver = Bukkit.getVersion();

jovial warren
#
fun Bukkit.isGodVersion() = Bukkit.getServer().javaClass.`package`.name.split("\.")[3].contains("1_8")
```xD
forest pecan
#

lmao

hot hull
#

You should be shot

forest pecan
#

who

#

me?

hot hull
#

bardy

forest pecan
#

oh

#

lol

jovial warren
#

unfortunately, we must accept that 1.8 is still widely in use for PvPers

#

if it wasn't, I wouldn't support 1.8

lunar cypress
#

Broken record

forest pecan
#

^

hot hull
#

You can still not support it

static zealot
#

widely.

#

not true

jovial warren
#

I'd rather support it for now until it drops out of use, then drop it

static zealot
#

well then people will continue acting crazy

#

if you keep supporting them

prisma wave
#

well

forest pecan
#

should be a gamerule to enable 1.8 pvp

jovial warren
#

what about all those who support 1.8 though?

#

I can't do it on my own

prisma wave
#

i was actually pretty surprised yesterday

#

1.8 is only something like 6% of all servers

#

i thought it was much bigger

jovial warren
#

yeah it's going down

forest pecan
#

including viaversion?

prisma wave
#

idk

static zealot
#

@forest pecan show him the ss you sent over a few days ago or whenever xD

#

from the IS discord

forest pecan
#

wait what where lmao

#

remind me

#

xD

static zealot
#

the kid

regal gale
#

I don't think the 6% is actually small lol

jovial warren
#

Iridium Skyblock will be dropping 1.8-1.12 support soon

static zealot
#

from the wall of shame

#

I think

forest pecan
#

Oh

#

that

#

xD

#

kk

prisma wave
forest pecan
jovial warren
#

well, Iridium Skyblock's getting it's database system rewritten to use ORMLite thanks to me as well

static zealot
#

@jovial warren ^ do you still want to support 1.8? with guys like that?

prisma wave
regal gale
#

Many friends i know still obsessed with 1.8 however