eduardo-mior / MambaFactions

Fork do plugin Factions da MassiveCraft.
http://gamersboard.com.br/topic/55559-free-mambafactions-o-seu-plugin-de-fac%C3%A7%C3%B5es-100-completo/
GNU General Public License v3.0
8 stars 5 forks source link

PlaceholderAPI Support #3

Closed EverNife closed 5 years ago

EverNife commented 6 years ago

Adicionar suporte para o plugin PlaceHolderAPI para estatísticas relevantes, tais como nome do clan, tag, etc.

Principalmente as que são usadas no sistema de chat, para que assim, outros sistemas de chat possam usar esses dados em seus respectivos pluigins.

(Exemplo, plugins de chat https://github.com/evernife/FancyChat)

(Nota: se quiser eu posso fazer um pullrequest para adicionar isso)

eduardo-mior commented 6 years ago

Adicionar suporte para o plugin PlaceHolderAPI para estatísticas relevantes, tais como nome do clan, tag, etc.

Principalmente as que são usadas no sistema de chat, para que assim, outros sistemas de chat possam usar esses dados em seus respectivos pluigins.

(Exemplo, plugins de chat https://github.com/evernife/FancyChat)

(Nota: se quiser eu posso fazer um pullrequest para adicionar isso)

O plugin é um Fork do Factions Massive então ele já possui os mesmos placeholders do factions da massive. Vale contar que o factions assim como outros plugins injeta as tags diretamente no chat do minecraft ou seja, o próprio plugin de chat que deve administrar este sistema.

EverNife commented 6 years ago

Bom, eu discordo completamente desse método de aplicação, tendo em vista que haverá checagens desnecessárias que poderiam ser evitadas pela integração do plugin Factions com o PlaceHolderAPI.

De qualquer forma, vou criar um addon para o MambaFactions para adicionar os Placeholders necessários, dessa forma, não só meu plugin de chat poderá se beneficiar disso, como também outros tipos de plugins (BossShop por exemplo, para se montar menus).

eduardo-mior commented 6 years ago

Bom, eu discordo completamente desse método de aplicação, tendo em vista que haverá checagens desnecessárias que poderiam ser evitadas pela integração do plugin Factions com o PlaceHolderAPI.

De qualquer forma, vou criar um addon para o MambaFactions para adicionar os Placeholders necessários, dessa forma, não só meu plugin de chat poderá se beneficiar disso, como também outros tipos de plugins (BossShop por exemplo, para se montar menus).

Ok você que sabe. Na minha opinião eu acho que o plugin de chat deveria trabalhar sozinho sem dependencia do Placeholders, bom trabalho.

EverNife commented 6 years ago

Se você me explicar como o plugin de chat iria identificar todas as tags de todos os plugins que existem, ai eu faria kkk

Não existe nenhum jeito de fazer isso T.T

eduardo-mior commented 5 years ago

É só olhar a source do legendchat ou do uchat

EverNife commented 5 years ago

Hmmmmmmmmmmmmm

Bom, quando vc falou aplicar as tags diretamente no "chat do minecraft" eu havia entendio que você queria que o plugin de chat pegasse o "onChatEvent", no caso, a String, lesse ela, pega-se as tags, e então aplica-se novamente na mensagem formatada.

Por isso falei que não fazia o menor sentido.

O método que legendchat e uchat usam, basicamente é adicionar o plugin de destino como dependencia e usar a API do mesmo para pegar os dados. Isso é bem simples.

O problema disso é:

Se tiver 50 plugins populares, eu vou ter que ir adicionando todos esses plugins populares para o meu plugin de chat.

O que, ao meu ver, não é conveniente, afinal, quase todos os plugins populares já tem integração com PlaceholderAPI.


De qualquer forma, eu vou reabrir meu servidor factions provavelmente em uma semana e meia, até lá eu faço a integração do FancyChat com o Factions diretamente, sem o auxilio do PlaceholderAPI

(Embora seja bem provável que vá ser necessário para mim fazer essa integração, tendo em vista que eu gosto de usar placeholders nos menus)

eduardo-mior commented 5 years ago

Hmmmmmmmmmmmmm

Bom, quando vc falou aplicar as tags diretamente no "chat do minecraft" eu havia entendio que você queria que o plugin de chat pegasse o "onChatEvent", no caso, a String, lesse ela, pega-se as tags, e então aplica-se novamente na mensagem formatada.

Por isso falei que não fazia o menor sentido.

O método que legendchat e uchat usam, basicamente é adicionar o plugin de destino como dependencia e usar a API do mesmo para pegar os dados. Isso é bem simples.

O problema disso é:

Se tiver 50 plugins populares, eu vou ter que ir adicionando todos esses plugins populares para o meu plugin de chat.

O que, ao meu ver, não é conveniente, afinal, quase todos os plugins populares já tem integração com PlaceholderAPI.

De qualquer forma, eu vou reabrir meu servidor factions provavelmente em uma semana e meia, até lá eu faço a integração do FancyChat com o Factions diretamente, sem o auxilio do PlaceholderAPI

(Embora seja bem provável que vá ser necessário para mim fazer essa integração, tendo em vista que eu gosto de usar placeholders nos menus)

Eu vou tentar explicar o meu ponto de vista, depois você me corrige caso eu estiver errado blz? Eu não tenho 100% de certeza do que eu estou falando.

No LegendChat existem algumas TAGS que eu considero elas como "genéricas", essas tags são as: {prefix} {bprefix2} {bprefix} {bsuffix} {suffix}. Eu chamo elas de genéricas porque elas não estão diretamente ligadas com outros plugins, por exemplo, a tag {magnata} e a tag {mctop} não são "genéricas" porque elas estão conectadas a outros plugins.

Se você quiser que o nome da facção(Factions Massive), ou a tag do clan (SimpleClans) aparecem no chat você vai usar a tag {bprefix2}, ou seja, ela é genérica para os 2 plugins.

Se você for olhar a source do LegendChat por exemplo, você vai ver que ele não possui dependencia de nenhum dos dois plugins, nem do Factions e nem do SimpleClans. Mas ai eu te pergunto, como que ele consegue pegar a TAG do clan e da facção sendo que nenhum dos dois plugins esta conectado ???? Se você olhar a source do Factions e do LegendChat vai ver que nenhum dos dois esta conectado...

A minha teoria como eu tinha te explicado, é que, o LegendChat pega as Tags do próprio chat do Minecraft ou algo do gênero. Se você rodar o seu servidor sem o LegendChat e escrever algo no chat, você vai ver que o nome da sua facção ou a tag do clan irão aparecer no próprio chat do Minecraft. Então na minha teoria o LegendChat basicamente pega as tags do próprio minecraft e joga elas nessas tags genéricas.

Prova 1: https://prnt.sc/m0l4yw (plugin.yml do LegendChat) Prova 2: http://prntscr.com/m0lbbc (source do LegendChat) Prova 3: http://prntscr.com/m0ld1c (chat do Minecraft sem o LegendChat)

Se você tiver alguma explicação melhor de como isso acontece ou porque isso acontece só me falar.

PS: A tag do {groupprefix} e {groupsuffix} não são "genéricas" porque elas são pegas pelo Vault se não me engano.

EverNife commented 5 years ago

O UltimateChat pega esses dados diretamente dos outros plugins, afinal, esse é o método mais eficiente que existe, afinal, ficar "lendo" uma mensagem, nem sempre garante que você vá pegar os dados da mensagem. Prinicipalmente quando existe "hoverText" (textos que só aparecem quando você passa o mouse em cima)

image

E realmente, você não pensou errado, o LegendChat faz exatamente essa nojeira kkkk Não uso ele faz muitos anos, pois não tem suporte para hoverMessage, então não sabia disso, mas pelo oq eu pude observar, ele descobre a tag do clan do jeito mais ridículo possível.

image

eduardo-mior commented 5 years ago

O UltimateChat pega esses dados diretamente dos outros plugins, afinal, esse é o método mais eficiente que existe, afinal, ficar "lendo" uma mensagem, nem sempre garante que você vá pegar os dados da mensagem. Prinicipalmente quando existe "hoverText" (textos que só aparecem quando você passa o mouse em cima)

image

E realmente, você não pensou errado, o LegendChat faz exatamente essa nojeira kkkk Não uso ele faz muitos anos, pois não tem suporte para hoverMessage, então não sabia disso, mas pelo oq eu pude observar, ele descobre a tag do clan do jeito mais ridículo possível.

image

É que o LegendChat leva em consideração o fato de que existem muitos plugins mundo a fora, e desta maneira que eles fizeram seria possível captar as tags "automaticamente" eu não acho que essa seja boa maneira, muito pelo contrario, seria muito melhor fazer diretamente como você disse.

Bom saber que o UltimateChat pega tudo direto dos plugins isso é mais eficiente...

Vou fechar a issues, acho que todas as nossas duvidas foram resolvidos.

EverNife commented 5 years ago

https://github.com/evernife/FancyChat/releases/download/1.0.2/EverNifeFancyChat-1.0.2.jar

https://www.spigotmc.org/resources/fancychat.61927/

image

Resultado in-game:

image