#help-development

1 messages ยท Page 1717 of 1

tacit drift
#

๐Ÿ˜…

lavish hemlock
#

well, enums are compared by identity regardless so it doesn't actually matter

#

I prefer less code, personally

dull whale
#
        Location loc = p.getLocation();
        WrapperPlayServerSpawnEntity packet = new WrapperPlayServerSpawnEntity();
        int entityId = (int) (Math.random() * Integer.MAX_VALUE);
        packet.setEntityID(entityId);
        packet.setType(EntityType.ARMOR_STAND);
        packet.setUniqueId(UUID.randomUUID());
        Location itemLoc = loc.add(loc.getDirection().multiply(new Vector(3, 1, 3)));
        packet.setX(itemLoc.getX());
        packet.setY(itemLoc.getY());
        packet.setZ(itemLoc.getZ());
        packet.sendPacket(p);
        WrapperPlayServerEntityMetadata metadata = new WrapperPlayServerEntityMetadata();
        metadata.setEntityID(entityId);
        WrappedDataWatcher dataWatcher = new WrappedDataWatcher(metadata.getMetadata());
        dataWatcher.setObject(new WrappedDataWatcher.WrappedDataWatcherObject(0, WrappedDataWatcher.Registry.get(Byte.class)), (byte) 0x20);
        dataWatcher.setObject(new WrappedDataWatcher.WrappedDataWatcherObject(2, WrappedDataWatcher.Registry.get(String.class)), answer);
        dataWatcher.setObject(new WrappedDataWatcher.WrappedDataWatcherObject(3, WrappedDataWatcher.Registry.get(boolean.class)), true);
        metadata.setMetadata(dataWatcher.getWatchableObjects());
        metadata.sendPacket(p);

error: java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "objects" is null
at com.comphenix.protocol.wrappers.WrappedDataWatcher.<init>(WrappedDataWatcher.java:106) ~[?:?]
why

chrome beacon
#

What's the point of that entityid

#

Why multiply int max and then force it back down

tacit drift
#

it's from protocollib

tardy delta
#

i dont get it

quaint mantle
#

is sending packets heavy ?

#

i mean does it takes resources ?

onyx shale
#

close to none

craggy cosmosBOT
icy hollow
#

bruh

tardy delta
#

smh

pulsar path
#

how to get the nearest block of a specified type (e.g. glowstone) from a player?

crimson terrace
#

you should limit this to a certain range since you would probably need to check every block near the player for the type you want

pulsar path
crimson terrace
#

get every block within that range in a list or array and then check every single one for the type. I cant think of any other ways

#

array would probably be better since for every range there is an exact amount of blocks there can be

opal juniper
#

meh why bother storing them

#

just make a loop to loop over all the blocks in the radius and check if the type is day glow stone

crimson terrace
#

is it possible to do the iterating over every block async?

opal juniper
#

for (int x = -15; x <= 15; x++) {
for (int z = -15; z <= 15; z++) {
for (int z = -15; z <= 15; z++) {
player.getLocation().add(new Vector(x,y,z)).getBlock()
}
}
}

worldly ingot
#

pepecringe use World#getBlockAt(x, y, z) instead

opal juniper
worldly ingot
#
World world = player.getWorld();
for x
  for y
    for z
      Block block = world.getBlockAt(x, y, z);```
#

Faster and less object allocation

opal juniper
onyx shale
opal juniper
#

will have to work out which chunks you need ig

#

if it is gonna overlap borders

tardy delta
#

if a player is kicked, can i still get its name?

crimson terrace
#

you listening to an event?

tardy delta
#

no

#

kicking a player

hasty jackal
#

but if you ... kick a specific player ... you have the player, so what is the problem?

tall dragon
#

u can use OfflinePlayer

tardy delta
#

this will create an int between 0 and somewhere around 10000 right?
(int) (new Random().nextInt(100000) / 9.9

ivory sleet
#

Just use nextInt(10001)

tall dragon
ivory sleet
#

That wouldnโ€™t return between max and min

tall dragon
#

huh

#

its always worked for me

#

oh wait

#

there

ivory sleet
#

Yeah with both bounds being inclusive

tall dragon
#

my brain wasnt working for a second ๐Ÿ™ƒ

ivory sleet
#

๐Ÿฅฒ

tardy delta
#

it is possible playerkickevent is called when the player is lagging too much or something.

white thicket
#

How can I add hex color support in my plugin?

white thicket
ivory sleet
#

Simply letting the user use
&x&H&E&X&H&E&X

white thicket
#

do we need &#?

#

or just &HEX?

ivory sleet
#

No

#

For instance

#

White in hex is #FFFFFF

#

It would be

#

&x&f&f&f&f&f&f

white thicket
#

oh

ivory sleet
#

Though if you want a more precise format youโ€™d have to add something yourself

#

Most people use regex and parse a string with the format &#FFFFFF

white thicket
#

how can I make it so you just use &#FFFFFF TEXT HERE

ivory sleet
#

Since the default one is somewhat verbose

white thicket
#

oh oki

ivory sleet
#

Maybe take a look at something like that

#

Oh thatโ€™s actually not the format you want

#

Uh let me find another one

#

That one maybe

wide creek
#

Can someone send a me a tutorial for setup a databes for plugins? Im using Ubuntu (Last Version) and Flamecord
my hub server and my survival server are on 2 different machines btw

tall dragon
#

u mean a Mysql database?

wide creek
#

yes

tall dragon
#

what version of ubuntu

#

of

wide creek
#

last version

tall dragon
#

oh

#

mb didnt see haha

wide creek
#

np

#

it happens to me too

tall dragon
#

take a look at this

golden mortar
#

Is there a way to save extra data when a chunk is saved (so, something like the capability system in Forge for Chunks)?

lost matrix
golden mortar
#

Ah, nice. Thanks

white thicket
#

How can I efficiently block swear words from chat?

wide creek
#

for example

#

mysqladmin -u root -p create database_luckperms and then in the luckperms config for the password I use the same of the mysql user?

tall dragon
#

pretty sure u just need to run a mysql command

#

CREATE DATABASE db_name;

wide creek
#

ok

tardy delta
#

if not exists

wide creek
#

and what will the password of the base be ?

tall dragon
#

well whatever your account password is

#

or if you are using root, the root password

wide creek
#

ok

#

do i need to do something else if I want to access to the database from remote ?

#

i opened the port 3306

tall dragon
#

as far as i know no, but im not that knowledgeble in mysql either

gritty urchin
#

How to import spigot server not api

#

maven

wide creek
#

you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATABSE db_luckperms' at line 1

#

ah i got it

#

nvm

tall dragon
gritty urchin
#

not nms server

tall dragon
#

ohh

#

use buildtools

wide flicker
gritty urchin
#

is there not a maven repo for it

tall dragon
#

you need to run buildtools

#

that will copy the repo to your local machine

wide creek
lost matrix
# gritty urchin How to import spigot server not api

If you want to use craftbukkit and nms then just change the artifactID from spigot-api to spigot.
Just make sure that you ran BuildTools once with this version so that its installed in your local maven repository.

tardy delta
#

i cant find it but how can i save a hashset to the config yml so it looks like

key: 
  - ...
  - ...
#

i tried set("key", new ArrayList<>(set)) but that doesnt work

wide creek
#
Caused by: java.sql.SQLException: Access denied for user 'filippo'@'vmixxxxx.contaboserver.net' (using password: YES)
    at me.lucko.luckperms.lib.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[?:?]
    at me.lucko.luckperms.lib.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[?:?]
    at me.lucko.luckperms.lib.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:833) ~[?:?]
    at me.lucko.luckperms.lib.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:453) ~[?:?]
    at me.lucko.luckperms.lib.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[?:?]
    at me.lucko.luckperms.lib.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[?:?]
    at me.lucko.luckperms.lib.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[?:?]
    at me.lucko.luckperms.lib.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[?:?]
    at me.lucko.luckperms.lib.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[?:?]
    at me.lucko.luckperms.lib.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[?:?]
    at me.lucko.luckperms.lib.hikari.pool.HikariPool.access$100(HikariPool.java:71) ~[?:?]
    at me.lucko.luckperms.lib.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:726) ~[?:?]
    at me.lucko.luckperms.lib.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:712) ~[?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[?:?]
    ... 1 more

This error appears when i try to connect from remote

#

Luckperms Config.yml

data:

  # Define the address and port for the database.
  # - The standard DB engine port is used by default
  #   (MySQL: 3306, PostgreSQL: 5432, MongoDB: 27017)
  # - Specify as "host:port" if differs
  address: 93.xx.xx.xx:3306

  # The name of the database to store LuckPerms data in.
  # - This must be created already. Don't worry about this setting if you're using MongoDB.
  database: db_luckperms@93.xx.xx.xx

  # Credentials for the database.
  username: 'filippo'
  password: 'x'
eternal oxide
#

pretty sure the database should just be the name, without the ip

eternal oxide
#

database should still be without the IP, unless you actually named it that on your SQL server

acoustic pendant
outer crane
#

why are you checking the inventory via the title

lost matrix
outer crane
acoustic pendant
outer crane
#

two seperate inventories could have the same title?

acoustic pendant
#

but

outer crane
#

just compare the two inventories themselves

#

or use interfaces, as i reccomended earlier

acoustic pendant
#

i only have 1 inv created

#

and if i create other inv would be with other name

outer crane
#

ok? there will still often be incompatibilites with other plugins or even commands/datapacks?

#

just store the inventory instance and compare that

lavish hemlock
outer crane
#

oop

#

last time i used it it wasnt on the snapshot repo iirc

acoustic pendant
#

But this code, i had it in other pl and it worked

#

to not move items in your inventory

acoustic pendant
#

but here doesn't work

outer crane
#

this is why you try to stick with good practices so you dont have those kind of issues

lavish hemlock
lost matrix
lavish hemlock
#

Guava has a multimap implementation

acoustic pendant
lavish hemlock
#

Multimap<String, String> or smthn

lavish hemlock
outer crane
#

just use the snapshot repo

acoustic pendant
#

hmm

#

ok?

tardy delta
lost matrix
tardy delta
#

uhh excuse me hashset i mean

lost matrix
#

Aaah.

tardy delta
#

xd

#

i'm now trying set.foreach(uuid -> file.set(... , uuid.toString)

lost matrix
lost matrix
# tardy delta xd

Like this:

  private static final String ID_KEY = "values.ids";

  public void saveIDs(final Collection<UUID> ids, final FileConfiguration configuration) {
    configuration.set(ID_KEY, ids);
  }

  public Set<UUID> loadIDs(final FileConfiguration configuration) {
    return new HashSet<>((List<UUID>) configuration.getList(ID_KEY));
  }
golden mortar
#

Does a chunk override the hashCode method in Spigot? (So, can I safely use the chunk interface as a key in a hash map)

burnt current
#

Quick question: What is the best way to query whether a player has walked to a certain coordinate?
In my case, I would like to check whether a player has walked to a certain z coordinate. If this is the case, the player is teleported to another position. I have already tried the following:

@EventHandler
    public void playerMoveListener(PlayerMoveEvent event) {
        Player player = event.getPlayer();
        if(player.getLocation().getZ() >= Main.instance.getConfig().getDouble("destination.z")) {
            player.teleport(Main.instance.getConfig().getLocation("start.location"));
        }
    }

destination.z and start.location are values that I have inserted in the config of the plugin as follows:

Main.instance.getConfig().set("start.location", player.getLocation().toString());
Main.instance.getConfig().set("destination.z", player.getLocation().add(0, -1, 24).getBlock().getLocation().getZ());

start.location is the location to which the player should be teleported if he crosses the z coordinate, which is stored in direction.z. The player will be teleported to this location if he crosses the z coordinate.
Can anyone help me with this?

tardy delta
#

yea but then it looks like vanished-players: !!set
!!java.util.UUID '9558961c-bc19-4820-9f75-5d486448c2d5': null

lost matrix
lavish hemlock
#

asking out of curiosity

#

(I imagine that's not how it works since you can't separate them afterwards)

lost matrix
lavish hemlock
#

I have no idea what I'm looking at here

golden mortar
lavish hemlock
#

Yeah that's why it wouldn't work

#

x = 1
z = 2

and

x = 2
z = 1

are duplicates, but different chunks

lost matrix
#

Its just some bit shifting. I take 2 32 bit integer and put them in a 64 bit long by shifting and masking.

hasty jackal
#

record ChunkCoordinate(x, z) :)

lost matrix
lavish hemlock
#

records aren't magic, they're just classes that are handled differently by the compiler and VM

lost matrix
lavish hemlock
#

that allocates more than 8 bytes, while 7smile7's method allocates just 8 bytes (since long's size in memory is 8, according to Long.BYTES)

lavish hemlock
#

I've done a bit of masking... I think?

lost matrix
# tardy delta yea but then it looks like vanished-players: !!set !!java.util.UUID '9558961c-...

This would be the streamed approach:

  private static final String ID_KEY = "values.ids";

  public void addIDs(final Collection<UUID> ids, final FileConfiguration configuration) {
    configuration.set(ID_KEY, ids.stream().map(UUID::toString).toList());
  }

  public Set<UUID> loadIDs(final FileConfiguration configuration) {
    return configuration.getStringList(ID_KEY).stream().map(UUID::fromString).collect(Collectors.toSet());
  }
hasty jackal
#

ah I thought valhalla was already getting somewhere and they had that planned for it

lavish hemlock
#

Do you have any resources where I can learn more about bitwise ops, I've been wanting to but I have no idea where to find guides/projects for something so specific.

lavish hemlock
#

The last update to inline classes was in 2019.

tardy delta
lavish hemlock
#

They're mainly focusing on Panama (memory incubator APIs) and Amber (language features).

#

Although, the JVM has "value-based classes," but those are only available for standard library classes and aren't a source language feature, so much as a VM feature.

onyx fjord
#

can you stop all running scheduled tasks in a class from another class?

lavish hemlock
#

Certain classes, like Long, Integer, ProcessHandle, Optional, etc. are value-based.

ivory sleet
#

Is it with the BukkitScheduler?

onyx fjord
#

yea

ivory sleet
#

The oracle docs do have a bit of information about it

lavish hemlock
lost matrix
lavish hemlock
#

As well as examples/use-cases as opposed to Oracle's shitty documentation.

ivory sleet
#

They do provide examples tho

lavish hemlock
#

Not real-world ones afaik

#

andddd the example is limited too btw

#

it only shows masking ^

ivory sleet
#

Oh yeah their docs on that is somewhat limited

tardy delta
onyx fjord
#

okay, how do you define the task ID?

tardy delta
#

everything returns the taskid

onyx fjord
#

okay is it the one that shows task: badge?

#

this?

tardy delta
#

uhh

lavish hemlock
#

I think I'll just toy around with 7smile7's whole chunk ID thing to see what each operator does in the context of the method.

tardy delta
#

those methods returns the taskID's so you can save them somewhere and then cancel them in another class with scheduler.canceltask(id)

#

idk which method you use for the scheduling

quaint mantle
#

does getting config take resource ?

#

everytime i want to do a thing i get the config

#

it is customizable thing that it requires getKeys and stuff

#

so i can just get the value

#

im thinking of storing stuff on hashmap onEnable

#

what is this

#

that is causing that much lag

eternal oxide
#

my guess you are spamming packets

stone sinew
#

Should send packets Async anyways

tardy delta
#

when i do "" + obj is the toString() method of obj called?

lavish hemlock
#

yes

wary harness
#

any one has solution how to handel placeholder in item lore

#

for example first time placeholder will be changed to value

#

but if placeholder updates on player action or timer

#

and u don't want to recreate

#

whole inventory again

#

just grabing content is not working

#

because

#

item lore is now has value

#

and not placeholder %bananas%

#

if you get my point

tacit drift
#

@wary harness nbtapi

#

store placeholder value to nbt tag

#

if you want to retrieve it

wary harness
#

so

#

every time then I just delete

#

current lores

#

and load original

#

one from nbt

#

and update placeholder then

lost matrix
lost matrix
quaint mantle
#

how to view nms mappings

#

there was a website for it

#

i dont remember

#

oh i found it nvm

lavish hemlock
#

NMS has mappings?

#

I mean, I wouldn't be too surprised since Mojmap exists.

tardy delta
#

uhh what is a regex to remove a double string?

#

.replace("[test]+", "test")?

hasty jackal
#

[] is for "any character from these". so []+ is at least one or more characters from these. you want to use a group (test)+

tardy delta
#

oh

#

thanks

#

in fact i want to change the string permission.permission.admin to permission.admin

#

and it can also just be the last

hasty jackal
#

why don't you just substring starting from the first . ?

tardy delta
#

yea but imagine there are even more permission.

paper viper
#

you could just split on .

#

and just make a loop

#

or

#

And use "permission" for an argumemnt

tardy delta
#

btw do permissions work lowercase or doesnt matter?

eternal oxide
#

they should always be lower case.

tardy delta
#

ok

lost matrix
wary harness
#

@lost matrix


        PacketPlayOutSetSlot slot = new PacketPlayOutSetSlot(0,1, CraftItemStack.asNMSCopy(new ItemStack(Material.ANVIL)));
        ((CraftPlayer) p).getHandle().playerConnection.sendPacket(slot);
    }```
#

I tried this

#

but not effect

#

am I doing something wrong

lost matrix
wary harness
#

any tutorial

#

maybe about that

#

on spigot

lost matrix
#

Not that i know of...

hasty jackal
#

does anyone know about a plugin that uses the conversations api?

lost matrix
paper viper
#

its not as good probably tho as 7smile7's tho

#

lol

lost matrix
tardy delta
#

with which method can i get the inventory contents without armor?

fringe pawn
#

bros help me

#

get console output

tardy delta
fringe pawn
#

*server console

paper viper
#

are you using a translator?

#

because it is very bad

#

lol

fringe pawn
fringe pawn
eternal oxide
#

it already is, latest.log

fringe pawn
tardy delta
#

lastest.log is saved on onDisable() no?

eternal oxide
#

no

tardy delta
#

oh

#

i thought it was

fringe pawn
# tardy delta oh

I'm working on a web console, what I want to do is to export the real-time console to a txt file and display it in my html page.

eternal oxide
#

add a handler to the Bukkit logger

lean gull
#

plz help

fringe pawn
#

@eternal oxide plss addme friend

tardy delta
#

Bukkit.getLogger().addHandler

fringe pawn
tardy delta
lean gull
#

look at the image

tardy delta
#

wrong import?

lean gull
#

there's no where to import on there

eternal oxide
#

every class has imports

lean gull
#

no i mean like it does not give me an option to import

tardy delta
#

its the net.md5.bungee.api.chat.content.hover.Text

eternal oxide
#

no

fringe pawn
#

why?

#

pls

lean gull
eternal oxide
#

Because that would be too much like a job, and you could not afford my salary

ivory sleet
#

elgar rich : o

lean gull
#

o wait i already have that import

eternal oxide
#

I wish, but I can say I've never ever worked at a job I didn't want to work at

lean gull
#

it's hover.content, not content.hover

tardy delta
#

uhu

lean gull
#

ok so what do i do

tardy delta
#

just type Text and you'll see the import

fringe pawn
tardy delta
#

what do you doN

lean gull
#

no i already have that import

tardy delta
tardy delta
lean gull
#

and.. what do i do now

tardy delta
#

does it work?

lean gull
#

nop

#

as i said i already had the import

tardy delta
#

you were trying to send a textcomponent

lean gull
#

yes

tardy delta
#

and whats not working?

lean gull
#

it's in the image

tardy delta
#

btw use a ComponentBuilder

lean gull
#

Idk how to

#

i barely know what im doing

tardy delta
#
new ComponentBuilder()
  .append(text)
  .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(hoverText /*this is a string*/)))
  .create();
#

returns java BaseComponent[]

lean gull
#

could you explain?

#

like how it works

tardy delta
#

send it with java player.spigot().sendMessage(BaseComponent[] baseComponents)

#

it's a builder which combines TextComponents and events

lean gull
#

what does .append(text) do

tardy delta
#

adds a string or a basecomponent

lean gull
#

ok, and the .create();?

lavish hemlock
#

outputs a component

tardy delta
#

that creates the builder

lean gull
#

so you put that at the end, ok

tardy delta
#

thats how a builder works yea

lean gull
#

and what do i do if i want to have multiple text lines, or two texts in one line with different events

tardy delta
#

this is an example

#

ignore Utils.colorize, that just adds color

#

and keep in mind that .event adds an event before at the textcomponent therefore

lean gull
#

btw is ChatColor.translateAlternateColorCodes good or should i just use the weird S sign

tardy delta
#

use ChatColor....

lean gull
#

wdym

eternal oxide
#

bungee ChatColor

tardy delta
#

ChatColor.translateAlternateColorCodes('&', your text here)

lean gull
#

yes i know how to use it, i'm saying which one should i use

tardy delta
#

the one above

lean gull
#

ok that's 2 for chatcolor and 1 for weird s sign

tardy delta
#

what's the difference with the org.bukkit?

#

ElgarL

lean gull
#

wait so how do i send the base component in one line?

eternal oxide
#

No clue, I've never looked. I know it got HEX color support first, but I've been told to use teh Bungee one when using components

tardy delta
#

oh then i'm using the wrong one ๐Ÿค”

tardy delta
lean gull
#

oh ok, then how do i do it

tardy delta
#

but use player.spigot().sendMessage(player, new COmponentBuilder(). bla blabla)

lean gull
#

you just said i can't

tardy delta
#

nvm

#

just use that

ocean marsh
lost matrix
ocean marsh
wary harness
#

@lost matrix I have managed to change some items in player inventory and hot bar

lost matrix
#

You either program with an outdated bungee version or you run one

wary harness
#

but can't make it to work in open chest

#

why is that

outer steeple
#

hi im trying to make a plugin that adds 1 to a scoreboard when u right click how can u do that?

lost matrix
outer steeple
quaint mantle
#

if interval of a bukkitrunnable is 0
will it be 1 ticks ?

ocean marsh
lost matrix
lost matrix
lost matrix
# outer steeple please help

Listen to the PlayerInteractEvent and change your scoreboard accordingly.
If you want to support more than 20 cps then you need to listen for incoming packets.

lean gull
ocean marsh
lost matrix
lean gull
#

oh ok thx

tardy delta
#

that font

lost matrix
quaint mantle
# lost matrix Yes

AH SHIT
so that was why my plugin performance was worst than protocllib

ocean marsh
quaint mantle
winged ridge
#

Hey, so I'm trying to do a simple gui, it did created but in my EventHandler, when I check the inventory name, I get an error: https://pastebin.com/Ffhvv4VK
my EventHandler code : ```java
public class ClickEvent implements Listener {

@EventHandler
public void clickInvEvent(InventoryClickEvent e){
    if (e.getClickedInventory().getTitle().equalsIgnoreCase("GUI")){
        e.setCancelled(true);
    }
}

}```

lost matrix
tardy delta
#

isnt it event.getView().getTitle()?

winged ridge
#

let me try

winged ridge
#

works

tardy delta
#

on what do you click if the inv is null :/

ocean marsh
#

same error

stone sinew
tardy delta
#

oh that way

stone sinew
steady bane
#

Hey, someone who could help me with adding hex colors, to scoreboard pl?

tardy delta
#

smh whole my gui system is broken with something changed

#

and i dunno what ๐Ÿค”

lost matrix
ocean marsh
lost matrix
#

What loads one of what?

#

How big is your plugin jar?

steady bane
#

Help with scoreboard adding hex colors

wide creek
#
[17:54:19] [Server thread/ERROR]: [LiteBans] Error: Failed to initialize pool: Public Key Retrieval is not allowed
[17:54:19] [Server thread/ERROR]: [LiteBans] Cause: Public Key Retrieval is not allowed

how can I correct this?

lost matrix
wide creek
#
sql:
  # H2, MySQL, MariaDB, and PostgreSQL are supported database drivers.
  driver: MySQL

  # Database server address.
  address: 194.x.x.198:3306

  # Database name, username and password.
  database: 'db_litebans'
  username: 'admin'
  password: 'x'

  pool:
    min_connections: 1
    max_connections: 10
    keepalive: 0 seconds
    timeout: 25 seconds
    idle_timeout: 1 minute
    max_lifetime: 30 minutes

  # Database engine. Only applies to MySQL.
  engine: InnoDB

  options: 'useSSL=false&serverTimezone=UTC'

  table_prefix: 'litebans_'
shadow tide
#

now I know your going to learnjava me but would this do anything? new Test(player);
if the class Test is ```java
package com.CJendantix.lifesteal.inventories.clickEvents;

import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

import com.CJendantix.lifesteal.items.Heart;

public class Test {
ItemStack heart = new Heart().getHeart();

public Test (Player player) {
    player.getInventory().addItem(heart);
}

}

#

like would that call the constructor and do that

lost matrix
shadow tide
#

what should I do?

lost matrix
#

Either use a singleton or make this static.

shadow tide
#

whats a singleton

#

I made it static, should I make it void or return the heart itemstack (and make it the type of itemstack)

lost matrix
# shadow tide whats a singleton
  private static final ItemStack HEART_ITEM = new Heart().getHeart();

  public static void giveHeartItem(Player player) {
    player.getInventory().addItem(HEART_ITEM);
  }

Or you could use an Enum for that:

@AllArgsConstructor
public enum CustomItem {

  HEART_ITEM(new Heart().getHeart());

  private final ItemStack itemStack;

  public ItemStack get() {
    return this.itemStack.clone();
  }

}
    Player player = ...
    player.getInventory().addItem(CustomItem.HEART_ITEM.get());
shadow tide
#

thanks

young knoll
#

Player.openInventory inside your command

shadow tide
#

and then this class is the inv it opens

#

would this work to open the inventory if the name of my inventory class is Shop? java player.openInventory((Inventory) new Shop());

paper viper
#

โ“

shadow tide
#

because it tells me to lol

paper viper
shadow tide
#

ok

paper viper
#

You need to instead pass the inventory instance from the class

#

For example, your ShopGui has an inventory right?

shadow tide
#

yeah

paper viper
#

pass that in

shadow tide
#

private final Inventory inv;

paper viper
#

Yes

shadow tide
#

so I create a static getter?

paper viper
#

No no

#

why static?

shadow tide
#

bc I always make my getters static lol

#

idk

outer steeple
#

Hi. for some reason this doesnt work:

public static void OnRightClick(PlayerInteractEvent e){

Player player = e.getPlayer();
Block b = e.getClickedBlock();
Action a = e.getAction();
if (e.getHand().equals(EquipmentSlot.HAND)) {
    if (a.equals(Action.RIGHT_CLICK_AIR)) {


        player.sendMessage("helloooo");


    }
}

}
}
when i try to use RIGHT_CLICK_BLOCK, LEFT_CLICK_BLOCK and LEFT_CLICK_AIR it works but when i use RIGHT_CLICK_AIR it doesnt why?

paper viper
#

you are using static the wrong way

shadow tide
#

ok

paper viper
#

Just to prove some basic knowledge, can you show me a basic class

#

with some properties, getters

#

and write it

shadow tide
#

so like

#

uhh

#

what should I get?

paper viper
#

just write any class

shadow tide
#

k

paper viper
#

just write a basic class

glossy scroll
#

Hey does anyone know a library to read/trim/write region files?

outer steeple
#

Hi. for some reason this doesnt work:

public static void OnRightClick(PlayerInteractEvent e){

Player player = e.getPlayer();
Block b = e.getClickedBlock();
Action a = e.getAction();
if (e.getHand().equals(EquipmentSlot.HAND)) {
    if (a.equals(Action.RIGHT_CLICK_AIR)) {


        player.sendMessage("helloooo");


    }
}

}
}
when i try to use RIGHT_CLICK_BLOCK, LEFT_CLICK_BLOCK and LEFT_CLICK_AIR it works but when i use RIGHT_CLICK_AIR it doesnt why? PLEASE HELPPP

young knoll
#

You need to be holding an item

paper viper
#

Also cant use static

#

for events

lost matrix
outer steeple
#

yes

lost matrix
paper viper
#

It does?

young knoll
#

I mean they said it works with other actions

#

So

chrome beacon
#

Are you holding an item

ancient plank
#

reading is hard

paper viper
#

Elgar lied to me

#

๐Ÿฅฒ

lost matrix
# outer steeple yes

Check if the Block is null.
Clicks on a Block always get registered but clicks in the air without an ItemStack in your hand dont.

paper viper
#

Or not Elgar actually, lynx

#

lol

#

i purposely posted bad code to see how helpers would react

lost matrix
#

lul

lost matrix
lost matrix
shadow tide
#

@paper viper sorry I was taking my meds, here is a very simple class. ```java
package com.CJendantix.lifesteal.commands;

public class Test {
private int a;

public int getA() {
    return a;
}

public int setA(int A) {
    return a = A;
}

}

lost matrix
#

Just check == with null

paper viper
outer steeple
paper viper
#

notice how you didnt use static

shadow tide
#

I was taking your advise

paper viper
#

Yep

lavish hemlock
#

advice*

shadow tide
#

god

paper viper
#

Now do that for gui class

shadow tide
#

lol

paper viper
#

Make a public getInventory method (getter method) to get your inventory

shadow tide
#

already did that

paper viper
#

Kk nice

#

now use that method

#

when you want to open the inventory

shadow tide
#

player.openInventory(new Shop().getInv());

paper viper
#

Yes

shadow tide
#

yay

outer steeple
# lost matrix Using java

if (a == Action.RIGHT_CLICK_AIR) {

        player.sendMessage("helloooo");


    }
}

Like this? sorry if im doing dumb stuff i just started

ancient plank
#

hella spacing

paper viper
#

make sure to change e.getHand().equals(EquipmentSlot.HAND) too

shadow tide
#

if you have to say this

Like this? sorry if im doing dumb stuff i just started

#

?learnjava

undone axleBOT
paper viper
#

huh

shadow tide
#

he said Like this? sorry if im doing dumb stuff i just started so, like, he should learn java if he is doing dumb stuff xd

paper viper
#

oh

outer steeple
#

still doesnt work when im not holding an item

young knoll
#

It never will

#

The client doesnโ€™t send a packet for that

shadow tide
#

I still get learnjavad a lot but atleast I looked at a few and did some courses so i'm not like "How to do hellow worled"

outer steeple
#

bruh i just realized that i dont even need it to detect if a player is not holding an item. oh boi 2 hours wasted yayyyyyy i want to dieeeee

shadow tide
#

i feel u bro

ebon siren
#
           Init plugin = new Init().getPlugin();

            ItemStack item = plr.getInventory().getItemInMainHand();
            ItemMeta meta = item.getItemMeta();

            assert meta != null;
            PersistentDataContainer container = meta.getPersistentDataContainer();
            NamespacedKey key = new NamespacedKey(plugin, "modifier");

            container.set(key, PersistentDataType.STRING, modifier);

why does it keep erroring that "plugin is already initialized!"

shadow tide
#

bruh

ebon siren
#

how would i use the plugin in the namespacedkey without putting it in the init file

shadow tide
#

because it is

ebon siren
#

but the function it's in is

hasty prawn
#

Because you're doing new Init()

ebon siren
#

required for other functions

hasty prawn
#

Assuming Init is your main class

ebon siren
#

and yes it is

ancient plank
#

?di

undone axleBOT
paper viper
#

And use JavaPlugin.getPlugin

hasty prawn
#

DI or Singleton

paper viper
#

for enum

ebon siren
#

ok

outer steeple
#

how can i add 1 to a scoreboard named rcd?

steady bane
#

Someone help me with scoreboard adding hex colors?

left apex
#

Hello

#

Someone knows which should be the class for totem activator? I mean, if a Spider makes me activate a totem, I want to display Spider.

#

I tried with LivingEntity but doesnโ€™t work

paper viper
#

Like this?

#

wait it doesnt say who deal damage to the entity tho

#

well you can do getLastDamageCause

#

and do that

mortal hare
#

is it worth it to implement trie data structure to custom command handler?

paper viper
#

Definately

#

it will save you a lot of time

#

and make your code cleaner

#

You can use Brigad or some other framework to assist you with that

mortal hare
#

im already using node system for commands but im thinking if i could implement trie to make argument searching a lot faster

#

but there's a con that its highly memory inefficient

#

even with compression

paper viper
#

do you mean tree?

#

or am i thinking of smthing different

#

lol

mortal hare
#

no

paper viper
#

Oh

mortal hare
#

a Trie data structure

#

i already have tree like node classes

#

trie data structure is a tree specifically design to insert and search strings

#

it searches strings in O(n)

paper viper
#

Ah ic

mortal hare
#

by implementing it you could search the arguments in O(N) rather than using equals for string function which is from O(1) to O(N) by itself,

#

without it the search would take O(N^2) while with it it would take O(N), which is a lot faster, but takes more memory due the way you need to store every character as a separate node in multiple arrays

#

unless you do compression, but that still doesnt solve much inefficiency

#

basically its CPU vs Memory game

paper viper
#

depends on how large of a data structure you are dealing with ig. Like how many commands you are going to use. But i still think its fine to do it

left apex
paper viper
#

np

shadow gazelle
#

Any ideas as to why Spigot is just ignoring that I told it to add a enchantment to an item stack?

mortal hare
#

have you set the item meta back

shadow gazelle
#
ItemStack sv = new ItemStack(Material.GLASS_BOTTLE);
        ItemMeta svMeta = sv.getItemMeta();
        sv.setAmount(1);
        sv.addUnsafeEnchantment(Enchantment.LUCK, 1);
        svMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&5Soul Vial"));
        svMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
        sv.setItemMeta(svMeta);

Everything here but the enchantment works

outer steeple
#

how can i add 1 to a scoreboard that already exist?

shadow tide
#

this is my inventory class: https://paste.md-5.net/ivitudipeh.java
its almost completely copied from: https://www.spigotmc.org/wiki/creating-a-gui-inventory/
when I click an item it allows me to freely drag it around, I thought it wasn't supposed to do that. If it is supposed to do that, how do I make it not, and if its not, how do I fix it?

#

@someone lol

shadow gazelle
#

You need to cancel the click event if the clicked slot is incorrect

#

Or you could use the clicked item

shadow tide
#

I want them to be able to click it, but it to go back to its original location after

#

and then do something if they clicked it

#

right now its not doing either of those things

tardy delta
#

what is O(n).

#

f(x)?

shadow tide
#

?

tardy delta
#

saw that somewhere above

shadow gazelle
shadow tide
#

I want them to be able to click it, but it to go back to its original location after
and then do something if they clicked it
right now its not doing either of those things

tardy delta
#

ah i looked it up but it's something else than f(x)

opal juniper
tardy delta
#

uhu looking it up

opal juniper
#

describes how an algorithm performs as the number of inputs increases iirc

#

O(n) = linear
O(1) = constant
O(n^2) quadratic

tardy delta
#

O(n^5) ๐Ÿ˜ณ

#

is that possible?

golden turret
#

yes

smoky oak
#

but not recommended

golden turret
#

while (true) for (;;)

quaint mantle
#

almost everything has a O(n) solution

opal juniper
#

O((n-1)!) is bogo sort iirc

smoky oak
#

sounds about right

#

on another note i know i asked this before but how do i check for a reload again?

shadow gazelle
#

How the hell did I insert an if

opal juniper
#

check the length of Bukkit.getWorlds()

shadow gazelle
#

anyway

eternal oxide
opal juniper
#

^

smoky oak
#

thx

shadow gazelle
tardy delta
#

oh no logarithms

shadow gazelle
#

All I did was check for the slot and an item and I can't take an item out

opal juniper
shadow gazelle
#

?paste

undone axleBOT
shadow gazelle
tardy delta
#

ofcourse i forgot everything

smoky oak
tardy delta
#

means it is reloading

eternal oxide
#

no

opal juniper
eternal oxide
#

if its empty its a fresh start

opal juniper
#

wait

#

yeah

#

what he said

#

lol

tardy delta
#

lol

eternal oxide
#

if it has worlds its a reload

ancient plank
#

smart

tardy delta
#

so it's reloading

eternal oxide
#

oh he had a !, so correct

tardy delta
#

heheh

muted sand
#

how do i run a command and then click on a block?
i am not sure how to "wait" inside a command event thing for a block click event

i.e, i run /destroy, and it breaks the block i right click on

eternal oxide
#

you don;'t wait. You set a flag on that player you can look for in any upcoming break event

muted sand
#

ohhh

outer steeple
#

hello i was wandering about how does this work player.setScoreboard();

vivid cave
#

question, what if I send a SetSlot packet to a player, with WindowId=-2 (player inventory) with a diamond chestplate on slot=6 (chestplate slot), will everyone be able to see he's wearing a diamond chestplate (even though technically he's not wearing it, just a packet to give the impression)

golden turret
#

no

vivid cave
#

player will be able to see it at least i suppose

vivid cave
#

how can i send this packet to everyone?

golden turret
#

you will need to send PacketPlayOutEntityEquipment

#

for everyone

vivid cave
#

alright, very interesting thank you

golden turret
#

i used protrocollib

vivid cave
#

now, what if I send a SetSlot packet to a player, with WindowId=-2 (player inventory) with a diamond sword on slot=the slot that player has in main hand, will everyone be able to see he's wearing a diamond sword

#

@golden turret

chrome beacon
#

Update Java on server or target older Java

#

Also please don't name your class Main

vivid cave
shadow gazelle
#

Anyone know why this takes two vials and gives two filled with one enderman? It's getting really annoying and makes no sense while the item stacks are set to one.
https://paste.md-5.net/hadaciyavo.cs

tardy delta
#

O

shadow gazelle
#

The experience bottle is the filled version and the normal bottle is the empty version

torn shuttle
#

two quick questions about the spigot forums, 1) would it be fine to track download counts hourly for my projects to map trends , 2) would it be fine to provide that site-wide as a free service on a third party platform

#

programmatically, of course

ancient plank
shadow gazelle
#

I thought interact was only right click from what the docs said

ancient plank
#

it is, but players have a main hand and an off hand

eternal oxide
shadow gazelle
#

Unless I'm remembering wrong

eternal oxide
#

especially hourly

shadow gazelle
torn shuttle
eternal oxide
#

Thats for getting YOUR plugin version. Scraping EVERY plugin version hourly?

torn shuttle
#

that's why I broke it down into two questions

ancient plank
shadow gazelle
#

Oh, for each hand

#

brain

torn shuttle
#

man think of the great name I could secure for this service

shadow gazelle
#

How the quack does that work

#

Wait

#

no, that makes sense

outer steeple
#

Hello i need help i want to make it so when u right click 1 is added to a scoreboard named rcd i have done the right click part but i dont know how to add 1 to rcd PLEASE HELP!
here is my code:

`@EventHandler
public static void OnRightClick(PlayerInteractEvent e){

Player player = e.getPlayer();
Block b = e.getClickedBlock();
Action a = e.getAction();
if (e.getHand().equals(EquipmentSlot.HAND)) {
    if (a.equals(Action.RIGHT_CLICK_AIR)) {
        
    player.sendMessage("rcd set to 1");

    }
}

}`
rcd is an already made scoreboard

ancient plank
#

use 3 ` instead of 2 for codeblocks

#

like this

outer steeple
#

hello?

ancient plank
#

patience

outer steeple
#

k

#

...

#

idk how to do that ....

young knoll
#

Map

outer steeple
#

umm what is map?

young knoll
#

?learnjava

undone axleBOT
ancient plank
#

its a map its a map its a map its a map its a maaaaap

torn shuttle
#

map is life, map is love

ancient plank
#

maps are so useful

outer steeple
#

i still dont know what is map

torn shuttle
#

without maps we are nothing but naked cavemen counting through rocks until we find the sharpest one, only to then count them again

outer steeple
#

ummm

#

wut

ancient plank
lavish hemlock
#

a map is a data structure that allows you to get a value from a value
e.g. a Map<String, Integer> maps an integer to a string, meaning you put in a string to get an integer
String is the "key," Integer is the value

torn shuttle
#

unfortunately lions is illiterate which really doesn't help with on his dreams of becoming a programmer

outer steeple
torn shuttle
#

told you

lavish hemlock
#

welp

#

I tried my best

torn shuttle
#

and you didn't succeed

#

you got what you wanted but not what you neeeded

outer steeple
#

ok comeing in a few years after i go thru the courses byeeeeeeeeeee

torn shuttle
#

stuck in supoooooooort

unreal quartz
outer steeple
#

thank you

ancient plank
#

just sit down for like 30-60 minutes every day learning something new

#

eventually you'll get it done

outer steeple
#

dude i just wanted to add 1 to a scoreboard and now i have to do this

torn shuttle
#

and if you sit down for 10-16 hours learning something new you might actually learn enough to do something practical with that knowledge

ancient plank
#

I can't sit down for 10 hours learning, I get distracted too easily for any more than 2 hours of learning

torn shuttle
#

I can't get up until I am done

lavish hemlock
#

I just learn by doing

outer steeple
#

i just wanted to make a single plugin and now i have to do this.i already learned c# and it was pain in the donkey. why am i doing this to myself

lavish hemlock
#

if you learned C#, how are you having problems with Java?

ancient plank
#

it's different if I'm doing something I enjoy, I will sit and work on it for hours until I'm in pain from hunger/thirst, but learning something I don't enjoy is kekW man

lavish hemlock
#

also stop trying to get us to pity you and just do shit maaaan

torn shuttle
#

if you learn programming for 30 minutes a day I can't help but wonder how many years it would take before you can do anything vaguely complex with it

ancient plank
#

I mean eventually you'll get somewhere kek

#

but 10 hours every day is a bit unrealistic for most people

lavish hemlock
mortal hare
#

C# has a different syntax, they do have namespaces or whatever they call classes in there

ancient plank
#

Java is c# without microsoft

lavish hemlock
#

If it helps:
C# - Dictionary
Java - Map

torn shuttle
#

c# is java without oracle

outer steeple
#

OHHHHHHHH

ancient plank
#

tru

lavish hemlock
outer steeple
#

u mean dictionaryyyy

ancient plank
#

waiting for the "OHHHHHHHHH, I still don't get it."

#

no, we mean maps

lavish hemlock
#

we mean maps yeah

ancient plank
#

they're called maps in java.

torn shuttle
outer steeple
#

i still dont get it lollll

ancient plank
#

there it is

#

give me an award

lavish hemlock
#

aaaaaaaand blocked /j

torn shuttle
#

sorry

#

next time have less faith

mortal hare
#

stop

#

bullying you narcisistic human being

#

@lavish hemlock ?learnjava

#

why it doesnt work

outer steeple
#

bruh just help me i dont have the timeeee. i am going to die if i start watching a course

torn shuttle
#

dovidas coming in with the hot takes without knowing what's going on

lavish hemlock
#

it doesn't work bc you pinged me before executing the command lmao

torn shuttle
#

very cool

lavish hemlock
#

aaaaalso

#

why are you pinging me with ?learnjava?

mortal hare
#

that's like trying to swim without knowing how to swim

torn shuttle
#

this is the blind leading the blind taken to a whole new level

lavish hemlock
#

lmaaao

ancient plank
undone axleBOT
ancient plank
#

superior

outer steeple
ancient plank
#

๐Ÿ’ช

mortal hare
#

dumb bot, but ok

lavish hemlock
#

wweeeelllll

#

it's included so you can reference command names

#

without executing the command

#

like in this situation: ?learnjava

mortal hare
#

ok

torn shuttle
lavish hemlock
#

also allowing you to put ?learnjava anywhere in the message to execute it causes multiple complications

#

e.g. "how do you locate the start of the command?"

ancient plank
torn shuttle
lavish hemlock
#

? is a good prefix but if you substring by first occurence of ? you'll run into the problem of people using ? as punctuation

outer steeple
#

can someone thanos snap me before i start thinking about watching the course PLS

ancient plank
#

just google it "what is a map java"

outer steeple
#

dude i dont get it

mortal hare
#

So basically map is a data structure that could access things very quickly, using hash function.

#

Key: Value

#

you set the key for the value, via .put() method

torn shuttle
#

fast like sanic?

ancient plank
#

put

mortal hare
#

you get the value by supplying the key that you've provided

torn shuttle
#

lol

mortal hare
#

.put

outer steeple
#

i need a scoreboard not a google map

ancient plank
#

xd

#

alr im out

mortal hare
#

i give up

torn shuttle
mortal hare
outer steeple
torn shuttle
#

perfectly balanced

#

as all things should be

mortal hare
#

that even loads in the server

outer steeple
#

yes

torn shuttle
#

nice edit

#

really managing to turn that boolean into a Boolean

mortal hare
#

here's the API for the scoreboard (1.9+ only)

shadow gazelle
#

This makes so much sense

outer steeple
#

omfg YESSSSSSSSSSSSSS

mortal hare
#

are you on 1.8?

outer steeple
#

no

torn shuttle
#

these edits are hilarious

outer steeple
#

i read 1.9 only

mortal hare
#

then you can use this API

outer steeple
#

but its 1.9+

lavish hemlock
#

1.9*+*

outer steeple
#

sooooo its ok

lavish hemlock
#

meaning 1.9 or higher

outer steeple
#

thanks

lavish hemlock
#

if you're not on 1.8 then you should have no problems

outer steeple
#

i wanted to die for the last 46mins but now its ok

ancient plank
#

1 tip: learn to google, if anything

mortal hare
#

wait, i mismatched the bossbar with scoreboard, this should probably work with 1.8 too

outer steeple
torn shuttle
#

๐Ÿ’ฏ

tardy delta
#

UwU

lavish hemlock
torn shuttle
#

that's why you're doing the googling and he's asking you, his secretary, what to google

tardy delta
#

oh

outer steeple
#

yeah

tardy delta
#

i use opera gx ๐Ÿ˜ณ

outer steeple
#

its the best

mortal hare
#

i speak enchanting table language

tardy delta
#

oh

mortal hare
#

โ‘แ’ท๊–Ž๊–Ž๐™น แ’ฒ|| โ†ธโšโ†ธแ’ทแ“ญ

tardy delta
#

โ‘แ’ท๊–Ž๊–Ž๐™น แ“ญโ•Žโˆท

#

Tโ‘แ’ท แ“ตโšโˆทโ„ธ ฬฃ แ”‘โ•Žใƒช โˆท๐™นแ“ญแ’ท แ”‘ใƒชโ†ธ โ„ธ ฬฃ โ‘แ’ท แ“ญโ‘๐™นโˆด โˆดแ”‘แ“ญ ๐™นใƒช. Iโ„ธ ฬฃ โˆดแ”‘แ“ญ โ‘โ•Žโ†ธโ†ธแ’ทใƒช โŽ“โˆท๐™นแ’ฒ แ“ญโ•ŽโŠฃโ‘โ„ธ ฬฃ ส–|| แ”‘ แ’ฒแ”‘แ“ญแ“ญ ๐™นโŽ“ ๊–Žแ’ทแ”‘โŠแ’ทแ“ญ แ”‘ใƒชโ†ธ แ“ญโ‘โˆทโšส–แ“ญ.

torn shuttle
#

for anyone wondering, this translates to "your mom"

tardy delta
#

oh

torn shuttle
#

keeping it classy when asking for support, I like it

tardy delta
#

brrrt

#

๐Ÿ˜Œ

ancient plank
#

english only pls

outer steeple
#

lol

#

sorry but we only speak chinise and enchanting table language

tardy delta
#

vodka

torn shuttle
#

that's the standard galactic alphabet

outer steeple
#

and russian

torn shuttle
#

at least learn the names of the things you're pretending to do

quaint mantle
#

english please

torn shuttle
#

he says he thinks we're very dumb and that it's bulgarian

#

can you just kick him at this point

eternal oxide
#

you do know there is a ban hammer in here

outer steeple
#

i will stop

#

sorry

torn shuttle
#

I somehow don't buy it that you are sorry

outer steeple
#

well ok

#

ban me

#

btw i still dont know how to do the thing i asked for earlier

torn shuttle
#

I doubt you ever will

outer steeple
#

wow

#

at this point im just getting cyber bullied

torn shuttle
#

if you wanted support maybe you shouldn't call the people you're asking support from idiots

outer steeple
#

i havent called anyone an idiot

eternal oxide
#

he called everyone stupid

#

not idiots

torn shuttle
#

if you're thinking you're clever because you deleted the messages then you are in for a rough ride buddy

quaint mantle
#

?kick @outer steeple

undone axleBOT
#

Done. That felt good.

ancient plank
#

no I deleted them

#

because they weren't english

quaint mantle
#

i think i just popped my jaw

#

i was biting down on my teeth and the right side popped

torn shuttle
#

come over to my place I'll pop it the other way

quaint mantle
#

Woah

#

๐Ÿ˜

torn shuttle
#

I meant punching you deviant

quaint mantle
#

Oh.

#

no fun ๐Ÿ˜ 

torn shuttle
#

medical procedures like punching someone in the jaw usually aren't

onyx shale
#

we are men of culture in here

ancient plank
#

maybe not a discussion for spigotmc discord

onyx shale
#

indeed

ancient plank
#

dms or ๐ŸŒ split

torn shuttle
#

spigotmcafterdark

unreal quartz
#

taps are my fetish

onyx shale
#

and here we go

torn shuttle
#

now this is appropriate

unreal quartz
#

i love it when they are wet

ancient plank
torn shuttle
#

cursed words

ancient plank
#

#general for non-help discussion perhaps ๐Ÿ‘

onyx shale
#

well.. in a way is a form of personal development as we are learning things

torn shuttle
#

begging for a cursed response

#

I'm just putting off debugging

#

it'll be the end of me

ancient plank
#

I don't know what I'm supposed to do for my current project so I'm procrastinating

torn shuttle
#

I know what I am supposed to do for my current project and that's why I'm procrastinating

onyx shale
#

im alrdy finished with my project im just too lazy to set it up on the server

torn shuttle
#

the plurality of man

onyx shale
#

yoinking arenas off google is hard man..

torn shuttle
onyx shale
#

just fix it lmao

#

and also remove world guard

torn shuttle
#

brah

#

I can't tell people to uninstall regional protections and I don't even know what's causing it in the first place

#

I ask people if they're using world protection plugins and they say no

#

then I ask if they use wg and they say yes

ancient plank
#

๐Ÿคฆ

onyx shale
#

hook to it then

torn shuttle
#

then I ask for a list of plugins and they have 5 overlapping regional protection plugins

onyx shale
#

hook to all of em

#

hook em good

torn shuttle
#

I do have wg taken into account, just not the other ones

shadow gazelle
torn shuttle
#

what's worse is that this system is already built to bypass this issue but clearly not correctly

shadow gazelle
#
        if (inventory.containsAtLeast(Items.Soularium(), 1)) {
            if (!inventory.getResult().isSimilar(Items.SoulVial())) {
                inventory.setResult(new ItemStack(Material.AIR));
            }
        }
ancient plank
#
    at me.nathan.soulbound.listeners.PrepareWorkstations.prepareCrafting(PrepareWorkstations.java:32) ~[?:?]
torn shuttle
shadow gazelle
#

Seeing as it still works and only happens the first time you put the item in

onyx shale
#

if only paste md5 was working for me

shadow gazelle
#

Line 32 is the Items.SoulVial() part

onyx shale
#

windows yells unsecured everytime i open it

torn shuttle
#

why are paste websites so cursed in 2021

shadow gazelle
#

Yes

#

But anyway, anyone have any idea why tf Spigot is doing crack and giving me an error like that then proceeding to work as intended?

onyx shale
#

why is every map i search with the tag "schematics" a fkn world map

torn shuttle
#

already shared my idea

shadow gazelle
torn shuttle
#

yeah

#

that's what makes me think that's the issue

#

you're checking it when it's about to be there but not there yet

#

and subsequent attempts it's already there

shadow gazelle
#

It errors the first time I put the item in

torn shuttle
#

well it's null so figure out which part of it is null

shadow gazelle
#

Item goes in > error > take item out > put item back in > no error

#

None of it should be null

torn shuttle
#

your machine doesn't seem to think so

#

and it's probably right

shadow gazelle
#

It saying null makes no sense

ancient plank
#

debugging time

shadow gazelle
#

Not sure how I would even do that with this

ancient plank
#

is #getResult() null?

#

check everything that might be null ig

shadow gazelle
#

fuck

torn shuttle
#

debugging 10-1

ancient plank
#

when I debug I just spam sout's everywhere

torn shuttle
#

I have a class for that

onyx shale
#

you guys debug stuff wut?

crimson terrace
ancient plank
#

until smth pumps positives