Minecraft Plugin programmieren bei klicken auf Item in speziellen Inventar einen Command ausführen?

Minecraft Plugin programmieren bei klicken auf Item in speziellen Inventar einen Command ausführen?

Wie kann man das machen?

Hier ist mein Sourcecode:

	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
		Player p = (Player) sender;
		if(p.hasPermission("rankup.open")) {
			if((sender instanceof Player)) {
				if(args.length == 0) {
					Inventory inventory = Bukkit.createInventory(null, 93, "§6§lRang Shop"); p.sendMessage("§7Du hast das Rank-Up Menü geöffnet!"); p.openInventory(inventory);  
                ItemStack kosten1 = new ItemStack(Material.GOLD_NUGGET);
                ItemMeta ITEMMETA = kosten1.getItemMeta();
                ITEMMETA.setDisplayName("§4§l10.000$");
                kosten1.setItemMeta(ITEMMETA);
                
                ItemStack kosten2 = new ItemStack(Material.GOLD_NUGGET);
                ItemMeta item = kosten2.getItemMeta();
                item.setDisplayName("§4§l100.000$");
                kosten2.setItemMeta(item);
                
                ItemStack kosten3 = new ItemStack(Material.GOLD_NUGGET);
                ItemMeta halt = kosten3.getItemMeta();
                halt.setDisplayName("§4§l1.000.000$");
                kosten3.setItemMeta(halt);
                
                ItemStack diamond = new ItemStack(Material.DIAMOND_BLOCK);
                ItemMeta itemMeta = diamond.getItemMeta();
                itemMeta.setDisplayName("§b§lDiamond Rang");
                diamond.setItemMeta(itemMeta);


                inventory.setItem(11, diamond);
                
                ItemStack ultra = new ItemStack(Material.EMERALD_BLOCK);
                ItemMeta ItemMeta = ultra.getItemMeta();
                ItemMeta.setDisplayName("§a§lUltra Rang");
                ultra.setItemMeta(ItemMeta);
                
                inventory.setItem(13, ultra);
                
                ItemStack supreme = new ItemStack(Material.PURPUR_BLOCK);
                ItemMeta iTemMeta = supreme.getItemMeta();
                iTemMeta.setDisplayName("§d§lSupreme Rang");
                supreme.setItemMeta(iTemMeta);
                
                inventory.setItem(15, supreme);
                
                ItemStack glass = new ItemStack(Material.STAINED_GLASS_PANE);
                ItemMeta itemmeta = glass.getItemMeta();
                itemmeta.setDisplayName("§6Ränge");
                glass.setItemMeta(itemmeta);
                
                inventory.setItem(0, glass);
                inventory.setItem(1, glass);
                inventory.setItem(2, glass);
                inventory.setItem(3, glass);
                inventory.setItem(4, glass);
                inventory.setItem(5, glass);
                inventory.setItem(6, glass);
                inventory.setItem(7, glass);
                inventory.setItem(8, glass);
                inventory.setItem(9, glass);
                inventory.setItem(10, glass);
                inventory.setItem(12, glass);
                inventory.setItem(14, glass);
                inventory.setItem(16, glass);
                inventory.setItem(17, glass);
                inventory.setItem(18, glass);
                inventory.setItem(19, glass);
                inventory.setItem(20, kosten1);
                inventory.setItem(21, glass);
                inventory.setItem(22, kosten2);
                inventory.setItem(23, glass);
                inventory.setItem(24, kosten3);
                inventory.setItem(25, glass);
                inventory.setItem(26, glass);
                inventory.setItem(27, glass);
                inventory.setItem(28, glass);




                      }
                    }
                {
            
            }
            
        }
            
        
    
    return false;
}
@EventHandler
public void onClick(InventoryClickEvent e) {
  if (e.getInventory().getName().equals("§6§lRang Shop")) {
    if (e.getCurrentItem() != null && e.getCurrentItem().getType() != Material.AIR) {
      e.setCancelled(true);   
    }
  }
} 

  } }

Computer, programmieren, Java, Minecraft, Minecraft Server, Minecraft Plugin
Minecraft Plugin programmieren Item verschieben oder droppen verbieten?
Minecraft Plugin programmieren Item verschieben oder droppen verbieten? Dies ist mein Sourcecode:
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

public class RankUpCommand implements CommandExecutor {

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    Player p = (Player) sender;
    if(p.hasPermission("rankup.open")) {
        if((sender instanceof Player)) {
            if(args.length == 0) {
                Inventory inventory = Bukkit.createInventory(null, 9*3, "§6§lRank-Up");
                p.openInventory(inventory);
                p.sendMessage("§7Du hast das Rank-Up Menü geöffnet!");
                
                ItemStack diamond = new ItemStack(Material.DIAMOND);
                ItemMeta itemMeta = diamond.getItemMeta();
                itemMeta.setDisplayName("§b§lDiamond Rang");
                diamond.setItemMeta(itemMeta);


                inventory.setItem(11, diamond);
                
                ItemStack ultra = new ItemStack(Material.BEACON);
                ItemMeta ItemMeta = ultra.getItemMeta();
                ItemMeta.setDisplayName("§b§lUltra Rang");
                ultra.setItemMeta(ItemMeta);
                
                inventory.setItem(13, ultra);
                
                ItemStack supreme = new ItemStack(Material.REDSTONE_BLOCK);
                ItemMeta iTemMeta = supreme.getItemMeta();
                iTemMeta.setDisplayName("§4§lSupreme Rang");
                supreme.setItemMeta(iTemMeta);
                
                inventory.setItem(15, supreme);
                
                ItemStack glass = new ItemStack(Material.STAINED_GLASS_PANE);
                ItemMeta itemmeta = glass.getItemMeta();
                itemmeta.setDisplayName("");
                supreme.setItemMeta(itemmeta);
                
                inventory.setItem(0, glass);
                inventory.setItem(1, glass);
                inventory.setItem(2, glass);
                inventory.setItem(3, glass);
                inventory.setItem(4, glass);
                inventory.setItem(5, glass);
                inventory.setItem(6, glass);
                inventory.setItem(7, glass);
                inventory.setItem(8, glass);
                inventory.setItem(9, glass);
                inventory.setItem(10, glass);
                inventory.setItem(12, glass);
                inventory.setItem(14, glass);
                inventory.setItem(16, glass);
                inventory.setItem(17, glass);
                inventory.setItem(18, glass);
                inventory.setItem(19, glass);
                inventory.setItem(20, glass);
                inventory.setItem(21, glass);
                inventory.setItem(22, glass);
                inventory.setItem(23, glass);
                inventory.setItem(24, glass);
                inventory.setItem(25, glass);
                inventory.setItem(26, glass);
                inventory.setItem(27, glass);
                inventory.setItem(28, glass); {
            
                
            }
            
        }
                }
            }
        
    
    return false;
}


}

Bitte hilft mir!

programmieren, Java, Minecraft, Informatik, Minecraft Server, Minecraft Plugin, Plugin Programmieren
Anwedung für Autoradio selbst programmieren?

Hallo liebe Community,

ich fahre einen Volvo S40 II (BJ2006). Ein Problem bei diesem Modell ist, dass dort kein DIN Radio mehr verbaut wurde. Dementsprechend ist ein Austausch nicht wirklich möglich. Zumindest sagt das das Internet. Aber ich will dem Ganzen trotzdem gerne eine Chance geben. Denn zum Einen vermisse ich Bluetooth/AUX zum Anderen ist seit kurzem ein Pixelfehler bei mir aufgetreten, der mit jedem "Auto starten" größer wird (siehe Bild1). Nun zu meiner Idee: Das Radio auszutauschen ist an sich machbar. Im Internet findet man dazu die passenden Adapter (siehe Bild2) und notfalls kann man sich auch sicherlich einen solchen selbst basteln. Also CD-Player und Display raus, neues (Android-)Radio rein. Allerdings ist es damit leider noch lange nicht getan. Prolem 1: Kein Radio passt wirklich in den Schacht. Lösung hier: einen Adapter im CAD (durch berufliche Kenntnisse eine Kleinigkeit) konstruieren und 3D-Drucken. Jetzt aber zu Problem 2 und hier wird es nun echt kompliziert: Das Fahrzeug hat einen Display (Radioeinheit), welcher Informationen, wie beispielsweise die Stärke der Lüfter oder die Lautstärke anzeigt. Bei dessen Austausch würden derartige Informationen verloren gehen. Möglichkeit 1 wäre ein relativ aufwendiger Umbau (und würde außerdem mein Pixelproblem nicht beheben) (siehe Bild 3). Möglichkeit 2 läge preislich auf der Ebene eines Gaming-PCs (siehe Bild 4). Und hier hoffe ich, dass ihr mir weiterhefen könnt. Ich weiß, dass man Android-Apps auch selbst schreiben kann, da ich einige Kollegen kenne, die das können (ich kann auch kleine Tools schreiben, allerdings nur am PC [VBA, JAVA], bin mir aber sicher, dass ich notfalls auch herrausfinde, wie man eine App schreibt). Aber nur durch eine App löst sich ja das Problem noch nicht.

Irgendwie muss ich ja schließlich die Informationen von den Reglern der Mittelkonsole auf das Android-Radio übertragen. Kann mir hier jemand sagen, ob und wie das Möglich wäre? Also einen Lötkolben und Drähte besitze ich. Irgendwie wird ja aktuell auch über eine elektrisches Signal eine Information an das Display gegeben und diesen Output würde ich jetzt gerne mit dem Android-Radio koppeln.

Ab Oktober werde ich beginnen "Technische Informatik" (also u.a. auch E-Technik bzw. Hardwareprogrammierung) zu studieren. Ich denke spätestens im Laufe diesen Studiums werde ich eine Lösung für mein Problem finden, aber ich würde das Ganze lieber schon vorher angehen. Also für Ideen und Ratschläge wäre ich euch sehr dankbar! Sollte ich alleine zu einer Lösung kommen, werde ich diese hier posten, damit andere mit dem selben Problem sich diese kopieren können.

MfG Leon

Anhänge:

Bild 1:

Bild 2:

Bild 3:

Bild 4:

Bild zum Beitrag
Computer, Auto, KFZ, Technik, Hardware, programmieren, Elektrik, Autoradio, Android, Technologie
SoftwareSerial wie benutzen?

Hallo an die Arduino- Community,

Ich habe mich ja schon sehr viel mit dem Arduino beschäftigt, aber natürlich nicht genug und es ist wahrscheinlich auch nur ein Bruchteil des Möglichen. So genug drum gelabert, zu meiner Frage: Ich benutze die App Blynk zusammen mit dem Arduino Uno, diese muss zum funktionieren eine durchgehende Verbindung zu meinem Serial Port (COM4 in meinem aktuellen Fall) haben, damit die funktioniert. Das bedeutet natürlich, dass ich meinen Seriellen Monitor nicht offen haben kann, da der ja ebenfalls auf den Port zugreifen muss, und nur 1 gleichzeitig geht.

Ich habe aber gehört, ich kann über den SoftwareSerial - Befehl einen zweiten Seriellen Monitor haben... Weiß nur gar nicht, wie der funktioniert, frei hätte ich aktuell die Pins 7 und 8 dafür.

Wie kann ich diesen zweiten Serial erstellen und IHN AUCH ÖFFNEN?

Ich möchte da auf dem Serial2.print nutzen, geht das? (Ich will ihn quasi, wie einen ganz normalen Seriellen Monitor nutzen... Über extra Software geht nichts. Ich habe zumindest schon PuTTY probiert, da öffnet der aber den Port nicht. )

Hier mein bisheriger Code: Blynk braucht halt einen der Seriellen Ports zum funktionieren, was muss ich hier anders machen? (müsst glaube ich nicht zwingend Ahnung von der App haben)

#define BLYNK_PRINT DebugSerial
#include <SoftwareSerial.h>
SoftwareSerial DebugSerial(7, 8); // RX, TX
#include <BlynkSimpleStream.h>
char auth[] = "UnFNS1fIbvFVX8QGBWDoBKah3aWND6dn";
void setup() {   DebugSerial.begin(9600);   Serial.begin(9600);   Blynk.begin(Serial, auth);
//anderer stuff
}
void loop () {
Blynk.run();
//zum Beispiel:
if (Buttongedrückt) {
DebugSerial.println("Button gedrückt");
...stuff
}

MFG Alex - Freue mich auf eure Antworten!

Software, programmieren, Arduino, cmd, C (Programmiersprache), RX, TX, Serielle Schnittstelle

Meistgelesene Beiträge zum Thema Programmieren