#help-development

1 messages ยท Page 2179 of 1

crude cobalt
#

Okay

iron glade
#

sadly no

humble tulip
#

then it's not provided

#

so u have to put it in your jar

iron glade
#

I just needed the FileUtils.copyInputStreamToFile from it

#

300kb seems a bit overkill just for that

humble tulip
#

u can see how spigot saves the config.yml

terse raven
#

maybe look for a integrated java alternative

humble tulip
#

or just copy that method

terse raven
#
File file = //...
try(OutputStream outputStream = new FileOutputStream(file)){
    IOUtils.copy(inputStream, outputStream);
} catch (FileNotFoundException e) {
    // handle exception here
} catch (IOException e) {
    // handle exception here
}```
#

does that work?

iron glade
#

I'll try it out

#

so I don't have to use the apache one

terse raven
#

yea

humble tulip
#

JavaPlugin#saveResource

terse raven
#

nvm

humble tulip
#

copy that method

terse raven
#
private static void copyInputStreamToFile(InputStream inputStream, File file)
            throws IOException {

        // append = false
        try (FileOutputStream outputStream = new FileOutputStream(file, false)) {
            int read;
            byte[] bytes = new byte[DEFAULT_BUFFER_SIZE];
            while ((read = inputStream.read(bytes)) != -1) {
                outputStream.write(bytes, 0, read);
            }
        }
}```
iron glade
#

What do I use as resource path?

quaint mantle
#

does anybody know how can I check if the player wear this armor, I want to check when player wears a armor

terse raven
iron glade
#

default buffer size = 4096?

humble tulip
#

spigot uses 1024

#

idk what default is

quaint mantle
terse raven
#

or when he equips it?

quaint mantle
#

whats the event for that

peak depot
#

someone with github knowlege wanna work on a bungeecord system together?

quaint mantle
crisp steeple
iron glade
iron glade
terse raven
#

do the same thing

#

Ctrl + c, Ctrl +v yk

#

the easy kind of coding

#

if you can understand it in "C++, C#, Python, Java, JS, HTML and CSS", then you can probably understand it here aswell

tender shard
#

including a proper maven artifact

tender shard
terse raven
#

nice!

#

@quaint mantle

quaint mantle
#

ok

crude cobalt
#

I try use PotionEffectType but here there isn't WATER effect

tender shard
#

simply check if the list of PotionEffects is empty

tender shard
#

haven't tested

public static boolean isWaterBottle(ItemStack item) {
        if(item.getType() != Material.POTION) return false;
        PotionMeta meta = (PotionMeta) item.getItemMeta();
        return meta.getBasePotionData().getType() == PotionType.WATER;
    }
kindred valley
#

hello, im making a simple arena system. If player request and another player accepts, i want both to teleport somewhere but somehow even if its entering the condition its not executing teleport method

kindred valley
# kindred valley hello, im making a simple arena system. If player request and another player acc...
@EventHandler
    public void onMessage(AsyncPlayerChatEvent e){
        Player p = e.getPlayer();
        if(Arena.playersWhoSentMessages.contains(p)) {
            if(e.getMessage().equalsIgnoreCase("yes")) {
                for(Player c: Arena.playerWhoInvited) {
                    c.sendMessage("accepted");
                    c.teleport(loc);
                    p.teleport(loc);
                }
            }else if(e.getMessage().equalsIgnoreCase("no")) {
                for(Player c: Arena.playerWhoInvited) {
                    c.sendMessage("nonaccepted");
                }
            }
        }
    }
tardy delta
#

public fields, static abuse, not using early returns x)

kindred valley
#

wdym

#

I know scheduling but didnt get the problem here

crude cobalt
kindred valley
#
BukkitScheduler scheduler = MedievalPlugin.plugin.getServer().getScheduler();
                    scheduler.runTask(MedievalPlugin.plugin, ()-> {
                        c.teleport(loc);
                        p.teleport(loc);
                    });
#

like this?

#

ah

#

i got it thank you, im getting the pain unknowledges topics about threading

cosmic light
#

Is there a way to lock the Player from moving to a different Hotbar slot?

tender shard
cosmic light
#

okkk but can i set the slot also?

#

so i lock it to the right slot

#

like the slot the player has selected

#

oh nvm

#

i think i found that

#

alright, thanks!

uneven fiber
#

hey how do you send a custom screen to a player?

#

Yes

quaint mantle
#

looking for someone to do a project with me
its hypixel skyblock dungeons remake anyone wanna do it?

humble tulip
#

lol

#

that allot of work

ivory sleet
#

ye

#

like a colossal amount of work

uneven fiber
#

So I have this method that if they hit something ten times then they win

#

^

#

and I want to also send them a victory! screen

quaint mantle
humble tulip
#

like a title

#

player.sendTitle

uneven fiber
humble tulip
#

btw u are cerating a new crystalfight object

#

so the hits will be 0

quaint mantle
#

?paste

undone axleBOT
quaint mantle
limber owl
#

generates a room from schematic file

#

@quaint mantle

quaint mantle
#

oh

#

how tho?

limber owl
#

and adds chests, bats, items, and essences?

quaint mantle
#

ohh

#

the world edit file? shematic

#

thing?

limber owl
#

yes

humble tulip
#

it pastes it

terse raven
#

you got Skyblock source ? blushed

subtle crescent
#

hey y'all I'm new to plugins but have experience with java and I hope this is the right place to ask my question
I'm trying to make a simple plugin that prevents enderpearls from despawning in a loaded area when the player is dead
How would I find and override the code for the enderpearl tick event?
tyty

tender shard
terse raven
#

maybe just listen for the ender pearl teleporting and delay it until the player respawns

tender shard
#

ooh

#

I thought it was about enderpealrs laying on the floor

terse raven
#

i think that's what he meant

#

i was just stupid

#

lmao

tender shard
#

Item has a method "setUnlimitedLifetime(true)"

#

when you call that, the item will never despawn automatically

subtle crescent
#

I can't attach an image but I found a screenshot of what might be the paper code for the enderpearl tick event
and it basically checks first if the player is dead and if it is, it discards, else it ticks the enderpearl
It would be ideal if I could just comment out the first part

terse raven
#

or send me it in dms

#

and I'ma post it

tender shard
#

no you cannot simply comment out NMS or paper code lol

subtle crescent
tender shard
#

as said you can simply set the EnderPearl to "unlimited lifetime"

subtle crescent
#

i know paper is a fork of spigot

terse raven
#

should probably ask in the paper discord

subtle crescent
#

no i mean its for a spigot server

#

this is just the only img i found

subtle crescent
#

this is intended for ender pearls floating in bubble columns
they sit there and I don't want them to despawn when players die

subtle crescent
subtle crescent
subtle crescent
#

they do in singleplayer and on our spigot server

reef lagoon
#

do I have to save stuff to config or can I make another file (for example, "playerdata") I don't want my config spammed with tons of information

thorny dawn
#

guys how do i pass the plugin parameter in a runnable if i register it from another class (other than the main one)

ivory sleet
#

?di

undone axleBOT
humble tulip
#

What kinds of data Wihy?

crimson scarab
#

how long does a spectral arrow last?

daring lark
#

how could icheck if block taht platyer placed is sign?

reef lagoon
#

Well I am trying to link discord account with minecraft account, so the player executes
"/link" and it gives them 10 random characters and when they do !link in discord the accounts are linked
I have the link command, and i am trying to save the 10 random characters

humble tulip
#

so it's a one time thing?

reef lagoon
#

pretty much

humble tulip
#

Then u dont need to store it

echo basalt
#

a redis server is fine

humble tulip
#

save it in memory

#

give them a few mins to do !link

#

and remove it after that

reef lagoon
#

alr

#

ty

humble tulip
#

like a map would be fine

quaint mantle
#

do you ppl know how can I make it so that when I place the armor on the armor stand it still changes its colors

limber owl
#

get the meta, change color, apply the meta

#

he was asking about changing it in a hand or inventory

quaint mantle
limber owl
#

in memory

quaint mantle
limber owl
#

yes

limber owl
quaint mantle
#

ok

limber owl
#

and please, try to google things if you don't know, and mainly challenge to do it yourself without asking others

quaint mantle
#

and do you know how can I get
EntityType item = EntityType.ARMOR_STAND;
Meta

#

bcz I cant find it on google

humble tulip
#

omg

#

im getting a stroke trying to setup nms

granite owl
#

does the InventoryView.close() method invoke the InventoryCloseEvent?

humble tulip
#

i know player.closeInventory does

#

maybe that does as well

ivory sleet
#

InventoryView::close? is that a thing

#

oh yeah

#

nvm

#

but it just delegates Player::closeInventory

#

so yes

#

it does fire (the event)

granite owl
#

basically im wrapping my inventory with a wrapper class to detect custom interfaces, however its not reload safe, so i want to close those interfaces on a reload

#

like this

#
public static void onReload(main plugin)
    {
        for (Player p : Bukkit.getOnlinePlayers())
        {
            if (p.getOpenInventory() != null)
            {
                if (p.getOpenInventory().getTopInventory() != null)
                {
                    if (p.getOpenInventory().getTopInventory().getHolder() instanceof InventoryViewer)
                    {
                        p.getOpenInventory().close();
                    }
                }
            }
        }
    }
#

but i want it to fire the CloseInventoryEvent

granite owl
humble tulip
#

why not p.closeInventory?

granite owl
#

ill try

ivory sleet
#

InventoryView::close runs Player::closeInventory

#

so no difference there

humble tulip
#

oh ok

#

I need to build a remapped spigot.jar?

iron glade
#

What would you guys say is a good way to abduct a player into an UFO? repeating scheduler increasing his y value and spawning particles around him or smth like that?

harsh totem
granite owl
ivory sleet
#

InventoryCloseEvent will get fired if you run closeInventory tho

iron glade
granite owl
#

yea but apparently not onDisable()

humble tulip
#

The levitation potion effect

#

it makes players float up

iron glade
#

there is something like that?

#

wtf

humble tulip
#

what version are u using?

ivory sleet
#

oh yeah ofc not onDisable

iron glade
#

I didn't play minecraft for a few years xd

iron glade
granite owl
humble tulip
#

yeah

granite owl
#

i suppose

ivory sleet
#

well sort of

humble tulip
#

You can do listener.onInventoryClose

iron glade
#

damn they added a lot of stuff while I was not playing the gae

harsh totem
granite owl
ivory sleet
#

ye

granite owl
humble tulip
#

why dont u listen to the plugindisableevent and close all the invetories there

ivory sleet
#

or just close all inventories in onDisable

granite owl
#

i just expected the CloseInventoryEvent to fire

#

because thats where i serialize the inventory

ivory sleet
#

btw timinator I did look into the code

#

its a bit strange as the code implies the event should fire

granite owl
humble tulip
granite owl
#

only when the player is offline

#

whose inventory i inspect

humble tulip
#

ohh

granite owl
#

if hes online i apply it to him

crisp steeple
ivory sleet
#

may I ask

granite owl
#
@Override
    public void onDisable()
    {
        ViewInventoryCommand.onReload(this);
    }

    @EventHandler
    public void onInventoryClose(InventoryCloseEvent event)
    {
        ViewInventoryCommand.onInventoryClose(this, event.getInventory());
    }
``` those are the two methods in the plugin main class
iron glade
humble tulip
#

not sure

granite owl
#
public static void onInventoryClose(main plugin, Inventory inv)
    {
        Bukkit.broadcastMessage("TEST");
        
        if (inv.getHolder() instanceof InventoryViewer)
        {
            InventoryViewer inventory = (InventoryViewer) inv.getHolder();
            
            if (Bukkit.getPlayer(inventory.getHolder()) != null)
            {
                saveOnlineInventory(plugin, inventory);
            }
            else
            {
                saveOfflineInventory(plugin, inventory);
            }
        }
    }
    
    public static void onReload(main plugin)
    {
        for (Player p : Bukkit.getOnlinePlayers())
        {
            if (p.getOpenInventory() != null)
            {
                if (p.getOpenInventory().getTopInventory() != null)
                {
                    if (p.getOpenInventory().getTopInventory().getHolder() instanceof InventoryViewer)
                    {
                        p.closeInventory();
                    }
                }
            }
        }
    }
``` and these are my static methods to perform
granite owl
humble tulip
#

maybe cancel if the x or z changes but not y

#

public static void ๐Ÿ™‚

ivory sleet
#

oh nvm tim

#

so thing is

granite owl
harsh totem
#

How do I check if a pillager has banner?
(not if he's a PatrolLeader)

humble tulip
#

check if it contains banner

granite owl
#

saveOnlineInventory applies the inv to the player if hes online and well saveOfflineInventory serializes it to his file

ivory sleet
#

the variable in JavaPlugin enabled gets set to false just before the onDisable() call

harsh totem
ivory sleet
#

so yeah that stops any listeners from getting called

#

since

harsh totem
#

oh bruh

#

nvm

ivory sleet
#
//from spigot

        for (RegisteredListener registration : listeners) {
            if (!registration.getPlugin().isEnabled()) {
                continue;
            }
harsh totem
#

it didnt work before

granite owl
#

so ill just do this line then ```java
onInventoryClose(plugin, p.getOpenInventory().getTopInventory());

harsh totem
#

@humble tulip but in what slot should the banner be

ivory sleet
#

ye

granite owl
#

aight teye

ivory sleet
#

well point is, no event handler will run during onDisable

#

:3

humble tulip
granite owl
#

yea thats good to know haha

#

not a problem but well

humble tulip
#

print slot and material

granite owl
#

good to know so i can adjust the code

iron glade
granite owl
#

and i dont see whats wrong with public static void methods which have only one designated purpose

#

@humble tulip

fierce salmon
#

How can I turn lines in console into strings?

ivory sleet
#

to some extent, event listeners are more procedural than object oriented

harsh totem
ivory sleet
#

so static in that case might be fine shrug

humble tulip
#

does the pillager have a banner?

harsh totem
#

he does

#

I did this:
System.out.println(Arrays.toString(p.getInventory().getContents()));

granite owl
ivory sleet
#

mye

#

they're callbacks

humble tulip
#

check getEquiptment

granite owl
#

most*

ivory sleet
#

nah

granite owl
#

some aint cancellable

#

or manipulateable

ivory sleet
#

they're still callbacks

limber owl
harsh totem
granite owl
#

by definition yea

humble tulip
#

are you sure?

granite owl
#

u wont believe how many ppl told me "theyre not callbacks noob"

#

xD

harsh totem
humble tulip
#

i'm gonna check

limber owl
# harsh totem what???

use bukkit logger instead of printl because its safety better wand wont throw warnings

ivory sleet
#

do people still say that?

granite owl
#

well i mean its not a crucifiable thing to not know the definition but yea

ivory sleet
granite owl
#

but yea ofc the cancellable idea makes them cb's ofc

#

lots of ofcs

#

xD

ivory sleet
#

ye ofc

granite owl
#

although one might argue that my coding style might be bad for writing less generic code and more one purpose methods

#

xD

harsh totem
humble tulip
harsh totem
#

because it doesn't have any armor

#

the banner isn't in any armor slot

granite owl
ivory sleet
#

yes

#

in terms of enterprise

#

no one would ever write that way

granite owl
#

ik

ivory sleet
#

but its a mere spigot plugin, so I mean

#

wont really affect you

granite owl
#

^^

ivory sleet
#

you dont do any unit tests, nor are you gonna scale your plugin to the moon

granite owl
#

i mean im aware of that fact

#

and i do use almost only instancing when i write my own interfaces or plugin systems

#

but here i dont

harsh totem
#

@ivory sleet do you know how to check if a pillager wears a banner?

ivory sleet
#

yeah

harsh totem
#

its not in his inventory or armor slots

granite owl
#

need to dm u cause the code is too long

#

want? @ivory sleet ๐Ÿ˜›

#

oh yea and now with the manual call the inventory gets serialized on reload properly

humble tulip
#

@harsh totem

harsh totem
#

wtf

#

maybe it's because the pillager is dead?

#

it prints null for me

humble tulip
#

nope i was right clicking it

ivory sleet
#

^should be contained in its inventory

#

iirc from nms

humble tulip
#

it's not in the inventory

harsh totem
ivory sleet
#

it is

humble tulip
#

it's in the armor contents

ivory sleet
#

thats a part of its inventory tho

humble tulip
#

well yes but no

harsh totem
humble tulip
#

when u check the inventory it's all null

harsh totem
#

tf

humble tulip
#

this is what i printed

harsh totem
#

I'll try again

humble tulip
#

and my results

#

i guess pillagers have an inventory of 5 slots

harsh totem
#
            System.out.println(Arrays.toString(p.getEquipment().getArmorContents()));```
`[ItemStack{AIR x 1}, ItemStack{AIR x 1}, ItemStack{AIR x 1}, ItemStack{AIR x 1}]`
#

@humble tulip

humble tulip
#

what version?

harsh totem
#

it must be because the pillager is dead

harsh totem
humble tulip
#

i'm using the same

#

check on entitydamagebyentityevent

#

before it dies

harsh totem
#

I want this in entityDeathEvent

humble tulip
#

i guess run your code if its not cancelled and health - damage is < 0

#

just see if the contents are null there

#

then we know if its death or not

harsh totem
#

@humble tulip Can you send your right click event?

granite owl
#

btw one question about this, @ivory sleet ive softcoded everything, using my self written low level ini parser for the frontend and bukkits serializer for the backend. that being like okay or would you suggest something else?

humble tulip
#

the pic was the entire event

harsh totem
#

yes but i meant the text

humble tulip
#

?paste

undone axleBOT
humble tulip
harsh totem
#

the server crashed ;-;

humble tulip
#

wat

#

no way my code crashed your server

harsh totem
#

I don't think it's related

#

it crashed for another reason

humble tulip
#

mojang down?

harsh totem
#

idk

#

tf is this

granite owl
#

invalid session id

#

restart ur launcher

#

it happens when the auth server thinks ur no longer online

#

mojang

#

its to prevent stealing session IDs

final monolith
#

hey guys how i can create custom player nametags with packets? can someone explain me step-by-step of which packets i need to use?

harsh totem
#

ok

#

@humble tulip One of the armor content is the banner

#

in your event

#

in my it is not

#

it must be because its dead

#

idk how to fix it

humble tulip
#

does the right click event work?

harsh totem
#

yes

humble tulip
#

right well use entitydamagebyentityevent

#

entity is not dead yet but u can tell if it will be

harsh totem
#

ok

granite beacon
#

how can I get a fake nms entity through it's PacketType.Play.Server.SPAWN_ENTITY

ivory sleet
#

Really hard to judge with no code x)

harsh totem
#

@humble tulip It prints null ;-;

        if (event.getEntityType() == EntityType.PILLAGER && event.getDamager() instanceof Player && event.getEntity().isDead()){
            Pillager p = (Pillager) event.getEntity();
            System.out.println(Arrays.toString(p.getEquipment().getArmorContents()));```
#

oh wait

humble tulip
#

dont check if the entity is dead

harsh totem
#

nvm

#

it was your plugin that printed this

#

your event*

harsh totem
humble tulip
#

yes

harsh totem
#

how do I get its health

granite beacon
# ivory sleet elaborate

I have a plugin sending fake spawn nms armorstands to the player.
I want to turn the packets into a EntityArmorstand and see it's data such as name, helmet item, etc.

granite owl
ivory sleet
#

its a bit hard to get the "fake entity" as if you use the spawn entity event directly, there's no entity for it server sided by default, so you'll have to keep track of it manually

granite owl
#

almost everything works now but for whatever reason the armor slots dont get applied properly

#

is equipping armor treated special?

ivory sleet
#

Poons

#

altho I do strongly recommend sth like HolographicDisplays api

fierce salmon
#

How can I turn every line from console into a string

ivory sleet
#

assuming you're doing holograms

thin delta
#

is there anyone who has lots of NMS experience with custom world generation?

granite beacon
ivory sleet
#

ah okay

#

but well

#

you'll have to create your own object that keeps track of necessary data

granite beacon
#

But their api has no docs and is a bit stinky

ivory sleet
#

it has docs tho

granite beacon
#

Nope

#

Their docs is a single example repo with the ability to spawn a modeled mob in

ivory sleet
#

untrue

granite beacon
#

Show docs

fierce salmon
granite beacon
ivory sleet
#

oh

granite beacon
#

(since I said I'm not using holograms)

ivory sleet
#

yeah, thought you were still alluding to hd but my bad

granite beacon
#

nah all good

ivory sleet
#

yeah model engine is a bit notoriously known for its lack of docs

granite beacon
#

did you ever finish that code to launch a mob to a block so I could see how you kind of made it better

ivory sleet
#

uh

#

wait

granite beacon
ivory sleet
#

I think I found sth

granite beacon
#

Yee that's the demo

ivory sleet
#

ah

#

okay

granite beacon
#

It shows you how to spawn one in

#

but not localize it to a player

#

do mobs have something called a "RangeManager" btw?

ivory sleet
#

uh

#

idk anything that goes by that name

granite beacon
#

something to tell when a player can see a mob

#

or is close enough to render the mob

golden kelp
#

how can i generate a net.kyori.adventure.text.Component from a string.

ivory sleet
#

Poons, afaik nope

#

I mean there's the reach distance

#

but thats probably not what you want as thats global

#

and iirc client sided

golden kelp
#

not a method

#

different params i mean

ivory sleet
#

ye ofc

granite beacon
#

What's the PlayerChunkMap.EntityTracker

ivory sleet
#

.text("example")

granite beacon
#

Because I think that's what he was talking about when it comes to RangeManager

humble tulip
#

?paste

golden kelp
undone axleBOT
humble tulip
golden kelp
humble tulip
#

that's how they fixed it

granite beacon
#

sorry for all the pings btw, I keep forgetting that discord autopings on all replies

harsh totem
#

why does this not work? it's supposed to increase the bad omen level if the level the player has is between 5-10 but it does nothing.

                    if (effect != null && effect.getAmplifier() >= 5 && effect.getAmplifier() < 10){
                        PotionEffect potion = new PotionEffect(PotionEffectType.BAD_OMEN, Integer.MAX_VALUE, effect.getAmplifier() + 1);
                        player.addPotionEffect(potion);
                    }```
humble tulip
#

print the amplifier

#

is it actually between 5 and 10?

harsh totem
#

It's V

#

V is 5

humble tulip
#

is your code actually running?

ivory sleet
#

@granite beacon give it a try tho iirc EntityTracker::removeEntity is protected so might need to use method handles there

#

then idk if that actually fixes it

harsh totem
ivory sleet
#

but worth a try

golden kelp
ivory sleet
fading lake
# granite beacon What's the `PlayerChunkMap.EntityTracker`

It's an NMS tracker which tells players to load an entity, when to do it, when to get rid of it and if the player has loaded it before. It's used on multiplayer to sync mob changes, like when players throw a fishing hook

tiny bit more to it but thats the basics

harsh totem
#

not 1

granite beacon
harsh totem
#

5 is 4

humble tulip
#

haha yeah

granite beacon
#

DM

harsh totem
# humble tulip haha yeah

ok so now I know that all the if statements are ok. but this doesn't give me the potion effect and I get no errors in console.

                        player.addPotionEffect(potion);```
humble tulip
#

print something inside the ifs

#

and see if it prints

harsh totem
#

I printed the if statement

#

its true

harsh totem
#

I printed this to the console

fallow violet
#

How can i get the max health of an entity? LivingEntity#GetMaxHealth is deprecated

fallow violet
#

wdym?

harsh totem
#

mob.getAttribute(Attribute.GENERIC_MAX_HEALTH)

fallow violet
#

thx

harsh totem
#
                        potion.apply(player);```
The player gets the effect but the amplifier is without the `+ 1`.
is this because you can't get this effect in vanila? I can get it in commands tho
#

The amplifier of effect is 4

#

so the one of potion should be 5

#

but it's still 4

#

Yes it gives me the potion but the amplifier doesn't go up from 4

#

why is that and can I fix it?

humble tulip
#

Try to see if u can with /effect

harsh totem
#

I can

#

I already checked

humble tulip
#

Hardcode the multiolier as 6 and try

harsh totem
#

I did

#

still doesn;t go up from 4

#

every amplifier which is more than 4 becomes 4 when its applied

limber owl
#

what's the problem

harsh totem
#

in PotionEffect

limber owl
#

why?

winged anvil
#

does metadata on blocks persist through restarts?

harsh totem
# limber owl why?

idk it becomes 4 when I apply the effect if the amplifier is more than 4

winged anvil
#

its just not funny

limber owl
limber owl
undone axleBOT
#

Spoonfeed a newbie for a day and they'll come back with more questions. Teach them to find their own answers and you'll both be better off: you won't get stuck answering the easy questions and they'll be much more productive than before.

harsh totem
#
                        potion.apply(player);```
winged anvil
#

yes or no question

#

answer

harsh totem
#

effect.getAmplifier() is 5

harsh totem
limber owl
limber owl
winged anvil
#

no

#

answer

harsh totem
#

why does it matter when

limber owl
harsh totem
winged anvil
#

word

limber owl
harsh totem
#

?paste

undone axleBOT
harsh totem
#

it reached the potion line

limber owl
#

hasbanner function?

#
if (effect != null && effect.getAmplifier() >= 4 && effect.getAmplifier() < 9) { }
harsh totem
humble tulip
#

Does it return true?

harsh totem
harsh totem
#

I checked

limber owl
#

I see, it's just that

harsh totem
#

The plugin does reach these lines

limber owl
#

yes

#

if you want to add potion effect on player

#

you have to do it through #addPotionEffect()

#

on player class

#

this player.addPotionEffect(potion); instead of potion.apply(player);

harsh totem
#

I know that when you add enchantment to an item you need to input if it should ignore the vanila limits. does PotionEffect has something like it?

limber owl
#

those are flags if I remember right

#

but I dont think potioneffect class have it

#

public PotionEffect(@NotNull
PotionEffectType type,
int duration,
int amplifier,
boolean ambient,
boolean particles,
boolean icon)

harsh totem
limber owl
#

so it does not go above 4?

harsh totem
#

yes

limber owl
#

version is 1.18 right

#

or higher

#

@harsh totem

harsh totem
#

1.18.2

limber owl
#

and you want manual giving of bad omen effect, why?

lilac dagger
#

Is there a better way to verify if a string is a long?

harsh totem
harsh totem
limber owl
#

@twilit roost disable psychics from the arrow, that disables the gravity I think

limber owl
twilit roost
#

thx
I just now checked the console and saw that it does Log
soo it prob works ๐Ÿ˜„

harsh totem
#

the vanilla command

limber owl
#

only commands blocks

#

if I'm right

#

but spigot allows it

#
@EventHandler
    public void Limit(EntityDamageByEntityEvent event) {
        if (event.getEntityType() == EntityType.PILLAGER && event.getDamager() instanceof Player) {
            Pillager p = (Pillager) event.getEntity();
            if (p.getHealth() - event.getDamage() <= 0) {
                if (!hasBanner(p))
                    return;
                Player player = (Player) event.getDamager();
                PotionEffect effect = player.getPotionEffect(PotionEffectType.BAD_OMEN);
                Bukkit.getLogger().log(Level.INFO, String.valueOf(effect));
                if (effect != null && effect.getAmplifier() >= 4 && effect.getAmplifier() < 9) {
                    PotionEffect potion = new PotionEffect(PotionEffectType.BAD_OMEN, 120000, 8);
                    player.addPotionEffect(potion);
                }
            }
        }
    }

@harsh totem try this

harsh totem
#

why 8

limber owl
#

so we can test it

#

you can do any int higher than 5

harsh totem
#

oh I already checked it with level 6 and 7.
And I printed the effect it was BAD_OMEN:117528t-x4

limber owl
#
                Bukkit.getLogger().log(Level.INFO, String.valueOf(effect.getAmplifier()));
                if (effect != null && effect.getAmplifier() >= 4 && effect.getAmplifier() < 9) {
                    PotionEffect potion = new PotionEffect(PotionEffectType.BAD_OMEN, 120000, 8);
                    player.addPotionEffect(potion);
                    Bukkit.getLogger().log(Level.INFO, String.valueOf(effect.getAmplifier()));
                }
#

this?

harsh totem
#

I already logged these

limber owl
#

sorry, do this after adding potion to player

#

Bukkit.getLogger().log(Level.INFO, String.valueOf(potion.getAmplifier()));

#

okay

#

so

#

it doesn't work?

harsh totem
# limber owl it doesn't work?

the only difference is that the effect is level 4 and the potion is above this level.
the potion is what it should be but I can't give it correctly because the amplifier becomes 4

limber owl
#

ooooh

#

i know why

#

you need to first remove the other bad omen from player

harsh totem
#

oh

limber owl
#

player.removePotionEffect(PotionEffectType.BAD_OMEN);

harsh totem
#

i'll check it

limber owl
#
    @EventHandler
    public void Limit(EntityDamageByEntityEvent event) {
        if (event.getEntityType() == EntityType.PILLAGER && event.getDamager() instanceof Player) {
            Pillager p = (Pillager) event.getEntity();
            if (p.getHealth() - event.getDamage() <= 0) {
                if (!hasBanner(p))
                    return;
                Player player = (Player) event.getDamager();
                PotionEffect effect = player.getPotionEffect(PotionEffectType.BAD_OMEN);
                Bukkit.getLogger().log(Level.INFO, String.valueOf(effect.getAmplifier()));
                if (effect != null && effect.getAmplifier() >= 4 && effect.getAmplifier() < 9) {
                    player.removePotionEffect(PotionEffectType.BAD_OMEN);
                    PotionEffect potion = new PotionEffect(PotionEffectType.BAD_OMEN, 120000, 8);
                    player.addPotionEffect(potion);
                    Bukkit.getLogger().log(Level.INFO, String.valueOf(potion.getAmplifier()));
                }
            }
        }
    }

you can get rid of those loggers

#

but use this function

#
effect.getAmplifier()+1);
rain wagon
#

how do i make a code looking like that box?

limber owl
#

do by ```

rain wagon
#

thanks

zealous osprey
#

"```" infront and behind your text

limber owl
#

``` name of language
code

#

and then ```

#

on the end

harsh totem
#

@limber owl the problem was not fixed

#

;-;

rain wagon
#
variables:
    {%player%.random} = false
    
options:

every 10 seconds:
    loop all players:
    if {%loop-player%.random} = true:
    chance of 50%
    give loop-player minecraft:dirt
    chance of 50%
    give loop-player minecraft:oak_sapling
    wait 1 tick
 
 
command /test:
    trigger:
    if {%player%.random} = true:
    set {%player%.random} to false
    message "&c&lDISABLED &dYou will no longer receive a random items every 10 seconds" to player
    else:    set {%player%.random} to true
    message "&a&lENABLED &dYou will now receive a random item every 10 seconds" to player
#

whats wrong

#

it does not work

limber owl
#

?

limber owl
limber owl
#

and why are u just asking why doesn't it work

rain wagon
#

its meant to every 10 sec give a player a 50% chance og getting one of those blocks

limber owl
#

okay, that's not code

#

we can't help

rain wagon
#

wdym

limber owl
#

you need to code it

#

to work

rain wagon
#

bruh wdym

harsh totem
#

this is not code

limber owl
#

what do you want from us presenting a text file?

#

we won't code it for you

rain wagon
#

bro i asked what's wrong

harsh totem
rain wagon
#

bruh the Hoi4 community better then this

rain wagon
tender shard
ebon gate
#

That's not Java Spigot Code, thats seems to be SkriptMC code. Which completly different

tender shard
#

noone here uses skript

rain wagon
#

well this was the only minecraft discord i knew

ebon gate
#

So you aren't on good server

#

find support on SkriptMC discord server

crisp steeple
#

still donโ€™t understand why people use skript

#

far more confusing than java

lilac dagger
#

i guess because it doesn't have to be compiled

patent horizon
#
                if (amt == 1) send(player, "fishing.catch.amt_1",
                        Placeholder.component("catch", catches.get(0).displayName()),
                        durTag
                );``` would anyone know why it's sending a list? i'm only passing one value
ebon gate
#

because nobody care about modeling

lilac dagger
#

interpreted languages are beautiful

harsh totem
#

the effect is given with amplification of 4 when it should be above it. the effect has the right amplifier but when it's given the amplifier becomes 4.

                        player.removePotionEffect(PotionEffectType.BAD_OMEN);
                        potion.apply(player);```
#

why cant it go above 4

limber owl
#

server you're running it on?

#

@harsh totem

thorny dawn
limber owl
#

imagine having opinions ๐Ÿคก

ivory sleet
lilac dagger
#

java is definitely superior to kotlin but kotlin does make things easier

thorny dawn
#

nah

lilac dagger
thorny dawn
#

java creates so much boilerplate

harsh totem
limber owl
limber owl
lilac dagger
#

it may be a boilerplated language but at least is safer than most languages

#

you can't really make a mistake

#

in javascript and c++ on the other hand

limber owl
#

like, idk how but send the spigot version and the build and stuff like this, i think if you doi /version it sends it in the chat

patent horizon
limber owl
crisp steeple
#

id say kotlin is better for making something like an client or forge mod while java would be better for a server or spigot plugin

limber owl
crisp steeple
#

personally i do modding in kotlin but plugin development in java

patent horizon
#

there is no getName method

#

only displayName

limber owl
limber owl
patent horizon
#

it's a kyori thing

harsh totem
#

Maybe I should execute the vanilla command through console

patent horizon
#

for localization

limber owl
#

then the displayname is the object class name probably

#

ask there

harsh totem
#

I get level above 4

#

its because the vanilla limit

#

speed has no limit

#

(besides 255)

twilit roost
#

How to make Velocity follow function(curve) sin/cos

#

?

limber owl
reef lagoon
harsh totem
limber owl
harsh totem
limber owl
harsh totem
#

ok thx anyways

humble tulip
#

And see if it follows a parabolic trajectory

twilit roost
#

oh imma post updated code

    @EventHandler
    public void Check(ProjectileHitEvent e){
        if(e.getEntity() instanceof Projectile){
            if(ShipCannon.shotBalls.containsKey(e.getEntity())){
                ArmorStand as = (ArmorStand) e.getEntity().getPassenger();
                ShipCannon.onCollision(as);
                ShipCannon.shotBalls.remove(e.getEntity());
            }
        }
    }
    public static void AddForce(){
        ShipCannon.shotBalls.forEach((projectile, vector) -> {
            projectile.setVelocity(vector.subtract(new Vector(0,0.2,0)));
        });
    }
#

this works ( kindof )

humble tulip
#

Why are you modifying the velocity though?

#

With an initial velocity, minecrafts gravity will do the rest

twilit roost
#

when i shoot it using "commands"
i give it a velocity
but after a while it would stop at place and start falling straight down

so I disabled gravity and im setting the velocity manually

#

Also is it possible to make arrow/projectile invisible?

humble tulip
#

Give it more horizontal velocity then

twilit roost
#

well it still suddenly starts dropping
doesn't look that great

humble tulip
#

That's weird

#

Can you show what it looks like?

echo basalt
#

I mean

#

you can do it by removing the entity on the client-side but attached entities will look funky

twilit roost
humble tulip
#

Sure

crude loom
#

How can I know when a packet is sent?
for exmple, Entity Equipment

echo basalt
#

either inject the pipeline or use protocollib which injects for you

crude loom
#

I'm a bit new to packets haha, what does 'inject' mean?

echo basalt
#

think of a tube

#

with a door in the middle

#

you can see what goes through the tube, add into it, maybe remove some

harsh totem
#

why does this give it with an amplifier of 4?

                        player.removePotionEffect(PotionEffectType.BAD_OMEN);
                        player.addPotionEffect(potion);```
tender shard
harsh totem
tender shard
#

for me it works fine

#

if I set it to 8, it gives me level 9

#

etc

tender shard
crude cobalt
#

Is there some event to keep track of a player's first login?

tender shard
#

PlayerJoinEvent? then check if Player#hasPlayedBefore

harsh totem
clever musk
#

Is there an easy way to convert a bukkit GameEvent to an NMS GameEvent? I'm trying to get the game event id in IntList that is send in ClientboundUpdateTagsPacket.

harsh totem
next zinc
#

So I want to be able to detect if a mob in the nether is killed, however after doing some debugging it appears that the entity isn't being detected in the nether

@EventHandler
    public void onNetherDeath(EntityDeathEvent event) {
        
        if(event.getEntity().getWorld().equals("world_nether")) {
            if(event.getEntity().getKiller() instanceof Player) {
                Player player = event.getEntity().getKiller();
                player.sendMessage("TEST");
                double random = Math.random();
                if(random <= 0.25D) {
                    player.sendMessage(ChatColor.DARK_RED + "The " + ChatColor.GOLD + "Fire Knight " + ChatColor.DARK_RED + "has risen!");
                    fKnight.createFireKnight(player.getLocation());
                }
                
            }
        }

Not sure if I used getWorld() wrong or if its something else

harsh totem
#

nobody knows

tender shard
#

as said, it works for me. and I asked you to check the output of /data and what amplifier it says there

crisp steeple
harsh totem
crisp steeple
#

probably need to use getName

harsh totem
#

not a world

next zinc
#

ahhh

harsh totem
next zinc
#

that makes sense

#

appreciate it

crisp steeple
#

uhh

#

idk, maybe the max that potion can go to is 4?

#

havenโ€™t really played later versions of mc much

harsh totem
#

I can do /effect give YTG667 minecraft:bad_omen 9999 100 true

crisp steeple
#

well if 8 goes to 4, maybe 12 would go to 8?

#

worth a try

tender shard
#

is there no event for when a crossbow gets "charged" with an arrow?

harsh totem
crisp steeple
#

thatโ€™s odd

#

iโ€™m not sure why thatโ€™s happening honestly

harsh totem
crisp steeple
#

no

harsh totem
#

@crisp steeple so nobody knows what's the problem.
I guess i'll execute the vanilla command through console

crisp steeple
#

not really sure what else the problem would be ยฏ_(ใƒ„)_/ยฏ

tender shard
#

idk why you keep refusing to check the output of the /data command

mystic vale
#

Is there a maven world edit repository?

#

I'm trying to put it, but it gives me an error

tardy delta
#

yes there is, check their wiki page

mystic vale
#

Look, it's not going

tardy delta
#

did maven relaod?

mystic vale
#

yeah

tender shard
#

what's the output when you do mvn clean package -U?

#

and what repository did you even add?

tender shard
#

show the full log

mystic vale
tender shard
#

click the uppermost thing here and then copy paste the full log

#

also as I said - what repository did you use in the first place?

mystic vale
tender shard
#

I give up

#

you don't even try to answer my questions

#

have a nice day

mystic vale
undone axleBOT
tender shard
#

that's probably the easiest solution

mystic vale
#

I don't know if that's it

harsh totem
tender shard
tender shard
harsh totem
tender shard
tender shard
#

you haven't added the WorldEdit repository at all. You also haven't added any repository for GriefPrevention

harsh totem
mystic vale
tender shard
#

add to repositories:

    <repository>
        <id>sk89q-repo</id>
        <url>https://maven.enginehub.org/repo/</url>
    </repository>
tender shard
harsh totem
#

@tender shard

tender shard
#

the "ActiveEffects" part

hexed hatch
#

data shows literally everything

tender shard
#

yeah

echo basalt
#

I recognize those numbers. see you soon

harsh totem
# tender shard

there is some kind of error that makes it send only a part of the data

#

EncoderException: String too big (was 337460 bytes encoded, max 262144)

#

what should I do

tender shard
#

do it from console

#

then just ctrl+f the whole text for "Multiplier"

#

er

#

Amplifier

#

i mean

harsh totem
#

"bad_omen" isn't in any part of this

#

it is not in the data but I have the effect ingame

#

;-;

tender shard
harsh totem
#

this is the whole text

#

[20:58:08] [Server thread/INFO]: YTG667 has the following entity data: {Brain: {memories: {}}, HurtByTimestamp: 3910268, bukkit: {newLevel: 0, newExp: 0, newTotalExp: 0, firstPlayed: 1653510788530L, lastKnownName: "YTG667", keepLevel: 0b, expToDrop: 0, lastPlayed: 1654117088838L}, SleepTimer: 0s, Attributes: [{Base: 20.0d, Name: "minecraft:generic.max_health"}, {Base: 0.10000000149011612d, Name: "minecraft:generic.movement_speed"}, {Base: 0.0d, Name: "minecraft:generic.armor"}, {Base: 1.0d, Modifiers: [{Amount: 768.0d, Operation: 0, UUID: [I; 1686990948, 1784696665, -1967209790, 980277161], Name: "effect.minecraft.strength 255"}], Name: "minecraft:generic.attack_damage"}, {Base: 0.0d, Name: "minecraft:generic.knockback_resistance"}, {Base: 4.0d, Name: "minecraft:generic.attack_speed"}, {Base: 0.0d, Name: "minecraft:generic.armor_toughness"}], Invulnerable: 0b, FallFlying: 0b, PortalCooldown: 0, AbsorptionAmount: 0.0f, abilities: {invulnerable: 1b, mayfly: 1b, instabuild: 1b, walkSpeed:

#

There is no bad omen here

tender shard
#

that can't be the full text, it's not even valid json, look at the end

kindred valley
#

how can i change the all values on a code

tender shard
#

whut

kindred valley
tender shard
#

no idea what's wrong with your server then

#

the output should look like this

dusk flicker
#

looks like multicraft or some panel

harsh totem
#

maybe it cuts the string because it's too long

kindred valley
tender shard
tender shard
tender shard
# harsh totem

your hosting panel shows only part of the message. open latest.log and you should see the full message

kindred valley
naive drift
#

[23:12:06 INFO]: Named entity EntitySkeleton['Slileton'/2830704, uuid='a1f384d9-3571-444a-96f2-c0019db2aabb', l='ServerLevel[svet]', x=-9855.80, y=78.00, z=-2340.97, cpos=[-616, -147], tl=335, v=true] died: Slileton was slain by krashpack

its possible to remove this from console ?

chrome beacon
#

There's a setting in the spigot.yml iirc

#

Also this is the wrong channel

naive drift
#

Why wrong channel, i looked for filter console or something, but kay

naive drift
humble tulip
#

Why does that show in tje console

naive drift
#

oh i see

#

log-named-deaths: false
Thanks

humble tulip
#

Can't you override the toString method

lethal coral
#

can you play sounds on an async thread

ivory sleet
#

technically useless but yes you can

lethal coral
#

how is it useless

ivory sleet
#

because assume you send a sound packet on another thread

#

then its going to get synchronized and queued to a specific pipeline which is still consumed on the server thread

#

like unless you're injecting yourself into netty, its gonna be pretty useless and the performance is gonna be worse

lethal coral
#

the only reason I'm asking is because I'm putting it in something else that needs to be ran asynchronously at the same time

ivory sleet
#

uh sure

#

like its possible

lethal coral
#

because when I use the sendBlockChange method with paper the whole server freezes

#

๐Ÿ˜‚

ivory sleet
#

just not that useful if you're doing it for the sake of performance

#

mye

lethal coral
#

I mean

#

I'm sure it's better than freezing the server with sendBlockChange

#

do you know why that freezes the server?

ivory sleet
#

didnt know it froze the server

lethal coral
#

or actually that's the wrong method I'm sorry

#

it's the method to show a break stage

ivory sleet
#

might wanna deploy an issue at their issue tracker then

lethal coral
#

sendBlockDamage method

#

is what I was referring to

ivory sleet
#

๐Ÿคก

slate mortar
#

god, it's insane how much i hate java rn

limber owl
#

why

slate mortar
#

nothing works ffs

limber owl
#

how

slate mortar
#

most likely i'm just too dumb to use jitpack properly, idk

#

because it always gives me empty artifacts, i suppose it can't find them or smt, idk

harsh totem
#

everything I found says that this should work but when the amplifier is above 4 it becomes 4 when given

                        player.addPotionEffect(potion);```
I have no idea what to do
#

I searched everywhere

slate mortar
#

i'm pretty sure bad omen V is the max value

limber owl
harsh totem
#

and there are other plugin that give it with higher level than 5

slate mortar
#

it doesnt do anything tho

harsh totem
slate mortar
#

technically 5 is the max

harsh totem
#

it does

#

the bad omen effect is the amount of raid levels

winged anvil
#

?paste

undone axleBOT
slate mortar
#

that's wrong

harsh totem
#

that is not

slate mortar
#

the amount of waves is based on the world difficulty

#

easy is 3 waves, normal 5, hard 7

harsh totem
slate mortar
#

tf? no. i always play on normal in my worlds, and always get bad omen 5

#

in that case hard wouldn't be ANY difference

limber owl
#

he's right

#

/effect give @p bad_omen 99999 255

#

works

harsh totem
slate mortar
#

sure it does

#

you can give yourself sharpness 255 as well

#

or idk what the max lvl there is

limber owl
#

but sharpness is enchantment

harsh totem
slate mortar
#

oh wait

#

true wait, i mixed smt there

slate mortar
winged anvil
#

https://paste.md-5.net/mapatagezi.cs I'm trying to create a veinminer ability. Here I want to go through each face of a block and check if the block of that face is of the same type. If it is , add the location of the new block to a list and check all the faces on the new block and so on and so forth. However with this code if I mine a tree with only 6 logs, I'm getting 16 locations.

harsh totem
harsh totem
winged anvil
harsh totem
#

after that they have no effect on the tool

slate mortar
#

In Java Edition, Bad Omen's potency determines the chance for illagers to be equipped with enchanted weapons when the player triggers a raid by entering a certain radius around a bed that a villager has claimed. If the raid results in player victory, the Hero of the Village's potency equals the Bad Omen's potency (capped at level 5). Bad Omen levels past the first also give a single extra raid wave, given the difficulty level. For example with Bad Omen II-V in Easy difficulty has four waves instead of three, Normal difficulty has six waves instead of five, and Hard difficulty has eight waves instead of seven.
enjoy reading

harsh totem
terse raven
winged anvil
#

cause its repeating locations

harsh totem
terse raven
#

probably add a hard cap aswell

slate mortar
#

one wave

crimson scarab
#

how would i go about the true damage dealt to the player

#

inclusive of armour + effects

terse raven
#

Bad omen ain't a enchantment

slate mortar
#

ofc it isnt

harsh totem
slate mortar
terse raven
#

weren't you guys talking about enchantments? I am confused now

slate mortar
terse raven
#

true dat

harsh totem
terse raven
#

what's your problem

harsh totem
#

I can get PotionEffect variable with amplifier of any number but when I give this to a player the amplifier becomes 4

#

It happens when the amplifier is above 4

terse raven
#

could you show me where you define the "effect" variable

harsh totem
#
                        PotionEffect potion = new PotionEffect(PotionEffectType.BAD_OMEN, 120000, effect.getAmplifier() + 1);
                        player.addPotionEffect(potion);```
#

I outprinted potion and it can get to a higher amplifier than 4

#

but when given it cant

terse raven
#

oh so it still counts up to like 8 on the server

#

but doesn't show up client side?

harsh totem
terse raven
#

lemme quickly start my pc

harsh totem
#

the potion variable has amplifier of 8 (for example)
I give the effect to a player and the player gets it with amplifier of 4

#

if the amplifier i try to give is above 4 this happens

terse raven
#

but in the next iteration, does it get server sided set back to 4 aswell?

harsh totem
terse raven
#

could you send more of your code

terse raven
harsh totem
# terse raven kinda hard to debug without any context
    public void Limit(EntityDamageByEntityEvent event){
        if (event.getEntityType() == EntityType.PILLAGER && event.getDamager() instanceof Player){
            Pillager p = (Pillager) event.getEntity();
            if (p.getHealth() - event.getDamage() <= 0){
                if (hasBanner(p)){
                    Player player = (Player) event.getDamager();
                    PotionEffect effect = player.getPotionEffect(PotionEffectType.BAD_OMEN);
                    if (effect != null && effect.getAmplifier() >= 4 && effect.getAmplifier() < 9){
                        player.removePotionEffect(PotionEffectType.BAD_OMEN);
                        PotionEffect potion = new PotionEffect(PotionEffectType.BAD_OMEN, 120000, effect.getAmplifier() + 1);
                        Bukkit.getLogger().log(Level.INFO, String.valueOf(effect));
                        Bukkit.getLogger().log(Level.INFO, String.valueOf(potion));

                    }
                }
            }
        }
    }```
terse raven
#

maybe try adding the potion effect without removing it?

#

and are you sure you are not just misreading the roman numerals?

#

IV = 4

#

V = 5

#

VI = 6

harsh totem
harsh totem
terse raven
#

no

#

you should get V

harsh totem
#

i meant 4 in the code

#

which is 5

terse raven
#

yea and 5 is V

harsh totem
#

the amplifier starts with 0

#

level 1 is 0

terse raven
#

yea

#

I, II, III, IV, V, VI

#

in that order

harsh totem
#

so I have V. I should get VI and I get V

terse raven
#

if you have "4 in the code"

#

you should get V

#

could you screenshare?

harsh totem
tender shard
#

I thought screensharing is disabled here

dusk flicker
#

it is

small lynx
harsh totem
#

it's for a friend

dusk flicker
#

ew capitalized method name

#

?conventions

undone axleBOT
tender shard
humble tulip
#

@harsh totem u still haven't gotten that to work?

harsh totem
#

thanks for asking

#

Mjanko helped me

humble tulip
#

What was the problem?

winged anvil
#

just found this out today and i love it so damn much but in intellij IDEA you can use //region <description> and //endregion to create custom folds like in C#

humble tulip
#

Wat

grave mason
#
WorldServer worldServer = ((CraftWorld)p.getWorld()).getHandle();

at compiling error: cannot access org.bukkit.RegionAccessor at (CraftWorld)

tender shard
#

use java17 or later to compile

grave mason
#

got already this

tender shard
#

what do you have set there?