tirex | 2020-06-04 21:33:29 UTC | #1
Mam do zaprezentowania plugin do minecrafta, który dodaje do gry komendę helpop
.
Plugin testowałem na wersji javy 8 i wersji silnika 1.12.2
.
Plugin wymaga utworzenia na serwerze discord webhooka (kiedyś dam link jak to zrobić).
Gracz po wpisaniu komendy helpop + wiadomość
wysyła wiadomość do administracji + bot na discordzie wysyła wiadomość na kanał, na którym jest skonfigurowany webhook.
https://mega.nz/#!yxlgCbZI!ZvgxxOIipIL7VLz3CIjMV0gOLBHBbYgsB8sIs28EgTY
helpop.admin
- uprawnienie potrzebne do tego, aby odbierać wiadomości w grze.
helpop.toggle
- uprawnienie potrzebne do tego, aby móc włączać/wyłączać helpopa.
helpop.user
- uprawnienie potrzebne do tego, aby móc wysyłać wiadomości na helpop.
Nic skomplikowanego nie będę opisywać.
helpop:
enabled: true
webhooks:
helpop:
- url: https://discordapp.com/api/webhooks/{webhook.id}/{webhook.token}
parameters:
embeds:
- color: '15158332'
title: '{sender_name} napisał'
description: '{message}'
- url: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
parameters:
color: '#e74c3c'
fields:
- title: '{sender_name} napisał'
value: '{message}'
short: false
fallback: '{sender_name} napisał {message}'
messages:
commands:
helpop:
correct_use: '&cPoprawne uzycie: &e/helpop <wiadomosc>'
toggle:
enable: '&cHelpop został włączony!'
disable: '&cHelpop został wyłączony!'
disabled: '&cHelpop jest aktualnie wyłączony!'
message_style:
receiver: '&4[HelpOp] &c{sender_name}&r> {message}'
sender: '&c{sender_name}&r> {message}'
Wygląd wiadomosci na discordzie (nazwe bota możemy samemu dostosować podczas tworzenia webhooka).
Wygląd wiadomości w grze (taka sama informacja dla gracza jak i dla administratora).
https://github.com/NoneTirex/minecraft-helpop
Dziondzio | 2018-04-14 07:53:57 UTC | #2
Fajne, tylko szkoda że na Discorda
tirex | 2018-04-14 08:02:41 UTC | #3
Czemu szkoda?
Dziondzio | 2018-04-14 08:08:03 UTC | #4
Dlatego że mało(10) serwerów korzysta z Discorda a z np teamspeak więc(40), do projektu nic nie mam jest bardzo fajny 😉 ps dodaj że można sam zmieniać wygląd wiadomości i jeszcze tak żeby było helpop off i on w razie W
happi | 2018-04-14 08:12:28 UTC | #5
[quote=”Dziondzio, post:4, topic:6295”]
Dlatego że mało(10) serwerów korzysta z Discorda a z np teamspeak więc(40)
[/quote]
Skąd te statystyki?
Dziondzio | 2018-04-14 08:18:37 UTC | #6
[quote=”happi, post:5, topic:6295”]
Skąd te statystyki?
[/quote]
Bo gram na dużo serwerach, więc napisałem tak na oko.
Patbox | 2018-04-14 09:45:00 UTC | #7
Wytestuje :wink:
Tylko polecam zmienić Zippyshare na coś innego.
Myślałeś nad dodaniem tego pluginu na spigotmc.org albo dev.bukkit.org?
tirex | 2018-04-14 10:12:58 UTC | #8
Nie myślałem, ale mogę to zmienić.
Aktualnie plugin jest w wersji alpha, ale jak zaktualizuje go, aby można było go spokojnie używać to myślę, że go tam dodam.
anon10657637 | 2018-04-14 10:50:45 UTC | #9
[quote=”Dziondzio, post:6, topic:6295”]
Bo gram na dużo serwerach, więc napisałem tak na oko.
[/quote]
Ale nie na wszystkich, więc Twoje “statystyki” nie są wiarygodne.
@tirex Chyba coś za dużo w kodzie zostawiłeś:
public class TestDiscordHook
{
public static void main(String[] args)
{
HttpBuilder httpBuilder = HttpBuilder.create();
HttpConnection httpConnection = httpBuilder.buildConnection("https://discordapp.com/api/webhooks/434473344490930218/kca0_Ah_A86_8hptRrm7pabYRqP72BxqCtjV_P2UUPAzHbRG02qGRE8-rAFhp_YQ_Zk8");
httpConnection.setHeader("User-Agent", "Helpop Minecraft (https://tirex.edu.pl, v0.1)");
httpConnection.setMethod(HttpMethod.POST);
httpConnection.setContentType(HttpContentType.JSON);
JsonObject embed = new JsonObject();
embed.addProperty("color", "3447003");
embed.addProperty("description", "dasdsad");
embed.addProperty("title", "dsds");
JsonArray embeds = new JsonArray();
embeds.add(embed);
httpConnection.setParameter("embeds", embeds);
try
{
System.out.println((String)httpConnection.execute(new StringResolver()));
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
Bubi | 2018-04-14 11:29:10 UTC | #10
Bardzo fajny pomysł :) +
Patbox | 2018-04-14 11:37:32 UTC | #11
Działa i to najważniejsze.
Tu link do główki: https://cravatar.eu/helmhead/Robotex/128.png
bvcz | 2018-04-14 12:33:27 UTC | #12
Config nie generuje się automatycznie, jest jedynie pusty plik config.yml
. (Paper version git-Paper-1391 (MC: 1.12.2))
Dodałbym możliwość edycji wiadomości, zmianę koloru embeda na Discordzie oraz cooldown na użycie komendy
tirex | 2018-04-14 13:03:21 UTC | #13
Dziękuje za wszystkie wskazówki:
[quote=”Dziondzio, post:4, topic:6295”]
Dlatego że mało(10) serwerów korzysta z Discorda a z np teamspeak więc(40), do projektu nic nie mam jest bardzo fajny :wink: ps dodaj że można sam zmieniać wygląd wiadomości i jeszcze tak żeby było helpop off i on w razie W
[/quote]
[quote=”bvcz, post:12, topic:6295”]
Dodałbym możliwość edycji wiadomości, zmianę koloru embeda na Discordzie oraz cooldown na użycie komendy
[/quote]
Postaram się dodać to jutro lub w poniedziałek (dzisiaj już nie dam rady).
@bvcz z tą konfiguracją też postaram się naprawić. Robiłem konfiguracje na szybko i możliwe, że nie wszystko jest w niej dopracowane (mimo, że konfiguracja jest prosta).
Vylence | 2018-04-14 17:29:24 UTC | #14
[quote=”Dziondzio, post:2, topic:6295, full:true”]
Fajne, tylko szkoda że na Discorda
[/quote]
Zamiast rozwijać nowe platformy i projekty, tym samym zachęcając osoby do odwiedzenia ich - Twoim zdaniem lepiej jest stać w miejscu?
Jeśli mogę spytać - jak Twoim zdaniem miałoby to wyglądać w przypadku teamspeaka?
Dziondzio | 2018-04-14 18:51:05 UTC | #15
[quote=”Vylence, post:14, topic:6295”]
Jeśli mogę spytać - jak Twoim zdaniem miałoby to wyglądać w przypadku teamspeaka?
[/quote]
Normalnie, gracz pisze /helpop on ma killaure
i bot na ts3 daje poke właścicielowi lub admina z wiadomością on ma killaure
anon10657637 | 2018-04-14 18:52:33 UTC | #16
Niby jest implementacja protokołu Teamspeak’a w Javie, ale ona pozostawia dużo do życzenia jeśli chodzi o wydajne działanie, więc @tirex musiałby pokombinować by napisać własną, jak to zrobił w przypadku klienta HTTP notabene w tym pluginie.
tirex | 2018-04-15 19:28:19 UTC | #17
Zgodnie z tym co wczoraj napisałem w poście
https://forum.lvlup.pro/t/dl-helpop-z-powiadomieniami-na-discordzie/6295/13?u=tirex
Postanowiłem dodać część funkcjonalności:
- dowolna zmiana wszystkich parametrów wysyłanych za pomocą webhooka
- wsparcie dowolnych webhooków (przy odpowiedniej konfiguracji)
- możliwość zmiany wiadomości
- możliwość włączenia/wyłączenia komendy helpop
za pomocą:
- włączenie /helpop on
- wyłączenie /helpop off
Ze zmian, które nie wnikają w kod pluginu dodam, że postanowiłem zmienić hosting z zippyshare.com na mega.nz
Polecam wszystkim usunąć starą konfiguracje, gdyż nowa wygląda całkowicie inaczej.
Po pierwszym uruchomieniu serwera z pluginem, powinien wygenerować się nowy plik config.yml
, w którym możemy zobaczyć jak wygląda przykładowa konfiguracja:
helpop:
enabled: true
webhooks:
helpop:
- url: https://discordapp.com/api/webhooks/{webhook.id}/{webhook.token}
parameters:
embeds:
- color: '15158332'
title: '{sender_name} napisał'
description: '{message}'
- url: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
parameters:
color: '#e74c3c'
fields:
- title: '{sender_name} napisał'
value: '{message}'
short: false
fallback: '{sender_name} napisał {message}'
messages:
commands:
helpop:
correct_use: '&cPoprawne uzycie: &e/helpop <wiadomosc>'
toggle:
enable: '&cHelpop został włączony!'
disable: '&cHelpop został wyłączony!'
disabled: '&cHelpop jest aktualnie wyłączony!'
message_style:
receiver: '&4[HelpOp] &c{sender_name}&r> {message}'
sender: '&c{sender_name}&r> {message}'
Nie zauważyłem, że potrzebne jest opóźnienie na wysłanie kolejnej wiadomości. W następnej aktualizacji postaram się to dodać.
Link do pobrania nowej wersji pluginu: https://mega.nz/#!yxlgCbZI!ZvgxxOIipIL7VLz3CIjMV0gOLBHBbYgsB8sIs28EgTY
@Dziondzio na początku nie pomyślałem o teamspeaku. W następnej aktualizacji postaram się dodać wsparcie dla tego komunikatora (ale nie obiecuję).
Dodaję ankietę, abym miał większą motywację jakby było więcej osób chętnych na tą funkcjonalność.
[poll type=regular public=true]
* Tak
* Nie
[/poll]
Zaktualizuje główny post jak dostane do tego uprawnienia.
tirex | 2018-04-18 07:43:11 UTC | #18
Odświeżam
tirex | 2020-06-04 21:33:03 UTC | #19
Od dawna nie ruszałem tego pluginu. Z moich obserwacji wynika, że raczej plugin nie sprawia problemu co mnie niezmiernie cieszy. Z racji, że sobie o nim przypomniałem, bo potrzebuję takiego pluginu na mój serwer. Postanowiłem udostępnić jego kod źródłowy tutaj:
https://github.com/NoneTirex/minecraft-helpop