Ir para conteúdo

[ cmLoja ] - Plugin de loja por placas


C4ssi0

Posts Recomendados

Bom dia, boa tarde e boa noite!

Hoje estou trazendo pela primeira vez um plugin bem simples de loja para os servidores de Minecraft.

O cmLoja consiste em criar lojas usando placas, como o plugin ChestShop.

Tanto staff quanto jogadores podem criar lojas, para isso, basta ter as permissões!

 

Testado nas versões 

● 1.14x

● 1.13x

● 1.12x

● 1.11x

● 1.10x

● 1.9x

● 1.8x

● 1.7x

● 1.6x

● 1.5x

Vídeo do Plugin

Vídeo

Comandos 

☛ /geraritem

 Gera algum item customizado para adicionar na venda usando a placa.

Ao digitar o comando pela primeira vez:

 R6pmpCR.png

Ao usar o mesmo comando para o mesmo item:

 OUxrvCN.png

Ao usar o comando com o item que não é customizado:

 Pu7FuQS.png

 

Permissões 

 loja.geraritem : Permissão para usar o comando /geraritem

 loja.admin : Permissão para o admin criar loja de todos os tipos.

 loja.player : Permissão para o jogador criar loja usando o baú.

 loja.quebrarloja : Permissão para o jogador poder quebrar qualquer loja Vip.

 loja.abrirbau : Permissão para o jogador poder abrir o baú de qualquer loja Vip.

 

Desconto Vip

 loja.vender.0-100 : Permissão para dar "desconto" na loja, isto é, o jogador vai vender mais caro os itens apenas na loja do servidor. Os valores pode ser de 0 até 100 porcento.

 loja.comprar.0-100Permissão para dar desconto na loja ao comprar algum item na loja do servidor.

 Exemplo: loja.comprar.10 <-- O jogador terá 10% de desconto na loja do servidor.

OSB: ADMINS NÃO TÊM DESCONTO NA LOJA, ISTO É, NENHUMA DAS 2 PERMISSÕES IRÃO FUNCIONAR.

 

Como criar a loja? ✦

 Primeira linha:  

[Loja] - para ser a loja do servidor

C4ssi0 - Para o jogador criar loja no baú

vvE7ild.png

ou

swEBZFs.png

 

➤ Segunda Linha:

64 - Quantidade de itens para a venda/compra

nkDGIsJ.png

 

➤ Terceira Linha:

C 10 - Para o jogador comprar o item por 10 reais.

ERsOIWt.png

V 10 - Para o jogador vender o item e receber 10 reais.

R3Nd3U1.png

: - Usa esse separador quando você quer adicionar compra e venda na loja

C 10 é compra, : é o separador e V 10 é venda

HQt12fn.png

 

 Quarta linha:

54 - ID do item normal no minecraft

LvhBSRm.png

272#Vj7k - ID do item customizado usando o comando /geraritem

jYsfLpU.png

 

Resultado final da placa: 

mf1WojG.png

r3wBjJP.png

 

➤ Arquivos que o plugin gera:

4PFqCva.png

 

➤ Configuração de mensagens do arquivo configurar.yml : 

Clique aqui para visualizar

 

 Eventos p/ programadores

cN5DLvW.png

LojaBuyOtherPlayer - É chamado sempre quando um jogador compra na loja de outro jogador.

LojaBuyServer - É chamado sempre que algum jogador compra na loja do servidor.

LojaSellOtherPlayer - É chamado sempre que algum jogador vende itens na loja de outro jogador.

LojaSellServer - É chamado sempre que algum jogador vende itens na loja do servidor.

LojaSignCreate - É chamado sempre que algum jogador cria uma loja.

 

Baixar/Download 

✔ Download do plugin na versão v2.0.4-SNAPSHOT: Clique Aqui!  Versão mais recente 11/11/20!

✔ Source do plugin: https://github.com/cassiompf/cmLoja ● Contribua para melhorar o plugin!

 

Avisos Importantes 

 O plugin necessita do Vault e algum plugin de economia no servidor.

Se acharem erros no plugin me avisem que eu irei editar para lançar na próxima versão.

 

 Créditos

@Mra7medX, por ajudar a contribuir testando o plugin e achando bugs.

Link para o comentário
Compartilhar em outros sites

NICE!!!

Você poderia adicionar na próxima versão:
* Ao pressionar SHIFT vende-se/compra-se um inventário inteiro, caso ele não estiver pressionando o botão venderá/comprará apenas a quantidade da placa;
* Adicionar /iteminfo que mostra as informações do item tipo, ID, data, encantamentos, nome, lore, quantidade, etc;
* Possibilidade de poder alterar o nome da loja do servidor "[Loja]".


 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, IgooR disse:

NICE!!!

Você poderia adicionar na próxima versão:
* Ao pressionar SHIFT vende-se/compra-se um inventário inteiro, caso ele não estiver pressionando o botão venderá/comprará apenas a quantidade da placa;
* Adicionar /iteminfo que mostra as informações do item tipo, ID, data, encantamentos, nome, lore, quantidade, etc;
* Possibilidade de poder alterar o nome da loja do servidor "[Loja]".


 

O jogador já vende tudo quando ele bate na placa sem apertar shift, por exemplo: O jogador tem 120 itens e a placa fala que vende por 64 itens. Quando o jogador clicar na placa ele vai vender os 120 itens com os preços ajustados. Acho que vou adicionar na configuração para o jogador editar o nome da loja do servidor na próxima versão, boa ideia! E também irei adicionar o /iteminfo !!!

Obrigado ?

Link para o comentário
Compartilhar em outros sites

Em 06/11/2018 em 17:57, C4ssi0 disse:

O jogador já vende tudo quando ele bate na placa sem apertar shift, por exemplo: O jogador tem 120 itens e a placa fala que vende por 64 itens. Quando o jogador clicar na placa ele vai vender os 120 itens com os preços ajustados. Acho que vou adicionar na configuração para o jogador editar o nome da loja do servidor na próxima versão, boa ideia! E também irei adicionar o /iteminfo !!!

Obrigado ?

Isso pode ser muito mau , imagina que o player apenas quer vender 64 items? e guardar o resto?

Link para o comentário
Compartilhar em outros sites

Então, testei no meu server, e está apresentando um pequeno bug. Para a loja do servidor, está normal, a compra e venda está perfeita. Mas se um player comum criar sua própria loja, ele consegue vender o item, mas não aparece dinheiro na sua conta. Porém o item realmente é vendido e transferido pro comprador. Eu uso o EssentialsX

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

Em 11/11/2018 em 07:17, flamerax disse:

Então, testei no meu server, e está apresentando um pequeno bug. Para a loja do servidor, está normal, a compra e venda está perfeita. Mas se um player comum criar sua própria loja, ele consegue vender o item, mas não aparece dinheiro na sua conta. Porém o item realmente é vendido e transferido pro comprador. Eu uso o EssentialsX

Vou resolver isso e lançar na próxima versão!

Link para o comentário
Compartilhar em outros sites

Em 11/11/2018 em 07:17, flamerax disse:

Então, testei no meu server, e está apresentando um pequeno bug. Para a loja do servidor, está normal, a compra e venda está perfeita. Mas se um player comum criar sua própria loja, ele consegue vender o item, mas não aparece dinheiro na sua conta. Porém o item realmente é vendido e transferido pro comprador. Eu uso o EssentialsX

Hoje fui entrar para resolver o erro e eu estou com dúvida no que você disse.

O jogador (dono da loja) consegue vender para ele mesmo e o mesmo não recebe dinheiro porém o item some? ou 

O jogador (dono da loja) consegue fazer a loja e vender os itens para outros jogadores comprarem porém o dinheiro está caindo para o comprador?

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

Agora, C4ssi0 disse:

Hoje fui entrar para resolver o erro e eu estou com dúvida no que você disse.

O jogador (dono da loja) consegue vender para ele mesmo e o mesmo não recebe dinheiro porém o item some? ou 

O jogador (dono da loja) consegue fazer a loja e vender os itens para outros jogadores comprarem porém o dinheiro está caindo para o comprador?

Pelo que entendi é a primeira opção o problema...

Link para o comentário
Compartilhar em outros sites

18 horas atrás, wDaark disse:

sera que tem algum dup?

Pelo o que eu sei pelo o que eu testei, até hoje não achei nenhum tipo de dup. Se você conseguir achar me avise que eu irei arrumar!

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

6 horas atrás, RUSHyoutuber disse:

esse /geraritem serializa o item pra guardar no banco de dados? esse serializador mantem as tags NBT? esse serializador gera erro se você tentar salvar aquelas Heads geradas por URL?

O comando "/geraritem" gera apenas um nome aleatório que será atribuído no arquivo itens.yml para fazer referência ao item.

Eu estou utilizando o método set() da classe YamlConfiguration e passo a String e o objeto da classe ItemStack como parâmetro.

Eu não sei se ao passar o objeto da classe ItemStack nesse método é possível mantém as tags NBT. 

Dê uma olhada nessa classe do código fonte clicando aqui! Talvez isso tire sua dúvida. ?

Link para o comentário
Compartilhar em outros sites

2 horas atrás, C4ssi0 disse:

O comando "/geraritem" gera apenas um nome aleatório que será atribuído no arquivo itens.yml para fazer referência ao item.

Eu estou utilizando o método set() da classe YamlConfiguration e passo a String e o objeto da classe ItemStack como parâmetro.

Eu não sei se ao passar o objeto da classe ItemStack nesse método é possível mantém as tags NBT. 

Dê uma olhada nessa classe do código fonte clicando aqui! Talvez isso tire sua dúvida. ?

Bom vamos aos pontos, usar esse sistema ira gerar erros caso o player tem salvar aquelas SKULLs obtidas por URL.

Não tenho certeza se as NBTAGS ficam salvas usando esse método recomendo testar.

Recomendo que você use serializador de itens para preevenir esse problema. Se quiser olhar a source do System.

Link para o comentário
Compartilhar em outros sites

Em 06/11/2018 em 15:50, IgooR disse:

NICE!!!

Você poderia adicionar na próxima versão:
* Ao pressionar SHIFT vende-se/compra-se um inventário inteiro, caso ele não estiver pressionando o botão venderá/comprará apenas a quantidade da placa;
* Adicionar /iteminfo que mostra as informações do item tipo, ID, data, encantamentos, nome, lore, quantidade, etc;
* Possibilidade de poder alterar o nome da loja do servidor "[Loja]".


 

Concordo, seria bem interessante.

//

Belo plugin, foi muito bem feito!

Link para o comentário
Compartilhar em outros sites

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