Dop1
Aktivní člen
Úvod:
Zdravím Vás u mých návodů v programování Spigot/Bukkit pluginů!
V minulém dílu jsme se naučili první příkaz se zprávou. Dnes se naučíme /setspawn a /spawn.
Doufám, že jsem tě mým návodem zaujmul a budeš mě sledovat i nadále. Budu se Vás snažit naučit programovat na profesionální úrovni.
Začátky pluginu:
Uděláme to samé, co minule. Vytvoříme si projekt na nás plugin a importujeme knihovny Spigotu.
Vytvoříme si package, v mém případě cz.dop.spawn.main a v ní classu Main.
Takto si upravíme classu. Vše, co se změnilo je vysvětlené v minulém díle.
Vytvoříme si package, v mém případě cz.dop.spawn.main a v ní classu Main.
Takto si upravíme classu. Vše, co se změnilo je vysvětlené v minulém díle.
Zdrojový kód:
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "Tento plugin je pouze pro hráče!");
return true;
}
Dále si napíšeme string player (p), string zobrazuje hráče, který odeslal příkaz (sender).
Zdrojový kód:
Player p = (Player) sender;
Zdrojový kód:
public void onEnable() {
Bukkit.getServer().getLogger().info("Plugin Spawn se zapnul!");
getConfig();
saveConfig();
}
Zdrojový kód:
if (cmd.getName().equalsIgnoreCase("setspawn")) {
getConfig().set("spawn.world", p.getLocation().getWorld().getName());
getConfig().set("spawn.x", p.getLocation().getX());
getConfig().set("spawn.y", p.getLocation().getY());
getConfig().set("spawn.z", p.getLocation().getZ());
saveConfig();
p.sendMessage(ChatColor.GREEN + "Spawn vytvořen!");
return true;
}
Poté zjistí souřadnice a taktéž je zapíše pod sebe.
Nyní si vytvoříme příkaz /spawn, který bude získavat hodnoty z configu a pak hráče na ně portne.
Zdrojový kód:
if (cmd.getName().equalsIgnoreCase("spawn")) {
if (getConfig().getConfigurationSection("spawn") == null) {
p.sendMessage(ChatColor.RED + "Spawn není setnut!");
return true;
}
World w = Bukkit.getServer().getWorld(getConfig().getString("spawn.world"));
double x = getConfig().getDouble("spawn.x");
double y = getConfig().getDouble("spawn.y");
double z = getConfig().getDouble("spawn.z");
p.teleport(new Location(w, x, y, z));
p.sendMessage(ChatColor.GREEN + "Vítej na spawnu!");
}
return true;
}
Dále pomocí double načte souřadnice z configu.
Hráče portne na souřadnice pomocí p.teleport(new Location(w, x, y, z));
Takže vytvoří novou lokaci pro hráče a je na ní portnut.
Výsledný kód bude vypadat takto:
Zdrojový kód:
package cz.dop.spawn.main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
public void onEnable() {
getConfig();
saveConfig();
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "Tento plugin je pouze pro hráče!");
return true;
}
Player p = (Player) sender;
if (cmd.getName().equalsIgnoreCase("setspawn")) {
getConfig().set("spawn.world", p.getLocation().getWorld().getName());
getConfig().set("spawn.x", p.getLocation().getX());
getConfig().set("spawn.y", p.getLocation().getY());
getConfig().set("spawn.z", p.getLocation().getZ());
saveConfig();
p.sendMessage(ChatColor.GREEN + "Spawn setnut!");
return true;
}
if (cmd.getName().equalsIgnoreCase("spawn")) {
if (getConfig().getConfigurationSection("spawn") == null) {
p.sendMessage(ChatColor.RED + "Spawn není setnutý!");
return true;
}
World w = Bukkit.getServer().getWorld(getConfig().getString("spawn.world"));
double x = getConfig().getDouble("spawn.x");
double y = getConfig().getDouble("spawn.y");
double z = getConfig().getDouble("spawn.z");
p.teleport(new Location(w, x, y, z));
p.sendMessage(ChatColor.GREEN + "Vítej na spawnu!");
}
return true;
}
}
Závěr:
Dnes jsme se naučili příkaz /spawn a /setspawn. Omlouvám se za chyby, které jsem tam neopatrností napsal :emoji_slight_smile:.
U dalšího návodu, ahoj!