#help-development

1 messages · Page 1835 of 1

quaint mantle
#

Meme of film Fast and furious:

Here is Brazil!!!

tall dragon
#

spigot api could be translated :D

quaint mantle
#

search on youtube: aqui é o brasil velozes e furiosos

golden turret
#

basically when i hit the slime it should look at where im looking

sullen marlin
#

uh do slime even have pitch

ancient plank
#

they shouldn't 🤔

#

I mean technically they might but it wouldn't change anything

golden turret
quaint mantle
#

ignore

#

Double Price = plugin.getConfig().getDouble("Items."+key+".Price");
Price don't exist in config '-'

golden turret
#

fica verificado ae

#

pra mandar print

quaint mantle
golden turret
#

?verify

golden turret
#

i need some help with the variables he used

quaint mantle
#

how to verify if "for" is ened?

golden turret
#

ened?

quaint mantle
#

ened

quaint mantle
tall dragon
#

why would you even want to

quaint mantle
#

ened

#

'-'

#

ended

#

how to verify if "for" is ended?

tall dragon
#

you dont

quaint mantle
#

sad

golden turret
#

actually

#
for (int i = 0; i < 10; i++) {
}

System.out.println("for ended :sunglasses:");```
quaint mantle
#

i need it for:

#

if(items > 1 && moneyGanhar.get() > 1) {
sendActionbar(p, "§aYou sold §f" + items + " §aitems and earned §2$§a" + moneyGanhar.get() + " coins");
econ.depositPlayer(p, moneyGanhar.get());
}

#

hey

#

i can verify in PlayerToggleSneakEvent the action?

#

e.isCancelled()

golden turret
#

moneyGanhar

quaint mantle
candid plover
#
    public EventManager getManager() {
        return MainRandom.getPlugin().manager;
    }```
#

Is this a wrong way to call another class? I don't want to be using MainRandom.getPlugin.getManager all the time.

ivory sleet
#

Hmm

#

Usually you just pass your EventManager instance to whatever class that needs it

golden turret
#

?di

undone axleBOT
mellow gulch
#

Server.getWorlds().get(0) returns the main overworld right?

quaint mantle
#

might be

olive lance
#

How is this not a singleton

quaint mantle
#

that is di

#

?di

undone axleBOT
quaint mantle
#

or constructor

olive lance
#

I took that screenshot from that link

#

You just sent that

mellow gulch
olive lance
#

Or someone did

mellow gulch
olive lance
#

Cause then they do this. Create 1 instance of the class

quaint mantle
#

you clearly cant see right?

#

the screen sucks lul

olive lance
#

??

quaint mantle
#

the phone screen

#

it kinda small

olive lance
#

Fits in my pocket

#

But anyways what’s the difference between that logger class and singleton

tender shard
#

the website you used to upload the screenshot is fucked up

olive lance
#

So from what I see @quaint mantle the difference is if the instance is instantiated within the class file?

#

Yeah for real and I had to do a captcha and select what squares have boats

tender shard
olive lance
tender shard
olive lance
#

But I don’t see a difference besides instantiating the instance in onEnable versus within the class file itself

#

From

#

?di

undone axleBOT
tender shard
olive lance
#

Just a question. I guess I am not even sure if I use singletons in my own plugin since I clearly don’t know what is what

tender shard
#

oh okay

#

well

#

I will try to explain

quaint mantle
#

ignore

#

changed "switch()" to if :/

#

switch can't uses external strings

olive lance
#

Use a hashmap should be faster

quaint mantle
#

example

String a = String.valueOf("a");

switch(name) {
case a:
}

tender shard
#

@olive lance

tender shard
#

TL;DR: dependency injection = passing your main class in a constructor all the time

#

advantages: none, in your case

tidal hollow
#

Does anyone know how to install JDA for spigot?

tender shard
#

other option: static getter in your main class:
advantges, in your case: easier

tender shard
#

what do you want to do @tidal hollow ?

#

isn't JDA a discord lib for java?

olive lance
#
    private HCFPlugin plugin;
    public Events(HCFPlugin plugin){
        this.plugin = plugin;
    }


    boolean isActionLegal(Player player, Location event){
        Faction playerFac = plugin.getData().getFaction(player);``` is this DI then?
tidal hollow
tender shard
#

that's DI

tender shard
olive lance
#

and the main class is not considered a singleton then?

tender shard
#

maven*

tidal hollow
#

Yes

tender shard
tender shard
# tidal hollow Yes

okay. you can freely use JDA but be sure to shade it. Does something not work?

quaint mantle
#

Lore not working

                ItemStack shiftvender = new ItemStack(Material.PAPER);
                ItemMeta shift_meta = autovender.getItemMeta();

                shift_meta.setDisplayName(plugin.getConfig().getString("Menu.Items.Shift.Titulo").replace("&", "§"));
                ArrayList<String> lore_shift = new ArrayList<String>();
                plugin.getConfig().getStringList("Menu.Items.Shift.Descricao").stream().map(s -> {
                    return lore_shift.add(s.replace("&", "§"));
                });

                shift_meta.setLore(lore_shift);
                shiftvender.setItemMeta(shift_meta);```
olive lance
tender shard
quaint mantle
#

edited

olive lance
#

like a axe used to claim land

#

basically like worldedit wand

tender shard
#

it doesn't break anything if you use UpperCamelNames but I just wanted to mention it

#

is there something not working with the class you sent? Do you get any errors?

olive lance
#

No the class is working i was wondering about whether it is a singleton/not and if it is an inherently 'bad' singleton? Also what is wrong with the method names I thought lowercase first letter is correct?

tender shard
# quaint mantle ,_,

I already told you two times that the stupid website you use to upload screenshots does not work

olive lance
#

Unless you were talking about package names

#

which those are not cased correctly

tender shard
#

this is how the link you sent looks like to me

#

@quaint mantle

quaint mantle
#

wait

#

'0'

olive lance
#

bruh

tender shard
#

bruh

#

USE ANOTHER WEBSITE

quaint mantle
#

wtf

tender shard
#

THE WEBSITE YOU USE SUCKS

olive lance
#

can u not just

tender shard
#

sorry for caps

quaint mantle
#

'0'

kind hatch
#

This is what it looks like.

olive lance
#

paste the screenshot?

tender shard
kind hatch
#

Doesn't Lightshot have an Upload to Imgur?

tender shard
#

can't you simply paste the screenshot here?

olive lance
#

I always want to use the upgraded windows snipping tool but regular snipping tool is only one what works

kind hatch
#

I know you can with Lightshot.

tender shard
#

No need at all to upload it to some strange website

quaint mantle
#

How to get <@&695824786605080576> role?

kind hatch
#

You select the area and CTRL + C

olive lance
#

Win > "snip" > enter

tender shard
quaint mantle
#

oh

kind hatch
#

@quaint mantle I think the bot is responsible for that.

tender shard
#

pls help @quaint mantle get verified, otherwise they'll keep sending links to not-working screenshot websites lmao

tidal hollow
tender shard
kind hatch
olive lance
#

So mfnalex what was the issue with my method names

tender shard
quaint mantle
#

i verified '-

tender shard
#

your name is still white

olive lance
#

dark mode imagine

tender shard
#

you did NOT get verified yet

quaint mantle
olive lance
#

his name is black and you need to accept that dark mode users

tender shard
#

I am using dark mode and their name is white for me

olive lance
#

Im on light

quaint mantle
kind hatch
#

He's not verified.

ancient plank
#

adelemThonk its not manual

kind hatch
#

He would have the rank as well.

ancient plank
#

!verify

undone axleBOT
#

Usage: !verify <forums username>

tender shard
somber hull
#

sharing my project on intellij shares my entire intellij folder..

quaint mantle
#

ok

tender shard
ancient plank
#

that's existed for a long time

tidal hollow
kind hatch
quaint mantle
somber hull
#

not project

#

it shares ALL of my projects

kind hatch
#

Oh

somber hull
#

not the one open in intellij

tender shard
somber hull
quaint mantle
somber hull
tender shard
olive lance
#

strange

kind hatch
#

@somber hull Send a screenshot of your current IntelliJ.

kind hatch
#

Like, just a screenshot of it open.

olive lance
#

have u tried restarting

somber hull
somber hull
quaint mantle
#

This code work?

ArrayList<String> lore_shift = new ArrayList<String>();
                plugin.getConfig().getStringList("Menu.Items.Shift.Descricao").stream().map(s -> { return lore_shift.add(s.replace("&", "§")); });```
kind hatch
#

I wanna see if you have all your projects visible in your Project section.

tender shard
olive lance
#

@somber hull When you commit you should be able to select/deselect directories to upload

quaint mantle
olive lance
#

Weird

quaint mantle
#

GG

tender shard
quaint mantle
#

I have the role

quaint mantle
tender shard
olive lance
#

@tender shard what was the issue with my method names

tender shard
tender shard
quaint mantle
#

how to make it work?

olive lance
cold pawn
#

Common question but does anyone know how I would be able to remove a player from tab and still keep them visible in-game. I've been doing some online searches for awhile now but can't seem to find a good answer on how to do it. And also how I can change there name in tab aswell.

tender shard
kind hatch
#

@somber hull Have you tried the Get from Version Control?
VCS ---> Get from Version Control

tender shard
#

instead of just asking what's not working

#

we can tell you WHY something is not working

#

but we cannot tell you WHAT is not working

quaint mantle
mighty sparrow
tender shard
somber hull
#

nvm

#

it just showed up

#

leme try

quaint mantle
# tender shard did you tell the itemsatck to use the updated itemmeta?
                ItemStack shiftvender = new ItemStack(Material.PAPER);
                ItemMeta shift_meta = autovender.getItemMeta();

                shift_meta.setDisplayName(plugin.getConfig().getString("Menu.Items.Shift.Titulo").replace("&", "§"));
                ArrayList<String> lore_shift = new ArrayList<String>();
                plugin.getConfig().getStringList("Menu.Items.Shift.Descricao").stream().map(s -> {
                    return lore_shift.add(s.replace("&", "§"));
                });

                shift_meta.setLore(lore_shift);
                shiftvender.setItemMeta(shift_meta);```
tender shard
#

yeah gradle is slow af

mighty sparrow
quaint mantle
#

;=;

tender shard
#

if it doesn't, you have another problem. check whether your code actually runs by adding some debug text output

quaint mantle
#

ok

next stratus
mighty sparrow
#

spigotmc forum is literally the minecraft stackoverflow ngl

quaint mantle
#

Is correct?

next stratus
mighty sparrow
cold pawn
mighty sparrow
#

Look at the end of this

#

You need ProtocoLib

#

Ok I will stop send link and go sleep

#

gn

cold pawn
#

Thank

quaint mantle
#
                ArrayList<String> lore_shift = (ArrayList<String>) plugin.getConfig().getStringList("Menu.Items.Shift.Descricao");

I can replace to §?

#

i using lore_shift for set lore in item meta

#

,_,

mighty sparrow
#

hahaha

#

mb gee

quaint mantle
#

fixed

mighty sparrow
#

how

quaint mantle
#

fixed 👍

tender shard
#

Map<String,Object>

#

@golden turret ^

mighty sparrow
#

Yo mfnalex

tender shard
#

yes @mighty sparrow ?

mighty sparrow
#

When will the translation be done

#

I liked your game

quaint mantle
#

'getItemTypeId()' is deprecated

#

What?

somber hull
#
            event.setCancelled(true);
            if (event.getAction() != InventoryAction.PICKUP_ALL) return;
            if(event.getCurrentItem() == null || event.getCurrentItem().getType() != Material.SPAWNER) return;
            ItemStack itemStack = event.getCurrentItem();
            if(itemStack.getItemMeta() == null || (!itemStack.hasItemMeta())) return;
            PersistentDataContainer itemData = itemStack.getItemMeta().getPersistentDataContainer();
            if(!itemData.has(plugin.ENTITY_TYPE_KEY, PersistentDataType.STRING)) return;
            Player plr = (Player) event.getWhoClicked();
            String group = "gui.groups.default-group";
            for(String i : config.getConfigurationSection("gui.groups.custom-groups").getKeys(false)){
                if(plr.hasPermission("betterspawners.group." + i)){
                    group = "gui.groups.custom-groups." + i;
                    break;
                }
            }
            int itemAmount = pages.getItems().size() + 1;
            
            if(itemAmount > config.getInt(group +".spawner-amount")) return;
            List<ItemStack> itemList = new ArrayList<>();
            if (config.contains(plr.getUniqueId() + ".spawners")) {
                itemList = (List<ItemStack>) config.getList(plr.getUniqueId() + ".spawners");
            }
            ItemStack itemClone = itemStack.clone();
            itemClone.setAmount(1);
            itemList.add(itemClone);
            itemStack.setAmount(itemStack.getAmount()-1);
            dataConfig.set(plr.getUniqueId() + ".spawners", itemList);
            createGui(plr).show(plr);

Basically that itemList is taken from the config, then an item is added to it. Then the itemList is set back in the config to be used later.

#

My problem is that if an item is identical to another item in the list it just kinda doesnt work

#

Leme get the part where it populates a gui with the itemStacks

#
        List<ItemStack> inventoryItemList = new ArrayList<>();
        if (dataConfig.contains(guiPlr.getUniqueId() + ".spawners")) {
            inventoryItemList = (List<ItemStack>) dataConfig.getList(guiPlr.getUniqueId() + ".spawners");
        }

That list is then used here

        int itemsPerPage = this.height * this.length;
        int pagesNeeded = (int) Math.max(Math.ceil(items.size() / (double) itemsPerPage), 1);

        for (int i = 0; i < pagesNeeded; i++) {
            OutlinePane page = new OutlinePane(0, 0, this.length, this.height);

            for (int j = 0; j < itemsPerPage; j++) {
                //Check if the loop reached the end of the list
                int index = i * itemsPerPage + j;

                if (index >= items.size()) {
                    break;
                }

                page.addItem(new GuiItem(items.get(index)));
            }

            this.addPane(i, page);
        }
somber hull
quaint mantle
#

hey mens

#

how to verify if is id 15 on data

somber hull
#

what mc version

quaint mantle
somber hull
#

i only know new version stuff

quaint mantle
#

fixed

dense geyser
#

thats its durability, you'd just check that and if it was 15, boom

somber hull
dense geyser
#

in 1.8, thats durability

#

because durability and item data seem to be the same thing

#

:D??!

dense geyser
#

yeah, dont ask

somber hull
#

ok

#

i wont

dense geyser
#

lol

somber hull
dense geyser
#

in any item that cant be damaged, the durability of the item is its item variation

#

aight lemme see

somber hull
somber hull
#

it doesnt even show up as one stack with multiple amounts

#

just one item

dense geyser
#

it could be because theres nothing that differentiates the items, if you looped through the list, added them all manually and assigned them an ID which lead to them, it will make sure they're unique

somber hull
#

But i can control the list ig

dense geyser
#

does the config file ONLY contain the itemstacks?

somber hull
#

should i assign a UUID in the items NBT?

dense geyser
#

yeah that could work, either that or use a txt instead of a yml

somber hull
#

you think thats the issue?

dense geyser
#

because of how yml works, if something with its key or data already exists, it doesnt see it and just pastes itself over the top of the old one

#

json and txt files are lists so they can accomodate the same object

somber hull
#

ahhh

#

thank you

oblique wigeon
#

I'm trying to create a class where you can pass an method and an event to create a listener- but how should I approach this?

#

the base Event class wont be enough to actually do much with the event in the parameters given.. so how should I have the type of event be defined in the method?

#

(i'm pretty sure this seems like a stupid question, but i'm not sure else how to put it)

somber hull
#

How do i serialize an itemstack into json?

#

I am using jackson JSON mapper

waxen plinth
waxen plinth
waxen plinth
#

Should work but haven't tested that

#

It serializes using ItemStack#serialize and then converts the resulting map to json

mellow gulch
#

is BlockDispenseEvent supposed to fire when a block/item fails to be dispensed?
(for example, if it tries to dispense a shulker box but there is already a shulker box in the way?)

wicked bear
#

This seems like a dumb question with an easy fix but when i do:
'Location var1 = new Location(Bukkit.getWorld("world"), 100, 50, -304)' and i make another one that looks like this:
'Location var2 = new Location(Bukkit.getWorld("world"), 200, 60, 500)' then i have to player.teleport's like this
'player.teleport(var1)'
'player.teleport(var2)' it seems to teleport me to the 2nd rather then the first even if the first's condition is met

i can send the real code if needed

indigo cave
#

@wicked bear well the last statement is teleport to var2 so guess why you are teleported there

wicked bear
#

Well it connected to a GUI system

#

That was dumb on my part

hasty prawn
#

Send the actual code

#

@wicked bear

wicked bear
#

ok

#

package me.blaxxalotl.warp.menu.Warp.events;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.yaml.snakeyaml.error.Mark;

import java.util.ArrayList;

import static org.bukkit.ChatColor.BLACK;

public class warpClickEvent implements Listener {

@EventHandler
public void clickEvent(InventoryClickEvent e){


    Player player = (Player) e.getWhoClicked();


    if (e.getClickedInventory().getTitle().equalsIgnoreCase(ChatColor.BLACK + "Warp Menu")){
        Location Classes = new Location(Bukkit.getWorld("world"), -13, 144, 50);
        Location Market = new Location(Bukkit.getWorld("world"), 302, 66, -329);
        switch(e.getCurrentItem().getType()){
            case STAINED_GLASS_PANE:
                e.setCancelled(true);
            case DIAMOND_SWORD:
                player.closeInventory();
                player.teleport(Classes);
            case EMERALD:
                player.closeInventory();
                player.teleport(Market);

        }

        e.setCancelled(true);
    }


}

}

sullen marlin
#

You're missing a break in your switch

wicked bear
#

Bro

#

im an idiot

#

thank you

tidal hollow
#

Does anyone know why when creating a new Minecraft project and trying to put the version of the project it says that "an error occurred while trying to retrieve the version"

waxen plinth
#

And that's why you should use the enhanced switches if you can

#

They're much nicer

lavish hemlock
quaint mantle
#

can someone help me find spigot mapped

#

?1.18

undone axleBOT
quaint mantle
#

...

#

:/

#

is this spigot mapped?

#

bc it didnt work for me

#

read 1.18 release notes

#

yess

#

that is what im looking for..

#

🙂

#

idk i cant figure it out i swear there was like an easy maven resource

#

also if youre using maven don't you just add it to your POM?

robust forge
#

Im trying to get if chunk is loaded, but it always returns false, why?
if(!c.getLoc().getWorld().isChunkLoaded(c.getLoc().getBlockX(), c.getLoc().getBlockZ())) {

#

Im in the chunk btw

wooden fable
#

How to get a player out of an InventoryPickupItemEvent?

wooden fable
young fossil
#

You need to use getBlockX() >> 4 and getBlockZ() >> 4

wooden fable
robust forge
waxen plinth
#

It's because it takes chunk coordinates

#

Not block coordinates

#

So if you pass in 16, 16 it's checking for chunk position 16, 16 not block position 16, 16

robust forge
waxen plinth
#

is a right bitwise shift

#

4 is equivalent to dividing by 16

quaint mantle
#

ive put the mapping in my pom but cant find the references

#

i mean >> 3 = dividing by 8?

waxen plinth
#

Yes

quaint mantle
#

i feel like i mightve missed a step, does anyone have a proper resource

#

oh 2^

waxen plinth
#

And >> 2 is dividing by 4

#

And >> 1 is dividing by 2

robust forge
#

Ok thanks

quaint mantle
#

hmm why is 2^ so important bruh

waxen plinth
#

Because everything is in binary

quaint mantle
#

like gb, kb, or minecraft seeds things, use 2^

#

oh

#

that

#

k then

waxen plinth
#

Imagine removing the last digit of a number

#

10000 -> 1000

#

Same as dividing by 10

#

Slicing off the last digit divides by the base you're working in to the power of the number of digits you remove

#

So of course binary will be 2^

robust forge
waxen plinth
#

No

robust forge
#

Good

#

.getChunk().isLoaded() loads it?

waxen plinth
#

Yes

robust forge
#

Ok good

waxen plinth
#

getChunk loads it

wooden fable
#

I have this in my PlayerInteractEvent

if(event.getAction() != Action.RIGHT_CLICK_AIR || event.getAction() != Action.RIGHT_CLICK_BLOCK) return;

Even when i left click, it will return.
Does someone know what the problem is?

robust forge
#

Whats the point of .isLoaded() for it then if it always returns true? :D

quaint mantle
#

&&

#

that is and

#

not ||

waxen plinth
#

If you do num != 1 || num != 2 it will always be true

#

Because every number is either not one or not two

wooden fable
#

|| = or right?

waxen plinth
#

The same principle applies there

#

Yes

quaint mantle
waxen plinth
#

Use &&

quaint mantle
#

you should go see some operator

#

?learnjava

undone axleBOT
quaint mantle
#

there is a page for operator i guess

#

see it

waxen plinth
#

Or just do .toString().startsWith("RIGHT")

young fossil
quaint mantle
#

does anyone know how to understand how the mojang mapped works? i have the dependency and plugin but i can’t figure out what’s what

chrome beacon
#

All you need to do is copy paste the maven info and run BuildTools

#

That's it

quaint mantle
#

like what maven info *

chrome beacon
#

Copy paste the dependency and maven special source info from the release post of your version

quaint mantle
#

wow

#

wait wrong chat

quaint mantle
#

what extra command do i need to get the maven data

#

no

#

idk i cant rly find anything explaining this stuff but i could be looking in the wrong places

#

i have looked

#

no, it looks like you dont understand it

#

i havent seen anything to explain it so yeah like if i see how ppl do it ill understand it

#

ok

#

like what page should i be looking for

#

that link

#

i told you a few hours ago

#
<dependency>
    <groupId>org.spigotmc</groupId>
    <artifactId>spigot</artifactId>
    <version>1.18-R0.1-SNAPSHOT</version>
    <classifier>remapped-mojang</classifier>
    <scope>provided</scope>
</dependency>

are you talking about this and the plugin?

#

bc ive read through this and i must be stupid bc i dont understand what i missed out on

#

wait are you even using NMS?

#

i need to

#

oh ok

#

then do it

#

public class NMSShopkeeper extends EntityVillagerTrader { -> Cannot resolve symbol 'EntityVillagerTrader'

#

bukkit references are all fine

quaint mantle
#

put into my 1.18

#

i asked maybe the names changed?

#

it provides you a way to reobfuscate the methods, the plugin and the dependency i mean

#

oh so on compile i dont break any rules? - bc i know u cant distribute stuff

#

yeah

#

now the import issue

#

ok so that's the plugin

#

right

#

is not relevant to the plugin

#

okok, so that's what im facing, is it known?

#

you should go and check 1.18 source

#

ok

#

where can i get that? from the same page?

#

do you even use buildtools bro?

#

i just use it to get the jar

#

to run my server

#

you didnt delete the files and stuff didnt you?

#

if yes

#

check the spigot-server in spigot folder

#

to see what is the new name for entityvillagersomething

#

wait...

#

EntityVillagerTrader.patch

#

found this

#

wait wait wait

#

lemme read the 1.17 post again

#

i mean i didnt mind using non-mapped NMS, but the issue is if i do that with 1.18 its impossible bc theres two methods named x() and one returns boolean one is void

#

alright i see

#

how does it know which maven repo is the right one?

#

that's the only ambiguity i see

somber hull
#
            String group = "gui.groups.default-group";
            for (String i : config.getConfigurationSection("gui.groups.custom-groups").getKeys(false)) {
                if (plr.hasPermission("betterspawners.group." + i)) {
                    group = "gui.groups.custom-groups." + i;
                    break;
                }
            }
#

why would it be seeing my first group when i dont have any permissions?

#

group is == to a config section

#

if (itemAmount > config.getInt(group + ".spawner-amount")) return;

wooden fable
#
        int i = 0;
        for(ItemStack item : items) {
            i++;
            if(item == null) {
                items[i] = backgroundItem;
            }
        }

This code is meant to fill the background in the inventory, but it doesn't work completely. Does someone know whats happening?
https://i.imgur.com/C3t8b4V.png

        ItemStack backgroundItem = createItem(/*Material.LIGHT_GRAY_STAINED_GLASS_PANE*/Material.ROTTEN_FLESH, 1, " ");
        ItemStack[] items = new ItemStack[27];
amber vale
#

Umm, I need advice. I am making an harder more realistic survival/diplomacy server, and was wondering would 40000x20000 sized world be too large? Would something like 20000x10000 be better

chrome beacon
#

Why not make it square

amber vale
chrome beacon
#

Also you can always increase world size later

amber vale
#

Like

#

Custom generating off an image

opal juniper
#

right ok

#

how many players

amber vale
#

Quite little

#

Probably like ~10-20 actively at the same time

#

More when there is some large conflict obviosly, but probably not ridiculous amounts

opal juniper
#

200k x 200k is probs the max u need

amber vale
#

That

#

That seems excessively large

opal juniper
#

yeah

amber vale
#

Considering there is no nether etc.

opal juniper
#

that’s why it was the max

#

just pick an amount smaller than that

amber vale
#

Hmm

#

Maybe like... 20k x 20k

quaint mantle
#
        <dependency> <!-- Spigot (this includes Spigot API, Bukkit API, Craftbukkit and NMS) -->
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot</artifactId>
            <version>1.18-R0.1-SNAPSHOT</version>
            <classifier>remapped-mojang</classifier>
            <scope>provided</scope>
        </dependency>
#

still cant get my NMS imports to work

#

i ran build tools for latest and it's in my .m2 folder

wild reef
#

Hey, is there a way to tell on which days on the server (in minecraft days) the player was online?
For example a player was online on minecraft world day 2 and 3 (40min).

static ingot
quaint mantle
#

dont do that

#

and btw this is for dev channel

#

go general if you ask that

amber vale
quaint mantle
quaint mantle
#

much thanks

#

that can tell you how to choose the correct size of the world for you

#

this should be it

#

it talk about a program named worldpainter

#

you can safely ignore them if you dont want to make cool terrain

#

with that tool

#

wait

#

lemme read the comment there again

#

it might not be it

amber vale
quaint mantle
#

just gonna ask how long you think it would take for a player to walk 4k blocks?

amber vale
#

And its diplo based, so there needs to be stuff to right over

quaint mantle
#

in worldpainter they measure it for about 24mins for 4k

amber vale
#

Also boats, map has large oceans

#

And horses

quaint mantle
#

this is 10k x 10k and look how big it is

#

so 20k is enough i guess

#

or 35k - 45k, if you really want a massive world

amber vale
#

I mean 20k x 20k is 400m blocks of surface

misty current
#

Even 10k is huge

quaint mantle
#

400m you mean 400 mil right?

#

i often think it is meters so just gonna ask

amber vale
opal juniper
quaint mantle
wooden fable
#

when i open the inventory, it will add it to an hashmap with the player as key. When i close the inventory, it will remove the key.
in the InventoryClickEvent it will check if the hashmap contains the key.

but sometimes the hashmap is null in the InventoryClickEvent.
But when in the open() function, when i put the inventory in the hashmap. And then log the hashmap, the hashmap isn't null.
Code:
https://pastebin.com/nQu29Kxq

#

Sometimes it works, sometimes it doesn't

#

Does someone know why the HashMap = null?

drowsy helm
#

can you send an error code?

#

should be no reason for it to be null

#

also use uuids instead of Player

wooden fable
drowsy helm
#

isnt it throwing an NPE?

#

or are you handling it

quasi flint
#

e.printStackTrace(); then

drowsy helm
#

if(!openInvs.containsKey(player)) return; should be throwing an NPE if it is null

#

do you mean it just doesnt contain player?

wooden fable
drowsy helm
#

try just using UUIDs

#

storing the Player variable can cause problems

wooden fable
#

i'm testing it rn with uuids

wooden fable
wooden fable
quaint mantle
#

when i compile my NMS code with the mapping

#

i get classnotfound

#

im guessing ive messed the maven plugin up to recompile it?

tacit drift
#

let's say that I have 100 armorstands that should get blocks in a 3x3 grid and break them, would be creating a thread for every armorstand better or one thread to do execute everything at the same time or split every x armorstands in x threads

drowsy helm
chrome beacon
quaint mantle
#
                <groupId>net.md-5</groupId>
                <artifactId>specialsource-maven-plugin</artifactId>
                <version>1.2.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>remap</goal>
                        </goals>
                        <id>remap-obf</id>
                        <configuration>
                            <srgIn>org.spigotmc:minecraft-server:1.18-R0.1-SNAPSHOT:txt:maps-mojang</srgIn>
                            <reverse>true</reverse>
                            <remappedDependencies>org.spigotmc:spigot:1.18-R0.1-SNAPSHOT:jar:remapped-mojang</remappedDependencies>
                            <remappedArtifactAttached>true</remappedArtifactAttached>
                            <remappedClassifierName>remapped-obf</remappedClassifierName>
                        </configuration>
                    </execution>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>remap</goal>
                        </goals>
                        <id>remap-spigot</id>
                        <configuration>
                            <inputFile>${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar</inputFile>
                            <srgIn>org.spigotmc:minecraft-server:1.18-R0.1-SNAPSHOT:csrg:maps-spigot</srgIn>
                            <remappedDependencies>org.spigotmc:spigot:1.18-R0.1-SNAPSHOT:jar:remapped-obf</remappedDependencies>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>```
#

errors out saying it cant find Failure to find org.spigotmc:spigot:jar:remapped-mojang:1.18-R0.1-SNAPSHOT in https://hub.spigotmc.org/nexus/content/repositories/snapshots/

chrome beacon
#

?paste

undone axleBOT
drowsy helm
quaint mantle
#
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot</artifactId>
            <version>1.18.1-R0.1-SNAPSHOT</version>
            <classifier>remapped-mojang</classifier>
            <scope>provided</scope>
        </dependency>```
#

oh

#

i just saw the paste link

chrome beacon
#

1.18.1 and 1.18

quaint mantle
#

wait what

#

no way

#

asfdgvknsdfgsadfgksaedg

tacit drift
#

and represent a reference point also

drowsy helm
#

i mean you could pass the world data then delegate it to async threads but it would have to get queued back into the main thread to break them anyway

tacit drift
#

pretty much, I need to make some sort of a queue i think

drowsy helm
#

yeah, i cant remember what its called but there are quicker methods to change mass amounts of blocks

#

ill try and find the post

#

this one

#

will significantly boost your performance

tacit drift
#

NMS

drowsy helm
#

yeah lmao but efficient

tacit drift
#

thx

drowsy helm
#

according to that post default bukkit method is 60k blocks per second

#

which isnt horrible

tacit drift
#

I will just use the bukkit method

#

this looks really crazy

#

14M blocks per second :)))

drowsy helm
#

i mean if each armourstand is only breaking 1 deep

#

thats 9000 blocks

#

not a huge amount

chrome beacon
#

Didn't md improve the speed of the api method in recent versions

#

Those numbers might be a bit old

drowsy helm
#

yeah maybe it is 1.14

quaint mantle
#

guys what is PacketPlayOutSpawnEntity() int i in constructor ?

#

is it entity id or what

restive tangle
#
    public Report getReport(int caseId){
        Document query = serverDatabase.collection().find(Filters.eq("Case", caseId)).first();

        if(query == null) return null;
        OfflinePlayer reported = Bukkit.getOfflinePlayer(UUID.fromString(query.getString("Reported")));
        OfflinePlayer reporter = Bukkit.getOfflinePlayer((UUID.fromString(query.getString("Reporter"))));
        return new Report(reported.getName(), reporter.getName(), query.getString("Reason"), query.getInteger("Case"));
    }
[11:20:01 WARN]: java.lang.ClassCastException: class java.lang.Long cannot be cast to class java.lang.Integer (java.lang.Long and java.lang.Integer are in module java.base of loader 'bootstrap')
[11:20:01 WARN]:     at org.bson.Document.getInteger(Document.java:243)
[11:20:01 WARN]:     at com.quzacks.plugins.utilities.ReportManager.getReport(ReportManager.java:38)
[11:20:01 WARN]:     at com.quzacks.plugins.commands.staff.ViewReportCommand.onCommand(ViewReportCommand.java:35)
[11:20:01 WARN]:     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)

I don't know what I'm supposed to do.

eternal night
#

Well seems like "Case" is a long not an integer

lethal knoll
#

Is there an efficient way to see if a certain class/method is available as of a certain version?

#

Example bossbar

#

I remember someone has a great site for that

hybrid spoke
#

?jd

hybrid spoke
#

🤔

lethal knoll
#

This shows only the latest

#
  • it must be more efficient then this
#

opening every docs from the history is not really efficient

lethal knoll
#

Thank you @hybrid spoke , but not what I'm looking for

ivory sleet
lethal knoll
#

Yes @ivory sleet , I did that before. But now I got a simple class where I do a check for the version

#

But I know there is a site available somewhere that has precisely that

ivory sleet
#

Problem is that spigot is snapshot based

#

So even in a single nms version, the features may vary within api

#

Now hopefully people should stay on latest for each version

#

but yeah

lethal knoll
#

Well yes

#

I also don't use NMS

#

never

#

But it's a fact, my plugin is being used by 3K servers, there are quite some still running older versions

#

so checks are required

#

I cannot just say, "dear server owners, as of now only supported for latest minecraft version". I would lose alot of server using it

ivory sleet
#

Yuh

quaint mantle
lethal knoll
#

Lol

quaint mantle
#

cant keep up with monke, you're running 10 versions or 100 subversions behind.

#

Can't keep up! Is the server overloaded? Running {}ms or {} ticks behind

#

Can't keep up! Are you a monke? Running 10 versions or 100 subversions behind.

lethal knoll
#

You know that is nonsense right? Many people have a good reason to stay with an old version of minecraft. If it really was that much of an issue that minecraft wouldn't allow you to revert back to older versions.

#

What would have happened if spigot didn't update their old 1.8 builds for the Log4J vulnerability?

quaint mantle
#

imagine staying with monke...

lethal knoll
#

There is a reason they did that

#

It's because there is still a big audience using it

quaint mantle
#

1.8.9 and 1.12.2 are the two main version for old players, and both are over 6 years old

#

1.13 - 1.15 is the worst in term of performance, so 1.16+ is da best

lethal knoll
#

Exactly, so I cannot just drop the 1.8 audience

#

Anyhow, I know there is a site where you can type a method and it checks in which versions it is present

#

It's that site I'm looking for

#

or something simular

quaint mantle
lethal knoll
#

that website doesn't exist for me

quaint mantle
#

i didnt say it exist

lethal knoll
#

Then why did you send it?

quaint mantle
#

Result: NNNJDWAJDIHAFIWOOPASJODJOA CANT KEEP UP WITH DA PWAHHHHH~1!!'

lethal knoll
#

Okay I see, just making fun again ...

quaint mantle
#

like 8 years now

lethal knoll
#

Because I have an audience

quaint mantle
#

oh

#

6 years.

lethal knoll
#

I don't know how many servers your plugin has, but you would understand if it was simular ...

quaint mantle
lethal knoll
#

That's great, but it's not the point. And if you don't mind, I'm looking for proper feedback or a decent answer, not arguments to drop my audience

fervent gate
# quaint mantle why cant?

A lot of people are still using that version and he would not do them a good deed there. He said that he has a lot of servers using it, so I can imagine a quite a bit of people will complain or stop using the plugin if the server is bigger.

lethal knoll
#

Thank you @fervent gate

quaint mantle
#

welp i mean you can still support 1.8 if somehow you only use spigot methods that still avaible in old version, but dont keep in mind that 1.8 are your main version

lethal knoll
#

And you are 100% right

fervent gate
quaint mantle
lethal knoll
fervent gate
#

Why risk losing audience though, even it is free. There are quite a bit of reasons to not do that

quaint mantle
lethal knoll
#

So what is your spigot?

#

I'm curious

quaint mantle
#

1.16.5

lethal knoll
#

Your profile, do you even have resources?

quaint mantle
#

im doing some tricky things with vanilla right now so it not actually spigot

fervent gate
hybrid spoke
#

just dont have 1000 users, problem solved

#

if you have no users, you cant lose any

#

be smart

quaint mantle
fervent gate
#

Well yea, but apparently he does have some, idk the amount though

quaint mantle
#

but not if they are 1.8 user complaining about backward compatibility

hybrid spoke
#

whats even the topic

quaint mantle
lethal knoll
#

@quaint mantle , you need to understand, once your plugin start to become somewhat famous, you cannot just do something for your own importance

hybrid spoke
#

nice

lethal knoll
#

This is exactly that situation ...

hybrid spoke
#

oh is that the topic?

lethal knoll
#

@hybrid spoke , @quaint mantle say's that you should drop 1.8 support no matter how many target audience you have

hybrid spoke
#

oh well, i couldnt do that either.

lethal knoll
#

Exactly

quaint mantle
lethal knoll
#

@quaint mantle , that's nonsense you know that right?

#

Maybe if you got 10 servers running your plugin you can do that

#

but not with 3000 ...

kind hatch
hybrid spoke
#

i mean, he's not wrong, he can even if its a paid plugin

#

but he will loose his users

lethal knoll
#

It takes time

kind hatch
#

Fair

lethal knoll
#

You cannot just say from day to day

quaint mantle
#

welp

hybrid spoke
#

go for <1.8

quaint mantle
#

the thing is 1.8 is just too old to keep up

hybrid spoke
#

there are many 1.8 servers which will last years from now on

quaint mantle
#

and people who can even support 1.4.6 to 1.18 is just unreal

lethal knoll
#

Yea, that I don't do

#

My plugin is supported as of 1.8

quaint mantle
hybrid spoke
#

NCP is built different

quaint mantle
lethal knoll
#

what you are you talking about?

kind hatch
#

What plugin are we even talking about here?

hybrid spoke
quaint mantle
lethal knoll
#

Yes, so it's supported

#

They can also not drop their audience

hybrid spoke
#

the 1.4.6 cracked servers need NCP

quaint mantle
#

i guess

#

or they really want to support 1.4.6, then i have no idea why they doing that 😂

#

but anyways what is ur plugin name?

#

mind if i check it out a bit?

lethal knoll
#

I don't mind, the plugin is called sleep-most

quaint mantle
#

oooooo open source

lethal knoll
#

yes

quaint mantle
#

86.5k download

#

maybe over 45k servers i guess

lethal knoll
#

No, 3k +

quaint mantle
#

huh?

#

welp then

lethal knoll
#

But it's growing fast

#

But it's not related, I know there is a website that can compare different spigot versions

quaint mantle
#

minidigger web i think

#

@young vine wat is ur web

#

woah look

#

how much is 1.8?

hybrid spoke
#

whats the total count?

lethal knoll
#

@quaint mantle , the number is not reliable I'm afraid

#

there was an issue that bstats didn't detect for all versions

#

I had to use a try catch for that

quaint mantle
lethal knoll
#
  • bstats can easily be disabled
quaint mantle
#

but 😂

hybrid spoke
keen silo
#

Hey, at the moment i programm an Spigot Fork and want to Change the Version (Ping), /ver command and so on. How i change this?

quaint mantle
hybrid spoke
keen silo
kind hatch
hybrid spoke
quaint mantle
#

but its looks like he dont know how to fork

hybrid spoke
#

exactly

kind hatch
#

Ah, didn’t get that off my initial read.

keen silo
quaint mantle
#

then you dont

keen silo
#

I do.

#

I find the "This Server is running.." Message, but the Version is nowhere defined

plucky fog
#

will spigot freak out if i add extra stuff to my plugin.yml?

kind hatch
#

Extra stuff like?

hybrid spoke
#

why would you even add extra stuff to your plugin.yml

plucky fog
#

im tryna make a kind of discord-minecraft bridge, i figured it'd be easier, when registering the discord part of the commands, to read the same command info that spigot reads. but the discord part needs some extra info, hence why i want to add to it

#

so smth like this ```yaml
commands:
kit:
description: Your description
usage: /<command>
permission: yourplugin.yourcommandpermission
argsRequired: false
discordPermission: MESSAGE_SEND, MANAGE_CHANNEL

paper viper
#

Make a separate file instead

#

For it

plucky fog
#

why?

#

if its the same command for both platforms, why separate it?

paper viper
#

Because plugin.yml is really not for this

plucky fog
#

ik

quaint mantle
plucky fog
# plucky fog ik

but i dont see the point in storing the same command info in 2 files

keen silo
kind hatch
quaint mantle
#

you dont really know how to fork spigot

#

welp

#

goodluck finding it in spigot-api

plucky fog
kind hatch
#

I know you can get the description from the plugin.yml, but I currently forget the method.

plucky fog
#

ah, i think i got it

eternal oxide
#

you can read any extra information as you would for any yaml file

cinder tusk
#

have you checked the pom.xml? ill resend the pasteMD link

wooden fable
#

Hey, i got this line on my PlayerJoinEvent

OorlogSimulatie.getPlayerManagers().put(event.getPlayer(), new PlayerManager(event.getPlayer()));

And it gives this ClassNotFoundException/NoClassDefFoundError:
https://pastebin.com/Lc2JmU2K

This is my PlayerManager class

package me.branchyz.oorlogsimulatie.managers;

import org.bukkit.entity.Player;

public class PlayerManager {
    private PlayerState playerState = PlayerState.SPAWN;
    private Player player;

    public PlayerManager(Player player) {
        this.player = player;
        //Teleport player to spawn.

    }

    public void setPlayerState(PlayerState playerState) {
        this.playerState = playerState;
        switch (playerState) {
            case SPAWN:
                //Teleport player to spawn.
                break;
            case INGAME:
                break;
        }
    }

    public PlayerState getPlayerState() {
        return playerState;
    }

    public Player getPlayer() {
        return player;
    }
}

#

Why does it give this error?

rough basin
#

After creating a Custom Event, is there a method that is supported by default?

hybrid spoke
rough basin
#

like .getEntity to grab something entitys

young knoll
#

Sure, if your event extends entity event

young vine
#

Did people really ping me into a discussion about dinosaurs versions that should rot in a hole?

#

Mfw

#

If you support 1.8 you can rot in the same hole

#

Thankfully most understand that supporting ancient versions is a waste of time and just hurts the quality of your product

quaint mantle
#

I am getting this error in my code

lethal knoll
#

So respectful, not ...

quaint mantle
#

but I cant figure out why it is making the error

sacred ice
#

Sender is Console?

lethal knoll
#

Caused by: java.lang.ClassCastException: class org.bukkit.craftbukkit.v1_17_R1.command.ColouredConsoleSender cannot be cast to class org.bukkit.entity.Player (org.bukkit.craftbukkit.v1_17_R1.command.ColouredC

quaint mantle
sacred ice
#

If you try to cast a Player instance from a sender that is console

#

it will not work

quaint mantle
#

so is it because I ran the command in console?

lethal knoll
#

Yes

quaint mantle
#

dang

#

thx :D

lethal knoll
#

You need to check for the type first

young vine
lethal knoll
#

That's an opinion

#

And I didn't tag you

young vine
#

Can be adjusted to whatever you want on modern versions cause it's all configurable

#

People are just to dum to understand that

lethal knoll
#

What is that supposed to mean lol

#

It's not because people enjoy the old combat mechanics more, that they are dumb.

#

The statements that you are making are purely from a developer perspective

young vine
#

Am saying you can change the combat mechanics to whatever you want on modern versions

#

So if that's your reason to not upgrade, you are dum

lethal knoll
#

How so?

young vine
#

Because you can just use latest and all the benefits that brings?

#

Lol

lethal knoll
#

So what if people enjoy the old minecraft more then it is today? There are alot of other things that changed, not just the combat, mobs, blocks, biomes. What if they don't want all of that?

young vine
#

Wat

lethal knoll
#

Anyway, I didn't tag you

young vine
#

Hur dur change bad!

#

Mami pls help stuff changed!

stone sinew
ivory sleet
#

I don’t get why people still can’t accept that the usage of obsolete and legacy software belongs to the problem set, not the solution set.

lethal knoll
#

Look, the opinions around support for older versions is clearly different. And I don't mind anyone who gives their opinion on it. I once shared another opinion but that changed over time. But there is difference between telling what you believe is your opinion in a respectful way, and calling people who don't share the same opinion dumb

hasty prawn
#

There's just no reason to support 1.8 anymore

#

That's what they're saying

lethal knoll
#

@hasty prawn , in theory, I just try to keep the same version (same jar) for each version. In theory I could say that if you want to make use of a 1.8 supported version, I could just say to use an older version

#

so from that perspective I agree

stone sinew
lethal knoll
#

But on the other hand,

#

I also did alot of improvements on my plugin in terms of usability that are not 1.16+ specific and then it's better to have the same jar

hybrid spoke
#

from developer perspective the support of older versions are a need for a more wide audience

lethal knoll
#

Agree

stone sinew
#

I support on minions 1.8.8 up to 1.18.1 and on minions-revamped I support 1.18.1 down to 1.8.8

hybrid spoke
#

and its dumb

frosty tinsel
#

Can I make bungeecord plugin on Java 17?

lethal knoll
#

Disagree

hybrid spoke
#

its like doing extrawork for the laziness of others

#

what is just dumb

lethal knoll
#

It's just a fact, today there is still most likely even more servers running 1.8 or using multiple versions then actually running the latest

#

It's not about lazyness

hybrid spoke
#

sport teacher overworks because a child want to stay at the 100m line

#

dumb

lethal knoll
#

These people just enjoy the old version more

#

Why did Runescape introduce back the old-school version, because the community didn't like the new updates. It's another game but the same idea

eternal oxide
#

1.8 accounts for around 6% of total servers

lethal knoll
#

That's possible

hybrid spoke
#

the newer versions have the same things like the older ones AND MORE

hasty prawn
#

I understand creating your plugins based around the audience you plan to sell it to. If your plugin is directed at users who mainly play on 1.8 servers of course most your sales will be 1.8.

But with that being said, support for 1.8 was dropped ages ago, and you can't expect to ever get support for it. It's a use at your own risk kinda thing.

stone sinew
hybrid spoke
#

you, as a server owner could just build a 1.8 network at 1.18

lethal knoll
#

I agree with that yes

#

I'm not a server owner, I just listen for my community on their needs. They want a 1.8 support, and as long as it doesn't involve too much trouble, then why not

eternal oxide
#

if 50% of server owners disable BStats, the remaining is still an accurate representation

ivory sleet
stone sinew
lethal knoll
#

We are talking about a game here. If Mojang really shared the same opinion that 1.8 shouldn't be played anymore, then why did they introduce the option to play multiple versions

ivory sleet
#

Wat

hybrid spoke
#

you cant just pull the publisher in it

compact cape
#

Why this doesn't work?

hybrid spoke
#

the topic is the server software

#

not the game itself

hasty prawn
eternal oxide
lethal knoll
#

Exactly, so why did they not remove it then

eternal oxide
#

Why remove a function that gets used?

lethal knoll
#

Listen software or not, people will play it still because mojang supports it

ivory sleet
hybrid spoke
#

mojang doesnt

#

its just there

#

stayed in the past

compact cape
lethal knoll
#

@eternal oxide , are you casting the block or the blockstate?

#

oops

#

sorry

eternal oxide
hasty prawn
hybrid spoke
lethal knoll
#

@compact cape

compact cape
lethal knoll
#

But anyway

#

I respect anyones opinion on this topic

#

As long as it's respectful, and for some people here, that was clearly not the case

#

In the end it's just an opinion

ivory sleet
#

Well, that’s up to you to decide, regardless the software for the version is in fact unsupported and mostly why people don’t go higher up is due to bullshit arguments and people constantly spreading false fud about newer versions.

compact cape
lethal knoll
ivory sleet
#

How so? you can achieve the equivalent experience in 1.18

lethal knoll
#

Even if was just for more nostalgic reasoning

#

Well not entirely

ivory sleet
#

Please concretize

hybrid spoke
#

yes you can

lethal knoll
#

For example, I honnestly stopped following on all the new stuff years ago

hybrid spoke
#

not an argument

hasty prawn
ivory sleet
#

What does that have to do with enjoying 1.8 more?

hybrid spoke
#

the only argument i accept is the new sneaking animation

lethal knoll
#

There is much more

#

there is new mobs

hybrid spoke
#

cancel the mobs

lethal knoll
#

Why cancel the mobs?

#

It certainly is an argument

hasty prawn
#

New mobs are a reason to use 1.18 not 1.8

young vine
hybrid spoke
lethal knoll
#

Those flying devils were so much pain to me

#

when I saw them I thought, damn now they fucked up

#

I really didn't enjoy it

ivory sleet
#

Disable them?

#

Lol

lethal knoll
#

the fact that you had to sleep

#

Yes, again, an argument

hybrid spoke
#

not really

lethal knoll
#

with enough plugins you can disable everything

#

doesn't mean you should

ivory sleet
#

1.8 is objectively bad, I’m out

lethal knoll
#

I'm also going to retreat from the discussion

#

It's been enough, in the end it all started because of a simple question I had

hybrid spoke
#

because you dont have any valid points to defend your position

lethal knoll
#

Not at all @hybrid spoke , I said more then enough

hybrid spoke
#

and in the end you digressed on your personal opinion

lethal knoll
#

Exactly, and so did you

hybrid spoke
#

xD

lethal knoll
#

And again, I just asked a question, then someone started this discussion

young vine
#

Look, there are facts and opinions, opinions are invalid

wooden fable
hasty prawn
#

Block hitting and sneaking animation are the only arguments for staying on 1.8 and those are miniscule in comparison to everything added/fixed SINCE 1.8

young vine
#

1.8 is just objectively broken at this point

hybrid spoke
#

they changed the block hit animation?

hasty prawn
hybrid spoke
#

oh you mean that one

hasty prawn
#

Because shields

hybrid spoke
#

i thought of breaking a block

lethal knoll
#

@wooden fable , you get that because you are missing a class

hasty prawn
#

Oh no LOL

wooden fable
#

What do you mean?

lethal knoll
#

It's there on compile time

#

Not on runtime

wooden fable
#

How would i fix that?

lethal knoll
#

I assume you are using a library

#

correct?

wooden fable
#

No, i wrote the SetupManager and the PlayerManager

ivory sleet
lethal knoll
#

Your setup manager is not there when your project is compiled

#

Are you including it as dependency?

#

Or did you actually include the jars in your project?

#

Your setupManager is not there

wooden fable
#

i only included spigot with maven

lethal knoll
#

Come PM for a moment

hasty prawn
frosty tinsel
#

Anyone knows, what's the earliest bungeecord login event called, where I can see the player's username?

quaint mantle
acoustic pendant
#

are there different ways of programming in PAPI in 1.8?

ivory sleet
#

You can make the exact same damage reduction

#

You can remove the disable hit functionality

#

You can even mess with the knockback

#

And make sure the durability isn’t dropping

vague oracle
#

I agree that people should stop using 1.8, but the pvp on there will always be better. You can make it very close, but its mainly to do with the hit reg and a couple of other very small things that make it feel not quite the same.

ivory sleet
#

Feel is a very subjective word

#

Can you prove it?

#

factually speaking

#

Not talking about textures or models

#

But pure functionality

stone sinew
#

If people wanted "hit reg" they would use 1.7.10 lol 1.8 isn't used solely for pvp

quaint mantle
#

1.8 is the last updated version with old combats

#

so they feel safer

#

when using it