#help-development

1 messages · Page 1111 of 1

rugged fern
#

Sorry for ping but is there any function for set the location where the ServerPlayer has to spawn?

worthy yarrow
#

sounds like a design flaw

eternal oxide
#

setPosRot

#

or somethign similar

rugged fern
#

Ahh yeah thanks

worthy yarrow
#

I'm not sure if you could do without cancelling the event, otherwise iirc there are some methods to set the durability of an item but this also sounds tedious

lone oracle
#

may somebody please explain why:
chests.add(new Location(Bukkit.getWorld("world"), 1000, 40, 998));
works in one class but not another?

worthy yarrow
#

more context

lone oracle
#

with the error:

    - Syntax error on token ";", @ expected
    - Syntax error on token ".", @ expected after this token```
lone oracle
#

hold up

worthy yarrow
#

?paste your code

undone axleBOT
lone oracle
#

In one class it works fine, then I made a new one and no ArrayLists work. They all give that error

#

on second thought maybe here isnt the best plac eto ask :/

worthy yarrow
#

it is

lone oracle
#

yes

eternal oxide
#

post your actual code not the bits you think we want to see

lone oracle
#

alr

eternal oxide
#

post teh code that doesn't work

lone oracle
#

wait mb

eternal oxide
#

thats the working one

lone oracle
eternal oxide
#

post teh full code of the not working one

worthy yarrow
#

Why not just pass this list to the class you need it in, rather than rehardcoding it

eternal oxide
#

ok you can't have code run at class level

#

not without a code block

worthy yarrow
#

^

lone oracle
#

my fault 😉

worthy yarrow
#

Really redundant to do this the way you are

lone oracle
#

brah I picked up java like 2 days ago ;-;

worthy yarrow
#

Oh well then there you go

#

something to work on

lone oracle
#

thanks :P

worthy yarrow
#

?di take a look at dependency injection, should give you a general idea of what I mean by passing

undone axleBOT
rugged fern
#

i got this error while spawning the npc: Caused by: java.lang.NoSuchMethodError: 'net.minecraft.server.level.ServerLevel org.bukkit.craftbukkit.v1_21_R1.CraftWorld.getHandle()' at eu.sabermc.manager.NPCManager.createNPC(NPCManager.java:28) ~[?:?] at eu.sabermc.listener.PlayerJoinListener.onJoin(PlayerJoinListener.java:14) ~[?:?] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?] at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-api-1.21.1-R0.1-SNAPSHOT.jar:?] ... 22 more

kind hatch
#

Did you use the special source maven plugin?

rugged fern
#

Yea

kind hatch
#

Did you verify that the right version is set?

eternal oxide
#

running Spigot or Paper?

kind hatch
#

They are using spigot

eternal oxide
#

k, just paper no longer has versions in CB

kind hatch
#

Oh?

#

I need to keep up to date with paper changes more often

rugged fern
#

The code: ``` public static void createNPC(Player player, String name) {
MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer();
ServerLevel world = ((ServerLevel) player.getServer()).getLevel();

    GameProfile gameProfile = new GameProfile(UUID.randomUUID(), name);
    ServerPlayer npc = new ServerPlayer(server, world, gameProfile, ClientInformation.createDefault());

    npc.setPos(player.getLocation().getX(), player.getLocation().getY(), player.getLocation().getZ());
    npcs.put(npc.getUUID(), npc);

    ServerPlayerConnection connection = ((CraftPlayer) player).getHandle().connection;
    connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER, npc));
}```
eternal oxide
#

you have a cast wrong

#

on ServerLevel

rugged fern
#

hmm i dont get it tbh

chrome beacon
#

You can just use the Citizens plugin API

peak depot
#

doesnt EntitySpawnEvent prevent custom mobs from spawning or is my code bugged

chrome beacon
#

might depend on how they were spawned

#

but it should

stone ruin
#

Hello, how can I do a multi-module gradle project, to use NMS with mojmaps ?

eternal oxide
#

?nms

quaint mantle
eternal oxide
#

?multi-module

stone ruin
#

thanks

eternal oxide
#

yeah find the multi module teh same place nms is

stone ruin
#

because

#

I already tried

chrome beacon
#

show us what you tried

rugged fern
chrome beacon
#

why not

#

add the remapping

stone ruin
#

But well, I get this error :```
22:43:51: Executing 'build'...

FAILURE: Build failed with an exception.

  • What went wrong:
    Circular dependency between the following tasks:
    :classes
    --- :compileJava
    --- :jar
    +--- :classes ()
    --- :compileJava (
    )

(*) - details omitted (listed previously)

  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.

BUILD FAILED in 78ms
22:43:51: Execution finished 'build'.

stone ruin
#

I do that rn

rugged fern
peak depot
#

how can I spawn a Zombie after giving him meta data / how can I prevent the zombie from being affected by canceling spawnEvent

chrome beacon
#

and it saves a lot of time

quaint mantle
#

but if you like that you do you ig

chrome beacon
#

You should instead look in to what's stopping it and why

#

and hook that api if possible

#

otherwise your plugin will become a compatability nightmare

#

as for how to spawn your entity with your metadata use the spawn method that accepts a consumer

peak depot
#

? I want to cancel normal spawn but still allow my custom zombie to be spawned

quaint mantle
# rugged fern why should i use it?

you'll certainly learn more if you figure out how to do everything on your own though it's up to you if that is worth the time you will have to spend that you normally wouldn't (I'm talking a lot of time)

stone ruin
#

why jeff's website is not loading...

chrome beacon
river oracle
stone ruin
#

wtf

#

it's working on another browser

river oracle
#

works for me

peak depot
# chrome beacon then just check if it's your zombie
    @EventHandler
    public void onSpawn(EntitySpawnEvent event) {
        if(!(event.getEntity() instanceof Zombie)) {
            event.setCancelled(true);
            return;
        }
        if(!plugin.getGameHandler().getDeadBodies().contains((Zombie) event.getEntity()))
            event.setCancelled(true);
    }
``` thats my code and still it gets canceled
chrome beacon
#

show us how you're adding it to dead bodies*

#

also don't keep a reference to an entity like that

#

use a uuid

torn shuttle
#

is there a website I can use a sandbox to copy paste things into the spigot resource page?

peak depot
# chrome beacon show us how you're adding it to dead bodies*
@EventHandler
    public void onDeath(PlayerDeathEvent event) {
        Player player = event.getEntity();
        event.setKeepInventory(true);
        player.getInventory().clear();
        for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
            onlinePlayer.hidePlayer(plugin, player);
        }
        event.setDeathMessage(Message.DEATH.getMessage().replace("%player%", player.getName()));
        Zombie zombie = (Zombie) player.getWorld().spawnEntity(player.getLocation(), EntityType.ZOMBIE);
        zombie.setCustomName("§7" + player.getName());
        zombie.setCustomNameVisible(true);
        zombie.setAI(false);
        zombie.setInvulnerable(true);


        if(player.getKiller() != null)
            zombie.setMetadata("killer", new FixedMetadataValue(plugin, player.getKiller().getName()));
        else
            zombie.setMetadata("killer", new FixedMetadataValue(plugin, "none"));
        zombie.setMetadata("deathTime", new FixedMetadataValue(plugin, System.currentTimeMillis()));
        plugin.getGameHandler().getDeadBodies().add(zombie);

    }

chrome beacon
#

also don't use the metadata api

#

It's very prone to memory leaks

peak depot
chrome beacon
#

yeah I told you how

stone ruin
#

Well, here it is :
https://paste.md-5.net/qisaxemavi.gradle.kts

But I still get this error :```
22:54:22: Executing 'build'...

FAILURE: Build failed with an exception.

  • What went wrong:
    Circular dependency between the following tasks:
    :classes
    --- :compileJava
    --- :jar
    +--- :classes ()
    --- :compileJava (
    )

(*) - details omitted (listed previously)

  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.

BUILD FAILED in 126ms
22:54:23: Execution finished 'build'.```

peak depot
chrome beacon
stone ruin
peak depot
#

nvm

chrome beacon
#

this will run code before spawning it

peak depot
#

mb

river oracle
#

hmhm I'm sure this code will never ever ever backfire

    public ItemSpec(@NotNull final ItemSpec other) {
        checkArgument(other != null, "The provided spec must not be null");
        final Class<?> specClass = this.getClass();
        for (final Field field : specClass.getDeclaredFields()) {
            field.setAccessible(true);
            try {
                if (Modifier.isStatic(field.getModifiers())) {
                    continue;
                }

                if (Modifier.isFinal(field.getModifiers())) {
                    final Object otherObject = field.get(other);
                    final Object thisObject = field.get(this);
                    final Method findPutOrAddAll = Arrays.stream(thisObject.getClass().getMethods()).filter(method -> (method.getName().equals("putAll") || method.getName().equals("addAll") && method.getParameterCount() == 1)).findFirst().orElseThrow();
                    findPutOrAddAll.setAccessible(true);
                    findPutOrAddAll.invoke(thisObject, otherObject);
                    findPutOrAddAll.setAccessible(false);
                } else {
                    field.set(this, field.get(other));
                }
                field.setAccessible(false);
            } catch (IllegalAccessException | InvocationTargetException e) {
                throw new RuntimeException(e);
            }
        }
stone ruin
#

@chrome beacon I've got something working, but not like it would

#

If I add another NMS version, it will not be the good remapping ?

tardy delta
#

why setting everything accessible

quiet ice
#

What on earth is happening in there

chrome beacon
#

so 🤷‍♂️

stone ruin
#

but

#

I dunno how to fix this

sterile breach
#

can a player move and be tapped in the same tick?

worthy yarrow
#

Tapped?

stone ruin
sterile breach
#

yes^^

stone ruin
#

or attacked

sterile breach
#

yes

#

my eng is so bad

stone ruin
worthy yarrow
#

I would think so then

deft locust
#

The spawning of mobs is active in the multiverse-core worlds config, in the gamerule, in the server-proprieties spawn-animals true and there is no plugin blocking it. What else can block the spawning of mobs?

eternal oxide
#

spawn-monsters=

slender elbow
#

didn't Mojang delete that in the 1.21.2 snapshots? lol

#

to fix some old bug they just removed the setting that made that bug possible

eternal oxide
#

I guess my properties is very old 🙂

slender elbow
#

very big brained

humble tulip
#

Can i submit prs of me just elaborating in the javadocs?

#

Some of the javadocs are trash

exotic matrix
#

Hello, is there a way to remove the particles from the TOTEM_RESURRECT entity effect ? Is there any specific packets sent only for the animation?

cedar grove
#

Hello
how can I increase the strength of the armor so that it is for example as strong as netherite armor i use itemsadder and mcmobs armor

sullen marlin
stone ruin
#

Hello, how can I get entities in a specific area ?

vestal shuttle
#

does anyone know why server remapped spigot 1.20.6 doesnt have net\minecraft\world\level\Level but the dependencie in the build gradle does?

river oracle
#

You're not remapping your plugin if you're not getting a ClassDefNotFound exceptipn

vestal shuttle
#

how do i do that

vestal shuttle
river oracle
vestal shuttle
#

okay ty

viscid carbon
#
 private final HashMap<UUID, HashSet<Home>> homesMap = new HashMap<>();```
#

whys this bad?

frosty laurel
#

Anyone know how to make a solid block that warps the player when touched?

river oracle
rough ibex
#

what do you mean by touch

#

walk over? punch?

frosty laurel
#

i made a nether portal out of obsidian and purple glass and I want them to be teleported by running into the glass.

cedar saffron
# rough ibex walk over? punch?

yk how some servers got those like "custom portals" and when u touch the water or glass it tps you? basically that hes saying

echo basalt
#

I overengineered the fuck out of those at work

#

In short you want to have some sort of 3d shape / bounding box that the player can intersect

#

When they intersect, you get the destination for that given player and send the player there

#

These destinations can be as simple as just teleporting a player to a location, all the way to sending the player to a different server entirely

#

And you can perform "teleport attempts" either every tick or when the player moves, it's whatever

#

As long as you make the bounding box slightly bigger than the block it should count any "touches" to it

blazing robin
#

hey guys is there any way to detect attack charged creeper?

I tried this :

     if (!(event.getDamager() instanceof Player player)) return;
            ItemStack itemStack = player.getInventory().getItemInMainHand();
            if (itemStack.getType() == Material.AIR) return;
            if (hasEnchantedItem(player)) return;

            if (!(event.getEntity() instanceof LivingEntity victim)) return;

            EntityType entityType = victim.getType();
            if (entityType == EntityType.CREEPER ||  entityType == EntityType.CHARGED_CREEPER  || entityType == EntityType.SLIME) {
System.out.println("Hello World");
            }

but the CHARGED_CREEPER CANNOT FOUND in EntityType

echo basalt
#

creeper.isCharged maybe-?

#

They're still regular creepers, they just have slightly different data

umbral flint
#

How much do you get paid at work

echo basalt
#

enough :)

#

you want to poke my brain or what?

umbral flint
#

More than 20 USD?

#

Also are you updating your Skyblock core anymore

echo basalt
#

bit more

#

SkyblockCore is paused because I have a lot of other stuff going on

#

🤔 why is %player_name% returning ...

umbral flint
echo basalt
#

Not really and it isn't something I'm uh

#

actively thinking about

#

Last thing I was doing on SkyblockCore was:

  • Platform-agnostic menu API
  • Runtime library downloader
umbral flint
#

Ah

echo basalt
#

after that I was gonna do large-scale testing of every possible environment

blazing robin
echo basalt
#

spigot with worldedit, spigot with SWM, spigot+bungee, spigot+velocity, 2spigot + bungee, 2spigot + velocity

#

2spigot + bungee + velocity

#

and that shit just takes time that I don't have

blazing robin
echo basalt
#

💪

umbral flint
#

Is bungee hard to secure properly?

echo basalt
#

Velocity basically encripts your traffic with async encryption

umbral flint
#

I remember I was reading the documentation early in the morning, and I had no idea what it was talking about

echo basalt
#

(public & private keys)

#

Bungee doesn't give a fuck about that and a common exploit is that you can make your own proxy that connects to some exposed backend and spoof shit

#

proper solution is to just.. not expose it to begin with

#

close any backend ports and firewall them to your proxy

echo basalt
#

backend = spigot

#

because the backend has to be offline mode nothing stops you from creating a bungee proxy that's also offline mode

#

and connecting it to some random backend

#

and connecting with a cracked account under the owner's name

umbral flint
#

Is bungee cord just a proxy manager?

echo basalt
#

no it's just a proxy with no encryption

#

Velocity fixes this by encrypting the data in the proxy and decrypting it in the backend

#

If it isn't encrypted properly it ain't your proxy

umbral flint
#

Ok I am confused

#

What does the layout look like with bungee cord

Client -> proxy(bungee) -> spigot

echo basalt
#

Exactly

#

That's how it looks with any proxy

#

Client connects to a proxy, proxy redirects traffic to backend

#

Client <-> proxy <-> (unsecure) backends

umbral flint
#

Oh I understand now

#

Were you talking about how people could directly connect to spigot instead of the proxy then spigot

echo basalt
#

Bungee exploit:
Client -> client's proxy -> your unsecure backend

umbral flint
#

I don't understand what the "client's proxy" is

echo basalt
#

Let's say you run a bungeecord network

umbral flint
#

Yes

echo basalt
#

The bungee service runs on 25565 and your backend spigot server runs on 30000

#

And they're both open ports

umbral flint
#

Yes

echo basalt
#

If I connect straight to 30000 it will kick me because bungeecord is set to true therefor spigot recognizes a handshake instead of just a straight login or wtv

#

And if I try to connect with a cracked account to your proxy it won't let me, because your proxy is running on online-mode

#

(backends are always offline-mode for any proxy to work)

umbral flint
#

I understand the idea

echo basalt
#

Now, I can run my own proxy

#

Set it to offline-mode and login with the cracked account that has your name and uuid

#

and bomb the backend server

umbral flint
#

To prevent that, I should whitelist IPs connecting from my proxy, correct?

echo basalt
#

You should close port 30000 so it's only accessible internally

#

Your proxy can connect to it but the port is closed to the "outside world"

#

would look like this
Client -> Client's proxy -X> backend

umbral flint
#

I understand the attack, but now I don't understand bungee cord

#

Proxies are just a middle man between the client and the server, right?

echo basalt
#

Correct

#

The point of proxies is to basically simulate the concept of switching servers

#

By making the client think it's just switching worlds and stuff

umbral flint
#

So if the proxy is hosted in Europe, how would it connect to a backend in North America, which has a closed port

echo basalt
#

The backend server in north america would export port 30000 only and exclusively if the request comes from your european proxy

umbral flint
#

So that's where IP whitelisting is used

echo basalt
#

And that's what a firewall is for

blazing robin
#

Hey guys is there any way to get all classes which extended specific parent class?

echo basalt
#

Not easily no

#

Sounds like you have a data structure issue

umbral flint
#

Why does your backend have to be in offline mode

blazing robin
echo basalt
#

If it's in online mode it'll try to authenticate requests with mojang's servers

umbral flint
#

Yes, I understand that

#

What's wrong with it

echo basalt
#

And because the proxy effectively emulates the login part when connecting a player to a backend server it isn't really authentic

blazing robin
#

how can I upload my code in here?

echo basalt
#

The player already chose to authenticate when connecting to the proxy, so there's no need to authenticate again and have duplicate sessions

#

So it just.. doesn't

#

?paste

undone axleBOT
blazing robin
echo basalt
#

fine imo no clue why it's static tho

#

Lets you easily comment it out

blazing robin
#

I have lots of my own custom enchants so I wanna register it with annotation

echo basalt
#

Look into jar-file scanning

#

Scan every entry, load the class, look for annotations and do stuff

blazing robin
#

hmm

umbral flint
#

I think I understand everything

echo basalt
#

Back when I worked at Akuma we had a @RuntimeInitialized annotation that automatically found a constructor, injected some variables and created an instance

#

Maybe do something similar idk

umbral flint
#

Thank you illusion

echo basalt
#

hell yeah one less conversation to manage

#

tryna debug code while answering both of you nerds

blazing robin
#

I tried this :

public class CustomRegistryManager {

    private final EnchantRegistry enchantRegistry = ShibaCustomEnchant.getInstance().getEnchantRegistry();

    public CustomRegistryManager() {
        test();
    }

    private void test() {
        Reflections reflections = new Reflections("kr.shibapark.shibacustomenchant.registry.sword");
        Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(CustomEnchantment.class);

        System.out.println(annotated.size());
    }
}
package kr.shibapark.shibacustomenchant.registry.sword;

import kr.shibapark.shibacustomenchant.api.annotation.CustomEnchantment;
import kr.shibapark.shibacustomenchant.api.enchant.AbstractCustomEnchant;
import org.bukkit.event.Event;

@CustomEnchantment
public class EnchantZombie extends AbstractCustomEnchant {
    @Override
    public void action(Event event) {

    }
}

but why that annotated classes return 0 size?

echo basalt
#

¯_(ツ)_/¯

blazing robin
#
[13:33:50 INFO]: [org.reflections.Reflections] Reflections took 6 ms to scan 123 urls, producing 0 keys and 0 values
[13:33:50 INFO]: 0
#

just return like this 😭

echo basalt
#

different classloaders maybe

blazing robin
blazing robin
echo basalt
#

brother look things up you're tryna write a hella complex system with little to no clue on how java works

blazing robin
echo basalt
#

Might be a little too harsh there but I'm not gonna do a super in-depth explanation for a system I feel is stupid

#

You're gonna end up with a black box of magic that automatically loads stuff and only you know how it works

#

And if that's the objective then please enjoy the journey of learning all about classloading but that's not something that the average spigot dev is expected to know how to use, maintain and overall support

potent atlas
#

Question about the built in bukkit conversations. I'm trying to take a string input from a prompt and I need it to suggest a list of responses and tab-complete. How would I go about doing that?

echo basalt
#

I really doubt you can tab-complete without a /

#

Only way I'd see how is by making fake players but I doubt those can have spaces

potent atlas
#

the response will be one word

#

if that helps

echo basalt
#

Then you might be able to with fake players

#

Needs a little NMS

potent atlas
#

seems a bit over complicated XD

echo basalt
#

Has a nice end result but yeah you need a lot of hacky stuff

#

And I really doubt the result is flawless, at most you'd have your own name show up too

potent atlas
#

ok. thanks

halcyon hemlock
#

hello everyone

#

good evening

echo basalt
#

good evening

#

just finished all my work for the week in under 2 hours

#

record time

#

can't wait to be yelled at for not meeting the hour quota

halcyon hemlock
#

did u get into hypixel

echo basalt
#

Currently working for a minecraft-partnered bedrock studio

#

working on their upcoming network

sullen marlin
#

You still had 17 interviews to go anyway

echo basalt
#

did 6 interviews and got my ass rejected

halcyon hemlock
echo basalt
#

yea

halcyon hemlock
#

oo nice

echo basalt
#

network runs on spigot + geyser because it's more stable than any bedrock platform

halcyon hemlock
echo basalt
#

and I'm responsible for writing the wackiest systems

echo basalt
halcyon hemlock
#

frfr

sullen marlin
#

^

halcyon hemlock
#

I knew that 💯

echo basalt
#

broke nitro spotted

halcyon hemlock
#

shh

#

i cba buying nitro

echo basalt
halcyon hemlock
#

would rather get something to eat with that money

echo basalt
#

me welcoming your last 10$

halcyon hemlock
#

😂

echo basalt
#

but yeah after I got rejected from hypixel back in like

#

2022 I think

#

I was in 11th grade computer architecture class when I got the interview email I remember vividly

#

I got depresso expresso for a year

sullen marlin
#

Guess they hired choco instead

halcyon hemlock
#

11th grade??

#

dang

echo basalt
#

just rethinking my life choices

#

was I really that bad to not make it to hypixel

halcyon hemlock
#

im in 11th grade rn

#

hypixel is kinda ass ngl. other than the fact that simon drives a mclaren

echo basalt
#

and for that year I just spent the whole time working on my hypixel game

#

looking at all their dev blogs, every minikloon post

#

learning the tech they use, learning how to work with it

halcyon hemlock
#

😔😔

echo basalt
#

Wrote guides on grafana, minigame development and stuff

#

and then I applied like 5 times and have been ghosted

halcyon hemlock
#

rip broski

#

what lang do u use

#

java or kt

echo basalt
#

and it's been like 2-3 years now so I kinda just gave up on hypixel

#

At work we use kt

#

But outside of work I use java when possible

halcyon hemlock
#

yeah java is kinda peaceful ngl

#

turn off brain and code

sullen marlin
echo basalt
#

yeah ngl it's kinda ass

halcyon hemlock
#

its like mix of python and rust

echo basalt
#

but I've got some wonky career opportunities by listing kotlin as a language I work on

#

working on discord bots with webservers n stuff

halcyon hemlock
#

o

echo basalt
#

It's not THAT bad but it's meh

halcyon hemlock
#

i hate the syntax

#

the features are nice

#

but the syntax is ass

echo basalt
#

so much object spam

wraith delta
#

Q: I use entity.hideName, but it only makes it turn to onHover. is there a way to disable the entity name showing on top?

blazing robin
#

is there any way to detect LivingEntity Vindicator + Raid Captain + Evoker ?

twilit rivet
#

😛

echo basalt
#

fym I pay hella money for my 10$ nitro

twilit rivet
#

I'm being held hostage by a long ass badge 😢

#

md how wdoes one change spigot name 🙏

echo basalt
#

pay 10$

twilit rivet
#

what da flip

echo basalt
#

?changename

undone axleBOT
#

Name changes on the forums are granted to those who have donated to the project. Donations are processed manually and generally take up to 24 hours. The donation widget can be found on the home page of SpigotMC at: https://www.spigotmc.org/.

worthy yarrow
#

I came to the conclusion that I should probably just write out more mechanics and what not then figure what all should be delegated to each module, any other insights perhaps?

twilit rivet
#

or
entity.setCustomName(null);

twilit rivet
#

wawit

echo basalt
#

me when I stick a raid banner on my head with essentials /hat

twilit rivet
#

isn't there another way to get captain

#

shh xD

blazing robin
twilit rivet
#

Oo

twilit rivet
#

check, they should have PatrolLeader NBT iirc

blazing robin
#

why it's in scoreboard Tags? I really can't understand minecraft structure

true dragon
#
val playerMoves = mutableMapOf<ServerPlayer, MutableList<Move>>()
#

why is my list null?

shadow night
#

Most likely because you never create a list

true dragon
#

when i try to set the value it saids its val and can't be changed

shadow night
#

you have to show more code

twilit rivet
#

can't change val

true dragon
twilit rivet
#

for ex ```kt
val playerMoves = mutableMapOf<ServerPlayer, MutableList<Move>>()

val moves = playerMoves.getOrPut(somePlayer) { mutableListOf() }
moves.add(someMove)

shadow night
#

wait why are you using a ServerPlayer instead of a bukkit Player

true dragon
#

oh im dumb, i never added them to the map, sry guys

#

im making some custom things, its working cross server and stuff

true dragon
#

thank you

shadow night
#

"custom" what

twilit rivet
#

it's his own class

#

probably a player settings class or smthmn

shadow night
#

ServerPlayer is a NMS class

true dragon
#

this one is mine, not using their

#

coincidentaly same name

shadow night
#

❓❓

#

Would recommend renaming so you don't confuse more people lol

slate siren
#

Cannot resolve symbol 'me'

whats wrong

import me.clip.placeholderapi.expansion.PlaceholderExpansion;

    <dependency>
        <groupId>me.clip</groupId>
        <artifactId>placeholderapi</artifactId>
        <version>2.11.6</version>
        <scope>provided</scope>
    </dependency>
blazing robin
#

how can I upload a image on here?

blazing robin
#

thanks

lost matrix
lost matrix
blazing robin
lost matrix
slate siren
lost matrix
#

Alright, does it compile at all?

slate siren
#

Cannot resolve symbol 'PlaceholderExpansion'

lost matrix
#

🤨

#

Alright, but does your code compile? Im asking because this could just be your IDE being confused.

lost matrix
slate siren
#

Now I integrated the plugin with placeholderapi, I made a scareboard using simplescore to show the statistics.

#

But it looks like this

#

Kills: %blocksinpvp_kills%

lost matrix
#

Those the scoreboard library support placeholders?

#

Yeah looks like it.

lost matrix
slate siren
vast ledge
#

Have you checked with the papi command?

lost matrix
#

Did you check your placeholder using the placeholderAPI command?

slate siren
#

Actually when I say papi list there is only simplescore, interestingly it has not been downloaded.

#

ecloud download blocksinpvp did not work holder is also correct hm

lost matrix
#

You dont need to download your own placeholders...

#

Just throw your plugin on the server and make sure they are registered

#

Unless you specifically uploaded it to ecloud (which i would not recommend)

slate siren
#

[10:29:39 ERROR]: Ambiguous plugin name PlaceholderAPI' for files plugins\PlaceholderAPI-2.11.6.jar' and plugins\BlocksinPvP.jar' in plugins'

lost matrix
#

Check your logs for exceptions

lost matrix
#

Wait... did you set the name of your plugin in the plugin.yml to PlaceholderAPI??

#

You did that, didnt you

slate siren
#

name: BlocksinPvP
version: 1.0
main: dev.bingulhan.BlocksinPvP
api-version: 1.8
commands:
stats:
description: Shows player statistics

tall dragon
#

should probably add a softdepend

#

to ensure load order

lost matrix
tall dragon
#

rn your plugin might load before placeholderapi

#

deeming it "not present"

slate siren
slate siren
lost matrix
#

First up add a depend or softdepend for PlaceholderAPI

tall dragon
slate siren
#

im adding

#

still same

#
[10:37:03 ERROR]: Ambiguous plugin name `PlaceholderAPI' for files `plugins\PlaceholderAPI-2.11.6.jar' and `plugins\BlocksinPvP.jar' in `plugins'```
lost matrix
#

Open the BlocksinPvP.jar with 7zip or winrar etc and check the plugin.yml

lost matrix
#

I might have a gist

zinc moat
#

how do i hide the enchant list on an item with item meta

lost matrix
lost matrix
zinc moat
#

oh alright thanks

tall dragon
#

does he shade papi or somethn? xd

#

how can his plugin contains papi's plugin.yml

lost matrix
#

I think he builds artifacts and this copies dependent artifacts in the jar

slate siren
lost matrix
slate siren
karmic falcon
#

hi guys, so all my entries have the same name so i had to use the index to differntiate them inorder to set em up on different lines, but now two numbers are seen so how do i make the scoreboard not show scores? any other work around would be fine too

lost matrix
# slate siren If you are talking about creating a plugin jar, I first selected the area where ...

Alright, so that ignores your pom and maven completely. When you use maven you should

  1. Never add any artifacts to your project
  2. Never build artifacts

All dependencies are only added to your pom. You should never have to add jars to your project.
And you should only compile using the maven lifecycles.
(In IntelliJ you can click the maven button on the top right and then run clean once and package afterwards)

rugged fern
#

Hope its quite understandable

karmic falcon
#

not rlly can u please explain 😭

#

like i do ChatColor.White + ...(index)

rugged fern
#

You could just do a chatcolor in every score a different. Then it should work as far as i know

slate siren
rugged fern
#

After die ||||

#

the*

karmic falcon
#

oh

lost matrix
rugged fern
#

If not working Tell me then i will Look for anstehen solution

#

Another

karmic falcon
#

ima go try it, but there aernt enough colors for each bar does like doing ChatColor.White + ChatColor.White + ....

#

like i add it

#

x times

#

and x would be the number

#

would that work?

rugged fern
#

Yeah that could work

karmic falcon
#

alr imma go try it thnx

lost matrix
# slate siren How

Again: You arent using maven properly. You arent using maven at all.
You need to build your jars using the maven lifecycles. Dont build artifacts.
Are you using Intellij?

rugged fern
slate siren
tall dragon
lost matrix
karmic falcon
smoky anchor
halcyon hemlock
#

dont we just LOVE deadlocks

blazing ocean
#

average rust skill issue haver

rugged fern
rugged fern
smoky anchor
slate siren
# lost matrix

Since I was getting a few import errors in Maven, I tried to solve it by choosing Gradle, but there was a problem with two plugins conflicting in Gradle and I switched back to Maven, now the plugin has been loaded without any problems, I will test it

#

Yes, it appears on the scareboard without any problems

rugged fern
smoky anchor
#

The API should be in, I just can't find it :D
Can someone help out here please ?

slate siren
#

@lost matrix Thank you for your help sir 🌹

smoky anchor
#

Or not
I swear this was once in

#

It never got merged ?!
LMAO

#

Same lmao

dapper flower
#

maven is being a bitch, it doesnt see any of the depedencies of my projects, other than invalidating the caches is there anything else i can do?

lost matrix
#

Update the IDE

dapper flower
lost matrix
#

Update in the literal sense

#

Bring it to the latest version

dapper flower
#

it is already to latest

lost matrix
#

Does your project compile?

dapper flower
#

no wait after invalidating caches only one dependency is giving problems and maybe ik why

tall dragon
#

hey @lost matrix smile you know alot about mongo right? im tryna use their time series collection. which requires a timefield. now if i were to add my date directly to the document there would be no problems. but i serialize my class using gson and then parse the document. which does not result in a valid "bson iso date". do you know how i can handle this?

lost matrix
#

Hm, did you implement a custom codec for MongoDB or do you manually convert from Bson to Json

tall dragon
#

this is the gist of what i do

#

i dont have any custom codecs

#

and it works. but like the Document class automatically formats java's Date class correctly to a bson iso date

#

but gson doesnt obviously

lost matrix
#

Myeah, in that case you need to register a TypeAdapter in your Gson instance and make sure the Date is formatted in ISO 8601
So "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

tall dragon
#

yeaa so i tried this

#

this one is valid

#

but my result: 2024-08-24T10:19:31.991Z

#

doesnt add the 00:00 for some reason

#

with your pattern same thing

lost matrix
#

Your result looks correct

#

The timestamp screenshot does not

tall dragon
#

well im looking at it sitting in the collection so

#

mongo disagrees

lost matrix
#

Try a different format

#

Otherwise you could simply throw your date directly into your document after calling Document.parse(json); you simply
add doc.put("date", date); its a bit of a workaround but should work fine.

tall dragon
#

yea. wanted to avoid that. but i guess if i cant find another way that should work.

lost matrix
#

You could create a Bson document, add a date to it, and then deserialize it to Json.
This should show you the representation needed for your dates.

candid galleon
#

is there a Sson format?

lost matrix
tall dragon
#

so its correct

#

but i need to add the date stuff?

#

ig

lost matrix
#

Hm, yeah you probably had {"date": "2024-08-24T10:19:31.991Z"}

tall dragon
lost matrix
#

The date field contains an object. Pretty sure that what you are doing is gonna mess things up.

tall dragon
#

it did

#

how the hell should i do this then feelsdeadman

lost matrix
#

Implement a JsonSerializer/JsonDeserializer and register it in your Gson instance for Date.class

#
public class DateSerializer implements JsonSerializer<Date>, JsonDeserializer<Date> {
  
  private static final SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");

  @Override
  public JsonElement serialize(Date date, Type typeOfSrc, JsonSerializationContext context) {
    JsonObject dateObject = new JsonObject();
    dateObject.addProperty("$date", isoFormat.format(date));
    return dateObject;
  }

  @Override
  public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) {
    JsonObject dateObject = json.getAsJsonObject();
    try {
      return isoFormat.parse(dateObject.get("$date").getAsString());
    } catch (ParseException e) {
      throw new RuntimeException(e);
    }
  }
}
silent slate
#

Anyone got experience with multiverse api? Im trying to import it in the pom.xml file and it wont work

tall dragon
#

wow you did that faster than me

#

impressive

lost matrix
silent slate
# lost matrix Show your pom
            <groupId>com.onarandombox.multiverseCore</groupId> <!-- Don't forget to replace this -->
            <artifactId>Multiverse-Core</artifactId> <!-- Replace this as well -->
            <version>4.3.1</version> <!-- This too -->
            <scope>provided</scope>
        </dependency>```
#

i replaced it just like the docs told me to

lost matrix
#

Did you add the repo?

silent slate
#

ye

lost matrix
#

Show your pom

silent slate
#

?paste

undone axleBOT
silent slate
lost matrix
#

Ay, nice

tall dragon
#

surely when deserializing mongo returns that same string right

silent slate
#

anything found?

lost matrix
silent slate
#

no dependency information available

#

also no javadocs for this, very bad documentation on their end

lost matrix
silent slate
#

it says just lookup the newest version on their spigot page and use that

#

As for the version, use the latest release version based on their respective Bukkit site.

#

where did u find that info?

lost matrix
#

Their repo

silent slate
#

wdum?

lost matrix
#

🤨

silent slate
#

whats that website

#

from the picture

lost matrix
silent slate
#

oh ok

lost matrix
#

Yeah their documentation is horrible

silent slate
#

just tryna rename a world 😿

lost matrix
#

What do you need multiverse for then? Or is it a world that was loaded by multiverse and you are trying to rename it on the fly

silent slate
#

every week i want to rename the current farming world to "farming_world_old_(number)" and then paste a schematic in the newly generated farming world

tall dragon
#

@lost matrix turns out i didnt need the isodate after all.. xD when reading it just returns epoch millis. which works with inserting as well.

#

themoreuknow i guess

lost matrix
#

lol

quaint mantle
tall dragon
#

default

#

with a background

quaint mantle
#

wait thats possible? good to know ig

#

thx

tall dragon
#

yea, Settings -> appearance -> ui options

lost matrix
silent slate
#

thanks

hybrid turret
#

When using Bukkit.getSchedular().runTaskTimer(...) how do i cancel the task on condition? Or do I just have to init a new BukkitRunnable()

chrome beacon
#

?scheduling

undone axleBOT
chrome beacon
#

^^

hybrid turret
#

oh thanks

slate siren
#

Is it possible to pretend to kill a player without killing them? I mean fakedeath

drowsy helm
#

?xy

undone axleBOT
rugged fern
slate siren
slate siren
#

What I want to do is to have the player go into spectator mode after he dies, and teleport to spawn after 3 seconds.

slate siren
rugged fern
#

What?

slate siren
rugged fern
#

Wait a sec

slate siren
#

ok

rugged fern
#

u could do it like this: ``` @EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
if (event.getEntityType() == EntityType.PLAYER) {
Player player = (Player) event.getEntity();

        if (player.getHealth() - event.getFinalDamage() <= 0) {
            // Cancel the damage event to prevent player death
            event.setCancelled(true);

            //What u want to do if the player "died"
        }
    }
}

}```

#

@slate siren

slate siren
rugged fern
#

Alright, tell me if it works

slate siren
#

It actually kills the player and the death screen is also visible

#

Thats code

eternal oxide
#

you didn;t register the listener then

rugged fern
#

and if u do the entitydamageevent?

rugged fern
slate siren
#

i did

torn basalt
#

hello i build spigot with build tool for elder guardian effect

#

how can i import this to libraries?

eternal oxide
#

?maven

undone axleBOT
torn basalt
#

i added but its still doesnt work

rugged fern
slate siren
#

ty

#

for helping

rugged fern
#

Alright, no problem

quaint mantle
#

how can I send a player from server 1 to server 2, I have a Velocity Proxy

eternal oxide
#

?pmc on bungee

hybrid trellis
#

I get "com.mongodb.MongoInterruptedException: Interrupted waiting for lock"?

@Override
    public void onLoad() {
        this.mongoDB = new MongoDB();
        System.out.println("[CorePlugin] Loading MongoDB!");
    }

// This causes it
@EventHandler
    public void onPlayerJoin(PlayerJoinEvent event)
    {
        Player player = event.getPlayer();
        event.setJoinMessage(ChatColor.BOLD + player.getDisplayName() + ChatColor.RESET + ChatColor.YELLOW + " has joined !");

        if (this.mongoDB.players.find(eq("uuid", player.getUniqueId().toString())).first() == null) {
            this.mongoDB.players.insertOne(new PlayerPojo(player.getUniqueId().toString(), "", (float) 0));
            System.out.println("No database entry for " + player.getName());
        }
    }
river oracle
#

Why are you running database queries syncrhonously

quaint mantle
river oracle
#

Genuine question

eternal oxide
river oracle
#

You're borderline killing your server every time a player joins

hybrid trellis
#

How would I do it then 😭

eternal oxide
#

No DB access on the main thread

hybrid trellis
#

Oh

river oracle
#

Or don't load player data in PlayerJoinEvent

#

That's borderline psychotic

hybrid trellis
#

This was mainly for testing purposes

#

I get you, any tips?

river oracle
eternal oxide
#

async player pre login shoudl have an UUID

river oracle
#

Use this event it supplies a uuid and is run asyncrhonous

eternal oxide
#

Else doing it in the Login/Join event every player on teh server gets lag anytime anyone joins

stone ruin
#

Hello, how can I get an item's attack speed ? Here is the code I already got :```java
for(Material material : Material.values()) {
ItemType itemType = material.asItemType();

if(itemType == null) continue;
Multimap<Attribute, AttributeModifier> defaultAttributeModifiers = itemType.getDefaultAttributeModifiers(EquipmentSlot.HAND);
Collection<AttributeModifier> attackSpeedModifiers = defaultAttributeModifiers.get(Attribute.GENERIC_ATTACK_SPEED);

if(attackSpeedModifiers.isEmpty()) continue;

double attackSpeed = 0;

for (AttributeModifier attackSpeedModifier : attackSpeedModifiers) {
    attackSpeed += attackSpeedModifier.getAmount();
}

System.out.println(material);
System.out.println(attackSpeed);

ITEMS_ATTACK_SPEED.put(material, attackSpeed);

}```

But, well, for a diamond sword, I get this values instead of diamond sword's attack speed (which is 1.6) : DIAMOND_SWORD -2.4000000953674316

How can I fix that ?
Also, is my code to get the time in ticks for the attack speed, based on the attack speed, correct ?java public static int getTicksFor(@NotNull Double attackSpeed) { return (int) ((1 / attackSpeed) * 20); }

Thanks in advance

river oracle
#

If you use AsyncPlayerPreLogin

#

Don't wrap the call in a complete able future

#

You have 30s before the player is timed out that's more than enough

hybrid trellis
#

And I wouldn't use onAsyncPlayerPreLogin?

river oracle
#

I miss wrote

dawn flower
#

does clone() clone arrays properly?

hybrid trellis
# river oracle You use that one
@EventHandler
    public void onAsyncPlayerPreLoginEvent(@NotNull AsyncPlayerPreLoginEvent event) {
        String name = event.getName();
        InetAddress ipAddress = event.getAddress();
        UUID uniqueId = event.getUniqueId();
        boolean transferred = event.isOnlineMode();
        
        // Your logic here
    }
```it's complaining about the transferred
river oracle
#

🤷‍♂️

tardy delta
#

why starting db already in onload

hybrid trellis
tame wolf
tardy delta
#

shallow clone

humble tulip
#

By default technically it does because default attack speed is 4

#

But what the dia sword does is actually have a a tag that affects the attack speed by -2.4

#

If you have armor that speeds up your attack speed, the diamond sword will still slow it down by 2.4 but overall your attack speed will be faster

stone ruin
#

oh okay

#

so i've did double attackSpeed = 4;

#

and then I loop through the default attribute modifiers

#

And, looks like it's good

humble tulip
#

Well maybe u should get the default from the player itself

stone ruin
#
[14:50:57 INFO]: DIAMOND_HOE
[14:50:57 INFO]: 4.0
[14:50:57 INFO]: NETHERITE_SWORD
[14:50:57 INFO]: 1.5999999046325684
[14:50:57 INFO]: NETHERITE_SHOVEL
[14:50:57 INFO]: 1.0
[14:50:57 INFO]: NETHERITE_PICKAXE
[14:50:57 INFO]: 1.2000000476837158
[14:50:57 INFO]: NETHERITE_AXE
[14:50:57 INFO]: 1.0
[14:50:57 INFO]: NETHERITE_HOE
[14:50:57 INFO]: 4.0
[14:50:57 INFO]: MACE
[14:50:57 INFO]: 0.5999999046325684
[14:50:57 INFO]: TRIDENT
[14:50:57 INFO]: 1.0999999046325684```
stone ruin
humble tulip
#

Nope

stone ruin
#

equipement slots ?

humble tulip
#

Player#getAttribute

stone ruin
#

oh yeah

humble tulip
#

And then all equipment slots

stone ruin
#

that'll be consuming ?

humble tulip
#

But you need to check that the attribute is active for the equipment slot that it's in

stone ruin
#

yeah 😔

humble tulip
#

How often are you calling this code?

stone ruin
#

I basically want him to attack through grass

humble tulip
#

ah

#

Yeah you can check

#

It's not that bad tbh

#

Modern hardware is pretty fast!

stone ruin
#

perfect then

#

I'll do cache if necessary

humble tulip
#

Yep you can listen to an armorequipevent

stone ruin
humble tulip
#

From mfnalex

stone ruin
#

and then put that in a list

stone ruin
halcyon hemlock
#

GUYS I DID IT

#

@blazing ocean cmere

blazing ocean
#

"null server" is crazy

stone ruin
halcyon hemlock
stone ruin
halcyon hemlock
stone ruin
halcyon hemlock
#

in rust

stone ruin
#

gg

halcyon hemlock
#

ofc

stone ruin
halcyon hemlock
#

now just need to load chunks from db and send them

#

then i got actual world loading

stone ruin
#

do it in assembly

halcyon hemlock
stone ruin
halcyon hemlock
#

haskell fr

stone ruin
halcyon hemlock
#

chunks are so fucking stupid

#

i hate them

stone ruin
#

x)

halcyon hemlock
#

with every cell of my body

stone ruin
#

(minecraft is bad)

halcyon hemlock
#

actually

#

the inconsistencies

#

garbage conventions

stone ruin
stone ruin
halcyon hemlock
stone ruin
river oracle
#

Spotted Leaf has made some of the best patches for paper hands down

halcyon hemlock
river oracle
#

It requires packing bytes into ints and longs to save memory etc etc

twin venture
#

Hi iam working on reaweakning system for my plugin , so when a player reach (final rank) he can run a command , that ill reset his rank to default ..

also ranks are kills dependant so when i get 5 kills i change rank to the rank that require 5 kills to unlock .. etc

#

iam just not sure if i should reset kills to 0 too

halcyon hemlock
#

block entities have packed xz

hybrid trellis
wraith dragon
#

Is it even possible to add custom items to creative menu or it needs NMS hackery?

twin venture
#

cause the ranks depend on kills so if the kills still the same , there will be a glitchj

drowsy helm
twin venture
#

it will give him the same rank he had if he kill another player ..

wraith dragon
stone ruin
#

Hello, how can I check if a block is a short grass, a tall grass, a sea grass, a tall sea grass, a flower or a crop ? Is there a method for that ?

halcyon hemlock
stone ruin
#

(ik = I kill ? for the joke ?)

remote swallow
#

ik is i know

stone ruin
#

ik

stone ruin
stone ruin
drowsy helm
#

It is

stone ruin
#

for tags, there is minecraft:flowers, minecraft:replaceable and minecraft:crops

#

but, I forgot to mention that I want to include sugar cane and kelps 😅

drowsy helm
#

Worse comes to worst just use an immutable set of materials

#

There arent that many

stone ruin
#

I want it to be maintainable

drowsy helm
#

Theres a tag for flowers, tall flowers and crops

#

That should cover all bases right

stone ruin
stone ruin
#

but it's better if it covers everything

drowsy helm
#

They’re not crops?

stone ruin
#

they are not in the crops tag

#

sugar cane has an age, but not kelp

remote swallow
#

last i remember kelp had an age

stone ruin
#

if they are a kelp, not a kelp_plant

viscid carbon
#

What class would yall put this under? java public static boolean isInt(String s) { try { Integer.parseInt(s); } catch (NumberFormatException nfe) { return false; } return true; }

#

MiscUtil? xD

#

or just put it in the main class

chrome beacon
#

are you making a Spigot plugin?

viscid carbon
#

yes

river oracle
#

there might be some name conflits but IntelliJ will start prioritizing yours first after a little while

chrome beacon
remote swallow
river oracle
#

I always forgot about Guava

#

My beloved

chrome beacon
#

Spigot ships with with Guava

viscid carbon
chrome beacon
#

I assume you want to use the int

#

if it is one

#

That method returns an Integer which is nullable

#

null if it isn't an int and the int value if it is one

viscid carbon
#

Gotcha, Thanks

paper viper
chrome beacon
#

Do you want the api to change colors?

paper viper
#

Yeah

#

and certain recievers

blazing ocean
#

how raydan called it

eternal oxide
#

glow is quite easy. Not sure why you would need a lib for it

paper viper
#

its somehow not

chrome beacon
#

Spigot has api for both teams and glow

#

Problem is if you want specific people to see the glow

paper viper
#

Yeah

#

Then i need to send team packets

#

since glow packets have no color tag

eternal oxide
#

yeah then you need packets

paper viper
#

and the lib uses reflection hell to do it

#

💀

eternal oxide
#

team packets

shadow night
blazing ocean
#

smh

chrome beacon
#

The scoreboard api can actually handle different colors for different people

#

Problem is compatibility

paper viper
#

Wait wdym

chrome beacon
#

Spigot allows for per player scoreboards

#

and teams are bound to that scoreboard

eternal oxide
#

?paste

undone axleBOT
eternal oxide
#

just added a cycling glow color to all creatures

paper viper
#

I see, thank you

viscid carbon
#

@eternal oxide keeping it simple

#

❤️

paper viper
#

But are you able to allow only certain people to see the rainbow effect?

eternal oxide
#

you could but not as simple

paper viper
#

O

chrome beacon
#

as I said you just make a scoreboard for that specific player

paper viper
#

Yeah

#

Ty guys

#

So I'm guessing it would be

  1. create a temp color scoreboard if it doesn't exist based on the player scoreboard. Set the color
  2. add the glow player and the reciever (watcher) player to the team
  3. set the reciever glow to true
#

Only thing tho is that stuff like dropped items which i want glow might be hard tho

viscid carbon
#

It's an entity so it shouldnt be that hard i dont think? or does Dropped items fall under a different type

chrome beacon
#

you just set the item to glowing and add it to the team

paper viper
#

Oh damn I didn’t know you could add Item to team

#

Nvm it works then ty!

lunar current
#

how to ban someone with spigot api?

humble tulip
#

player.ban?

shadow night
#

Isn't there a banlist which you have to use to ban the player

river oracle
lunar current
#

its so weird

river oracle
#

firstly its imperative that you grab a player object

lunar current
#

It has like 4 thousands arguments

river oracle
#

once you have that you must use the ban method

lunar current
#

then?

river oracle
#

its 4 arguments

lunar current
#

yeah but its weird, like waht is an instant

shadow night
#

A class

humble tulip
#

An instant in time

#

Like in the future

river oracle
#

if you don't want to use an Instant use Data or Duration

humble tulip
#

When the ban expires

chrome beacon
humble tulip
#

Olivo we look the same

lunar current
#

ohh

#

So its

chrome beacon
#

You can use duration if you want to set the length of the ban

#

or just a date

lunar current
#

addBan(player, timeItends, then what is s1

#

What confuses me is the name of the variable tbh

#

s and s1

chrome beacon
#

You should download the javadoc to your project

shadow night
#

Javadoc has more descriptive names I think

chrome beacon
#

^^

#

Add the javadoc

river oracle
#

download sources

#

and add the javadoc jar

#

or if for some reason you don't feel like it

#

literally

lunar current
#

ITs a weirdly configured project

#

i'll just look at the online javadoc

#

but thanks

lunar current
viscid carbon
#

You can add javadocs into the IDE o.o

chrome beacon
#

yes

lunar current
#

ik but i spent too much time configuring this

chrome beacon
lunar current
#

yea

viscid carbon
#

Welp, doing that now. Yes @chrome beacon

chrome beacon
#

Open the maven/gradle tab on the right

#

Then click this

#

and download doc/sources

lunar current
#

download source and configuration?

#

no way that's a thing

#

maven is goated

shadow night
#

That's IJ, not maven or gradle

lunar current
#

k

chrome beacon
#

Well IJ is using maven/gradle to find and download sources

lunar current
#

i'm still used to eclipse

shadow night
chrome beacon
#

Depends on what you mean by majority

#

Show it to the user? then sure you're in their text editor?

shadow night
#

by "a major part" I just mean a lot

#

It starts the process, it finds the files, and lets the user see those

chrome beacon
#

It tells maven/gradle to go fetch docs/source

#

reads and show them

shadow night
#

Well, if not IJ you would neither have sources nor decompiled code right in your IDE soo

#

Or, well, no

#

I said it wrong

#

other IDEs do have it

chrome beacon
#

You don't have to use an IDE

#

you can just browse the files yourself

shadow night
#

Yeah

lunar current
shadow night
#

I just meant IJ makes it easier to find

lunar current
#

imagine java without an ide

#

🫣

shadow night
lunar current
#

omg..

viscid carbon
#

I use to use NotePad++

chrome beacon
shadow night
shadow night
#

Omg the cp lover is back

quaint mantle
#

Guys, in a premium resource, would spigot replace this placeholder?

private static final String LICENSED_TO_USER_ID = "%%__USER__%%";
shadow night
viscid carbon
#

wtf is cp

shadow night
quaint mantle
# remote swallow it should

Then it's not working, I asked a friend of mine to download the resource (which he has purcharsed) and the placeholder is not being replaced

lunar current
quaint mantle
kind hatch
viscid carbon
#

Connection pooling?

quaint mantle
#

CyberPunk

lunar current
shadow night
#

💀

viscid carbon
#

never played it lol

quaint mantle
#

WHY DO YOU STILL HAVE THOSE?

shadow night
kind hatch
#

Internet never forgets

shadow night
viscid carbon
#

Yo he keeps in a folders like karmadev

#

inside a memes folder

shadow night
#

Pov: @quaint mantle when he sees cp

viscid carbon
#

I think ima start doing this xD

shadow night
viscid carbon
#

no dont even raydan

#

/slap

lunar current
#

why did this server turned into rp

shadow night
quaint mantle
viscid carbon
#

mother

quaint mantle
#

It's a good game

kind hatch
shadow night
lunar current
shadow night
viscid carbon
#

Paper more like shittier

shadow night
lunar current
#

paper is good tho

shadow night
quaint mantle
kind hatch
lunar current
#

you got it

quaint mantle