Skocz do zawartości

FreezePlayers - Zamrażanie graczy!


boleknowak
 Udostępnij

Rekomendowane odpowiedzi

Hi!

1. Opis:

Co to FreezePlayers (dawniej bnFreeze)? Jest to plugin zrobiony przez moją osobę, który dodaje zamrażanie/odmrażanie graczy. Jeśli gracz wyjdzie z serwera i wejdzie to zamrożenie zostanie, ale gdy serwer zostanie wyłączony to zamrożenie "znika".

2. Wymagania:

- plugin był tworzony na wersje 1.10
- skript 2.2

3. Changelog (zmiany):

1.0 wydanie pluginu
1.1: usunięcie bossbara, poprawienie kilku wiadomości
1.2: przepisanie pluginu na nowo

4. Pobieranie:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! | Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! | Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! FTcTdTK.png

5. Komendy, uprawnienia:

/freeze [nick] - freeze.admin

6. Skript API:

freeze the %player%
unfreeze the %player%

Dzięki za przeczytanie i korzystanie. :)
Dawajcie swoje propozycje co mogę dodać do pluginu. :)
Jeśli coś nie działa to też napiszcie. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Do tego nie potrzeba Cfg. Wystarczy dodać if w onEnable który bedzie sprawdzał czy dany plugin jest. Jak jest to bedzie zwracało true a jak nie to false. Potem tam gdzie wykorzystujesz BarApi dajesz ifa w którym pobierasz wartość sprawdzenia z onEnable(true lub false) i przyrównujesz do wartości True. Jeśli jest True=True to wykonuje sie ten if:)

Odnośnik do komentarza
Udostępnij na innych stronach

@kebabking1337 dokładnie to co zaraz powiem może nie jest odpowiednie, ale np. możesz to stosować do trollowania, łapania haxów, tzw. "banowania" w sensie, zamiast bana to freeza, ale bolek przecież po wyłączeniu serwera on może się ruszać, tak on może się ruszać, ale to nie o to chodzi. Ludzie mądrzy znajdą zastosowanie. Nie że kogoś obrażam tym tylko chodzi mi że taki administrator znajdzie rozwiązanie dla tego pluginu, a po za tym to jest mój pierwszy plugin i ja się dopiero uczę i nie mam takich fajnych pomysłów jakby. :)

Trzeba poprostu znaleźć zastosowanie, bo inaczej jest on tak jak powiedziałeś bez sensu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
O Sunday, February 28, 2016 at 15:22, ivall napisał:

Mógł byś zmienić Opis pluginu 

Ponieważ to nie jest mega wytłumaczone...

I nie musi. Natomiast twoja wypowiedz tez jest niezrozumiała "Ponieważ Piszesz Takim Stylem".

#antyNorbi

Plugin bardzo fajny :) Dodaj możliwość zamrażanie czasowe.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

Wklej kod na githuba, by ktoś kto ogarnia mógł go poprawić. ;) //Jest na Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!  ~bvcz

W dodatku nie słuchaj się, że na 1.8 widać smoka bo można bardzo łatwo to ominąć, z tego co się orientuję, a jeśli chcesz zrobić opcjonalne używanie tego API, to dodaj do plugin.yml linijkę z dependem, bo API może się włączyć po twoim pluginie.

 

Nie słuchaj się użytkownika @jahumen, który każe ci zapisywać zamrożonych graczy graczy w plikach yml.. albo co gorsza do bazy danych. Baza danych ma zastosowanie wymiany danych pomiędzy serwerami, a yaml? Służy do niczego innego jak konfiguracji, na zapis czegoś takiego możesz wykorzystać spokojnie gson.

 

Ogółem kod bez szału, duzo rzeczy bym poprawił, ale na telefonie jest niewygodnie.

Edytowane przez bartzzDev
Zwrócenie uwagi na błędy.
Odnośnik do komentarza
Udostępnij na innych stronach

Ocenie twój plugin:


Wady:
1. ArrayListy: tym więcej graczy będziesz zamrażał, tym więcej ramu będzie twój serwer zużywał. A po restarcie serwera każdy gracz zostanie odmrożony, ponieważ ArrayListy się nie zapisują. To znaczy, że plugin jest prawie bezużyteczny.
2. Kod: tu i tam są funkcje w pluginie które są totalnie zbędne. Tu i tam można też zauważyć, że nie wytabowałeś dobrze.
3. Język: jeżeli piszesz angielski plugin i go publikujesz na polskim forum, to dodaj możliwość zmiany wiadomości w cfg.

Plusy:
1. Wspiera Skrypta: Genialne! Bardzo dobrze działa!

Ocena: 7.5/10

___ offtop:

Zrobilem własny plugin, który działa na tej zasadzie. Plugin zapisuje zamrożonych graczy w plikach gracza! (nudzilem sie...)

Kod:

Spoiler

package de.adamandrzej02.Main;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Freeze extends JavaPlugin implements CommandExecutor, Listener{

    @Override
    public void onEnable() {
        getCommand("freeze").setExecutor(this);
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
    }
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        Player p = Bukkit.getPlayer(args[0]);
        if (args.length == 1) {
            if (sender.hasPermission("andrzej.freeze")) {
                try {
                    if(p.getWalkSpeed() == (float) 0.2) {
                        p.setWalkSpeed(0);
                        sender.sendMessage("§bZamroziles gracza " + p.getName());
                        p.sendMessage("§bZostales zamrozony!");
                    } else {
                        p.setWalkSpeed((float) 0.2);
                        sender.sendMessage("§bOdmroziles gracza " + p.getName());
                        p.sendMessage("§bZostales odmrozony!");
                    }
                } catch (NullPointerException e) {
                    sender.sendMessage("Nie ma takiego gracza!");
                }
            }
        }
        return false;    
    }
    @EventHandler
    public void onMove(PlayerMoveEvent e) {
        Player p = e.getPlayer();
        if(p.getWalkSpeed() < (float) 0.2) {
            e.setCancelled(true);
        }
    }
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        Player p = e.getPlayer();
        if(p.getWalkSpeed() < (float) 0.2) {
            p.sendMessage("§4Uwaga: §cPamietaj ze jestes zamrozony! Nie mozesz sie ruszac!");
        }
    }
}

Jar: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

 

Moja wersja pluginu posiada mniej kodu niż twoja klasa Main w twoim pluginie kieppa

Odnośnik do komentarza
Udostępnij na innych stronach

1 godzinę temu, adamandrzej02 napisał:

Ocenie twój plugin:


Wady:
1. ArrayListy: tym więcej graczy będziesz zamrażał, tym więcej ramu będzie twój serwer zużywał. A po restarcie serwera każdy gracz zostanie odmrożony, ponieważ ArrayListy się nie zapisują. To znaczy, że plugin jest prawie bezużyteczny.
2. Kod: tu i tam są funkcje w pluginie które są totalnie zbędne. Tu i tam można też zauważyć, że nie wytabowałeś dobrze.
3. Język: jeżeli piszesz angielski plugin i go publikujesz na polskim forum, to dodaj możliwość zmiany wiadomości w cfg.

Plusy:
1. Wspiera Skrypta: Genialne! Bardzo dobrze działa!

Ocena: 7.5/10

___ offtop:

Zrobilem własny plugin, który działa na tej zasadzie. Plugin zapisuje zamrożonych graczy w plikach gracza! (nudzilem sie...)

Kod:

Spoiler


package de.adamandrzej02.Main;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Freeze extends JavaPlugin implements CommandExecutor, Listener{

    @Override
    public void onEnable() {
        getCommand("freeze").setExecutor(this);
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
    }
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        Player p = Bukkit.getPlayer(args[0]);
        if (args.length == 1) {
            if (sender.hasPermission("andrzej.freeze")) {
                try {
                    if(p.getWalkSpeed() == (float) 0.2) {
                        p.setWalkSpeed(0);
                        sender.sendMessage("§bZamroziles gracza " + p.getName());
                        p.sendMessage("§bZostales zamrozony!");
                    } else {
                        p.setWalkSpeed((float) 0.2);
                        sender.sendMessage("§bOdmroziles gracza " + p.getName());
                        p.sendMessage("§bZostales odmrozony!");
                    }
                } catch (NullPointerException e) {
                    sender.sendMessage("Nie ma takiego gracza!");
                }
            }
        }
        return false;    
    }
    @EventHandler
    public void onMove(PlayerMoveEvent e) {
        Player p = e.getPlayer();
        if(p.getWalkSpeed() < (float) 0.2) {
            e.setCancelled(true);
        }
    }
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        Player p = e.getPlayer();
        if(p.getWalkSpeed() < (float) 0.2) {
            p.sendMessage("§4Uwaga: §cPamietaj ze jestes zamrozony! Nie mozesz sie ruszac!");
        }
    }
}

Jar: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

 

Moja wersja pluginu posiada mniej kodu niż twoja klasa Main w twoim pluginie kieppa

Lapiesz NullPointerException zabij sie

Odnośnik do komentarza
Udostępnij na innych stronach

26 minut temu, adamandrzej02 napisał:

Jak bym nie dal, to by byl error w konsoli zamiast pieknej wiadomosci.

Hymm, nie wiem czy wiesz ale wyjątki się łapie tylko wtedy gdy lepszego wyjścia nie ma, takie coś to najgorsze i najwolniejsze rozwiązanie, exception żre ostro..

if (player == null)
{
    sender.sendMessage("ten gracz jest offline");
    return true;
}

Polecam doedukowac się.

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...