Ir para conteúdo

SkyCrates - Caixas


zAth

Posts Recomendados

é so vc colocar a crate para abrir sem key e quando ir abrir vai dar aquela tela de aceitar e cancelar, ai é so vc aperta para abrir e dropar a caixa no msm tempo ai vai ficar com o menu de aceitar, ai vc aceita e a caixa abre sem ter caixa, dps é so pegar a caixa do chão e fazer isso de novo.

Vlw por reportar :D

Baixe novamente.. já consegue alterar a chance?

Link para o comentário
Compartilhar em outros sites

 

Pena não funcionou pra mim estou atualmente na versão PaperSpigot 1.8.8 com ProtocolLib, se tiver um jeito ou você att o pl para mais versões ia ser bacana.

Belo Trabalho

 

O que não funcionou exatamente? algum erro?

Link para o comentário
Compartilhar em outros sites

O que não funcionou exatamente? algum erro?

abriu etc consegui abrir a base que aparece a painel pra configurar os itens etc, tipo ele não funciona na hora de colocar cmds que mostra no GIF que abre uma placa qualquer coisa que tem a placa clico no lugar ela não abre, fora isso acho que tudo certo...

Link para o comentário
Compartilhar em outros sites

Pf, atualiza, o "ferro" quando edita a caixa, cai no chão etc, fixa ai pls

@Sugestão

Adicionar "item" pra abrir uma caixa, tipo ta com a caixa na mão, ai clica botao direito e coloca um item pra abrir, alem de ter a caixa ter um item pra abrir, inovador dms

Link para o comentário
Compartilhar em outros sites

Meu plugin está dando este erro... https://pastebin.com/3V6kegDU

Quando excluo a config volta ao normal, mas quando crio as crates e reinicio o servidor de este erro ai.. 

Além disso quando quero trocar as chances pelo GUI n funciona... apenas n abre a placa.

 

Uso o protocollib 4.3.0

Spigot 1.8.8

 

Edit:

 

Ao reiniciar o plugin via Plugman dá este outro erro... https://pastebin.com/76BSYpNM

Editado por Viicente_
Link para o comentário
Compartilhar em outros sites

Meu plugin está dando este erro... https://pastebin.com/3V6kegDU

 

Quando excluo a config volta ao normal, mas quando crio as crates e reinicio o servidor de este erro ai.. 

Além disso quando quero trocar as chances pelo GUI n funciona... apenas n abre a placa.

 

Uso o protocollib 4.3.0

Spigot 1.8.8

 

Edit:

 

Ao reiniciar o plugin via Plugman dá este outro erro... https://pastebin.com/76BSYpNM

O primeiro erro tem nada a ver com o skycrates.

O segundo é já era previsível porque o plugman sempre causa isso, ele repete o que aconteceria ao plugin ser ligado sem limpar a memória.. no caso ele fica tentando adicionar mais itens num inventário sendo que ele já chegou no limite.

 

Sobre a placa não abrir, já me falaram e eu não sei o porquê já que para mim funcionou certo com 3 diferentes versões do protocollib.. eu até tentaria ver melhor mas estou em época de prova, mal ligo o pc, lamento.

Link para o comentário
Compartilhar em outros sites

 

esse plugin tem como o player pegar uma caixa diaria ?

 

Nop, é uma boa ideia mas ainda não tem.

 

 

Man achei um jeito de dupar arruma pls se quiser sabe so responder aqui :)

Manda mp.

Link para o comentário
Compartilhar em outros sites

 

Info

 

» SkyCrates é o plugin de caixas mais fácil de configurar que tem por ai, só pode ser configurado in-game;

» Broadcast configurável do prémio com json;

» Pode criar quantos tipos de caixas quiser, quantas caixas quiser e quantas animações quiser porém prémios só 28 por caixa;

» Possibilidade de criarem vossas próprias animações SE souberem mexer com bukkit (tutorial em baixo);

 

» Para apagar uma CAIXA, destrua segurando uma blaze rod, para apagar um TIPO DE CAIXA edite a caixa e clique no item para destruir;

 

Comandos

 

» /crate create - skycrates.command.create cria um tipo de caixa.

 

» /crate edit - skycrates.command.edit edita um tipo de caixa.

 

» /crate give - skycrates.command.give da uma chave.

 

» /crate locations -skycrates.command.locations vê as localizações de todas as caixas e o seu tipo.

 

» /crate set - skycrates.command.set seta um bloco como caixa.

 

» /crate reload- skycrates.command.reload recarrega as configurações.

 

» skycrates.admin - editar e apagar uma caixa ao clicar com blaze rod.

 

Imagens

 

https://streamable.com/kehku

https://streamable.com/kjvbu

https://streamable.com/kiwbc

https://streamable.com/45nty

https://streamable.com/yrn76

 

Dependências

» Spigot 1.8 ( feito nessa versão, outras poderão, ou não funcionar )

» ProtocolLib

 

DOWNLOAD

 

SOURCE

 

Atualizações

 

» Adicionado comando para recarregar as configurações

» Caixas que não precisam de chave

» Arrumado bug ao alterar o comando de um prémio

» Agora os blocos não irão ser alterados para enderchest ao serem setados como caixa

» Adicionado broadcast com json

» Arrumado bug onde os jogadores podiam dropar as caixas ao as abrir para que não as perdessem, obrigado por reportar [member=SaitO_M]

 

 

 

TODO

» Hologramas nas caixas - ?;

 

Dev

 

 

» Eventos

 

 

 

@EventHandler
    public void onCrateOpen(CrateOpenEvent event) {
        Crate crate = event.getCrate(); // caixa
        boolean isOpening = crate.isOccupied(); // esta sendo aberta
        Location location = crate.getLocation(); // loc da caixa

        if (isOpening) {
            AbstractAnimation abstractAnimation = crate.getAnimation(); // animação
            abstractAnimation.end(); // finaliza a abertura da caixa
        }
    }

    @EventHandler
    public void onCrateWin(CrateWinEvent event) {
        Prize prize = event.getPrize(); // prêmio
        ItemStack itemStack = prize.getItemStack(); // item que representa o premio
        String cmd = prize.getCmd(); // comando do premio

        if(prize.getType() == Prize.TYPE.ITEM)
            System.out.println("Ganhou item " + itemStack.toString());
        else
            System.out.println("Ganhou comando " + cmd);
    }

 

 

 

 

 

 

» Própria animação

 

 

 

» Main

 

package me.zath.skycratesquickanimation;
/*
 * MC 
 * Created by zAth
 */

import me.zath.skycrates.SkyCrates;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class SkyCratesQuickAnimation extends JavaPlugin implements Listener {

    private static SkyCratesQuickAnimation skyCratesQuickAnimation; // instanciando a main

    @Override
    public void onEnable() {
        skyCratesQuickAnimation = this;

        if (getServer().getPluginManager().getPlugin("SkyCrates") == null) {
            Bukkit.getLogger().severe("SkyCrates não foi encontrado.");
            return;
        }

        SkyCrates.getSkyCrates().getCrateManager().registerAnimation(QuickAnimation.class); // registrando a animação
        getServer().getPluginManager().registerEvents(this, this);

        Bukkit.getConsoleSender().sendMessage("§6<§8-----------------------------§6>");
        Bukkit.getConsoleSender().sendMessage("§6" + getDescription().getName() + " §8v.§6" + getDescription().getVersion() + " §8de§6 "
            + getDescription().getAuthors() + " §2Ativado");
        Bukkit.getConsoleSender().sendMessage("§6<§8-----------------------------§6>");
    }

    @Override
    public void onDisable() {
        Bukkit.getConsoleSender().sendMessage("§6<§8-----------------------------§6>");
        Bukkit.getConsoleSender().sendMessage("§6" + getDescription().getName() + " §8v.§6" + getDescription().getVersion() + " §8de§6 "
            + getDescription().getAuthors() + " §4Desativado");
        Bukkit.getConsoleSender().sendMessage("§6<§8-----------------------------§6>");
        HandlerList.unregisterAll();
    }

    public static SkyCratesQuickAnimation getSkyCratesQuickAnimation() {
        return skyCratesQuickAnimation;
    }

    @EventHandler
    public void onItemPickup(PlayerPickupItemEvent event) { // cancelando o evento
        // nossa animação vai dropar o prémio, para que não seja roubado temos que cancelar o evento
        // para sabermos que é um prémio iremos usar a metadata dele
        if (event.getItem().hasMetadata("quickcrate"))
            event.setCancelled(true);
    }

}

» Animação

 

 

 

 

 

package me.zath.skycratesquickanimation;
/*
 * MC 
 * Created by zAth
 */

import me.zath.skycrates.SkyCrates;
import me.zath.skycrates.objects.Crate;
import me.zath.skycrates.objects.animations.AbstractAnimation;
import org.bukkit.Material;
import org.bukkit.entity.Entity;
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;

public class QuickAnimation extends AbstractAnimation { // toda animação precisa extender AbstractAnimation

    public QuickAnimation(Crate crate) { // precisa ter um constructor, deixe ele somente com super(crate)
        super(crate);
    }

    @Override
    public void start() { // este método será chamado quando a animação começar
        prize = crate.getCrateType().getRandomPrize(); // pegando um prémio randômico

        Entity entity = null;
        if (!crate.getCrateType().isVirtual()) { // se a caixa necessita de uma chave
            String itemStackName = prize.getItemStack().hasItemMeta() && prize.getItemStack().getItemMeta().hasDisplayName()
                ? prize.getItemStack().getItemMeta().getDisplayName() : SkyCrates.getSkyCrates().getUtils().prettifyText(prize.getItemStack().getType().name());
            // pegando o nome do item se o tiver, se não usaremos uma versão mais bonita do nome do material

            entity = crate.getLocation().getWorld().dropItem(crate.getLocation().clone().add(0.5, 1, 0.5), prize.getItemStack());
            // spawnamos o prémio em cima da caixa            
            entity.setVelocity(new Vector(0, 0.2, 0));
            // jogamos ela um pouco para cima para a animar
            entity.setCustomName(itemStackName);
            entity.setCustomNameVisible(true);
            // setamos e deixamos o nome do prémio visivel
            entity.setMetadata("quickcrate", new FixedMetadataValue(SkyCratesQuickAnimation.getSkyCratesQuickAnimation(), true));
            // aqui adicionamos a metadata "quickcrate" para que ninguém possa apanhar o item
            if (crate.getLocation().getBlock().getType() == Material.CHEST || crate.getLocation().getBlock().getType() == Material.ENDER_CHEST
                || crate.getLocation().getBlock().getType() == Material.TRAPPED_CHEST) {
                // verificamos se é algum tipo de bau, para abrirmos o baú
                SkyCrates.getSkyCrates().getUtils().changeChestState(crate.getLocation(), true);
            }
        }

        final Entity finalEntity = entity;
        new BukkitRunnable() {
            @Override
            public void run() {
                // passado 5 segundos
                if (!crate.getCrateType().isVirtual()) { // se a caixa necessita de uma chave
                    if (finalEntity != null) { // se existe um item
                        finalEntity.remove(); // removemos o item
                    }

                    if (crate.getLocation().getBlock().getType() == Material.CHEST || crate.getLocation().getBlock().getType() == Material.ENDER_CHEST
                        || crate.getLocation().getBlock().getType() == Material.TRAPPED_CHEST) {
                        // verificamos se é algum tipo de bau, para fecharmos o baú
                        SkyCrates.getSkyCrates().getUtils().changeChestState(crate.getLocation(), false);
                    }
                }
                end(); // terminamos a animação, TODA animação precisa chamar o end() no término da mesma
            }
        }.runTaskLater(SkyCratesQuickAnimation.getSkyCratesQuickAnimation(), 5 * 20);
    }

    @Override
    public void run() { // este método será chamado em um timer, não iremos usar nenhum nesta animação
        ;
    }

}

» Plugin.yml

 

 

 

 

name: SkyCratesQuickAnimation
version: 1.0.0
author: zAth
main: me.zath.skycratesquickanimation.SkyCratesQuickAnimation
softdepend: [SkyCrates] # IMPORTANTE, precisa colocar isso para que a sua animação carregue DEPOIS do SkyCrates

» Resultado - https://streamable.com/cf744

» Download - http://www.mediafire.com/file/5cnnyu6y4jcnqcl/SkyCratesQuickAnimation.jar

 

 

 

 

 

 

 

Olá, achei um bug no SkyCrates, onde é possível retirar itens que podem ser estacados apenas clicando duas vezes no inventário do player, se puder, apenas retire o evento do inventário do jogador enquando estiver com a animação da caixa aberta, agradeço!

Link para o comentário
Compartilhar em outros sites

ANÁLISE DE INATIVIDADE
 

Este tópico foi automaticamente arquivado devido à inatividade. Para manter a organização e fluidez das discussões na comunidade, tópicos que permanecem sem novas interações por um período prolongado são fechados automaticamente.
 

Se houver interesse em retomar o conteúdo, sinta-se à vontade para criar um novo tópico ou entre em contato com a equipe da comunidade para reabrir este tópico.


Equipe de Moderação
Gamer's Board
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...