• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!
  • Dies ist ein moderiertes Forum. Dein Beitrag ist für dich und andere erst sichtbar, wenn er von einem Teammitglied moderiert wurde! Wird dein Beitrag abgelehnt erhältst du eine Meldung. Bitte erstelle so lange keine neuen Beiträge! Die Freischaltung wird auch nicht durch Nachfragen bei einem Teammitglied beschleunigt.

Ideen

TheRedViper

Minecrafter
Registriert
12 Juni 2016
Beiträge
2
Alter
36
Diamanten
300
Heyy liebe Community,

ich bin ein leidenschaftlicher Java Developer und Programmiere unter anderem auch Plugins für Minecraft. Ich programmiere seid ca. 2 - 3 Jahren schon Plugins. Ich wollte mal fragen ob ihr vielleicht ein paar Ideen habt was ich für EUCH programmiere :). Oder ihr habt einfach coole Plugin Ideen. Ich programmiere alles, sei es ein kleines PvP Plugin oder ein komplexes Cloud System. Einfach per PN benachrichtigen :). Weite Kontaktdaten gibt es per PN. Ich programmiere auf eure Wünsche, und mache auch auf Wunsch einen vermerk rein das die Idee von dir ist :)

Ich arbeite kostenlos!!! Und ich verlange keine Bezahlung da ich dies zum Spaß mache! Ich bin auch an keinem Projekt Interessiert,


Bei Interesse bitte per PN melden.

Hier eine Referenz: KLICK
PS: Testet es auf spigot Version 1.8.8 sonst gibt es einen Fehler!
[Code weiter unten in den Kommentaren]

MfG
TheRedViper
 
Zuletzt bearbeitet:

jens1o

Workaholic
Registriert
28 Juli 2015
Beiträge
644
Alter
23
Diamanten
254
Minecraft
jens1o
Schon rein gemacht.
Autsch...
Das ist nicht von dir.

Das Plugin ist, offensichtlich, von @DerModderDEV

http://hastebin.com/kecirahose.avrasm
Code:
Bukkit.getConsoleSender().sendMessage("\u00a74[ZombieHorde] \u00a72wurde gestartet!");
Bukkit.getConsoleSender().sendMessage("\u00a74[ZombieHorde] \u00a72Developer: DerModderDEV");
Bukkit.getConsoleSender().sendMessage("\u00a74[ZombieHorde] \u00a72Version: " + this.getDescription().getVersion());
Code:
System.out.println("Du bist kein Spieler!");
Benutze bitte den Bukkit Logger... Wenn du auf den nicht zugreifen kannst, erstelle dir in der Main Klasse einen Getter für die Main Klasse.

Das nenne ich eine gute Referenz. Entweder du hast 2 Accounts... was verboten ist... oder du hast nur die Package Namen geändert.

Gruß,
Jens
 

TheRedViper

Minecrafter
Registriert
12 Juni 2016
Beiträge
2
Alter
36
Diamanten
300
NEIN! Ich habe das nicht alleine gemacht! Ich habe das mit @DerModderDEV zusammen gemacht. Und das wir nicht beide Personen erwähnt haben wahr ein Fehler.

Und hier ist eins was ich ALLEINE gemacht habe: klick

PS: Teste es auf der 1.8.8 bezüglich Packages.

Hier ist der Code:
Javascript:
package me.TheRedViper.NPCFake;

import org.bukkit.command.Command;
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.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener {

    public static NPC npc;
    public static boolean isRun = false;
   
    @Override
    public void onEnable() {

        getServer().getPluginManager().registerEvents(this, this);
        getCommand("npc").setExecutor(this);
    }
   
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
       
        Player p = (Player) sender;   
       
        if(args.length == 0) {
           
            npc = new NPC(p.getLocation(), "TheRedViper");
            npc.spawn();
        } else if(args.length == 1) {
            if(args[0].equalsIgnoreCase("destroy")) {
                npc.destroyEntity();
            }
            if(args[0].equalsIgnoreCase("sleep")) {
                npc.sleep(true);
            }
           
            if(args[0].equalsIgnoreCase("sleepoff")) {
                npc.sleep(false);
            }
        }
       
        return true;
    }
   
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        PacketReader reader = new PacketReader(e.getPlayer());
        reader.inject();
    }
   

}

Javascript:
package me.TheRedViper.NPCFake;

import java.util.List;
import java.util.UUID;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_8_R3.util.CraftChatMessage;
import org.bukkit.entity.Player;

import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;

import net.minecraft.server.v1_8_R3.BlockPosition;
import net.minecraft.server.v1_8_R3.DataWatcher;
import net.minecraft.server.v1_8_R3.ItemStack;
import net.minecraft.server.v1_8_R3.MathHelper;
import net.minecraft.server.v1_8_R3.PacketPlayOutAnimation;
import net.minecraft.server.v1_8_R3.PacketPlayOutBed;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntity.PacketPlayOutEntityLook;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityEquipment;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityHeadRotation;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityStatus;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport;
import net.minecraft.server.v1_8_R3.PacketPlayOutNamedEntitySpawn;
import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo;
import net.minecraft.server.v1_8_R3.WorldSettings.EnumGamemode;

public class NPC extends Reflections {
   
    int entityID;
    Location location;
    GameProfile gameProfile;
   
    public NPC(Location location, String name) {
       
        entityID = (int) Math.ceil(Math.random() * 1000) + 2000;
        gameProfile = new GameProfile(UUID.randomUUID(), name);
        changeSkin();
        this.location = location;
    }
   
    public void changeSkin() {
       
        String value = "eyJ0aW1lc3RhbXAiOjE0NjQ3MDk2MzgxNDMsInByb2ZpbGVJZCI6IjNjNGFmODc0NGQ5YjQ2ZTA5NWVmYWIwYTR"
                + "hMmQ4MzE1IiwicHJvZmlsZU5hbWUiOiJEaWVGZXJuYmVkaWVudW5nIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRl"
                + "eHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81ZjMwNmE2MmE"
                + "wN2QxMzM2OGZiN2QyZTc1NDA1ZWZmMjJiM2Q1ZWFmMDEwNDUxNjg0NGVmMDI0MmJkYjYwZDgifX19";
       
        String signatur = "yjH0SXqjNoHb+jdryepgz2DnmpxWkckOD3Ro7DDUckWbsPQ/HDM12oGig+rWtSKJYHDD+0/swKF0"
                + "xaA66ux23HdXkLR7fjc7nu/u5acVz2cmArCdmxXpT1i+PO6lu2Vp/mj0F0C4dV0PswAltd4tGV6MXsSP0rrwosv"
                + "4zB8xnkEH1bwC05Hu0siWV/viHExwkmi46P8xXvz473jrVb4ATgRxUw0vX3n41Ws3/f/OugZqIrfcBvn59NZnL6"
                + "YtqOCM29PH2M8eq1AX+foWsJpn/g9Y/JqwIKgDkam3iL4MaghMkC9Qq2aqCa3Q8a2MEgrdItpitAH78Xmca4JxX6"
                + "48AORFrsVJQ9ui8nAsHc4kY9yUDIFVOUgc+7YVcdLIEIclHwnCUXlFQwOWdWKpf5pRShdD6HkjQEBKUl2sVe54Ga"
                + "0SYS/cnUaO0VJwGN7bbT8/o4w5Wi3CUEna4PykfYIPip0q5u7nuo3SZN2rZj+ZkBIaQd2w2TdcZWSf6asL2O68Ul"
                + "yOu+UTokSjOUd6iGTIcD7VexxRSXvle5tSDLRPT2/J1/oslfUeG4WTBSnzvbqBdx4d2C5/xnwzi9tmpFGhqMxO0ZZb"
                + "xc2n6rLl1/vGw8ID6AZOdew60bxVnXxpjiMwLKBPZ21mS+OdOnxLhApOABv1HG895Hhdpo6n2m0VQxY=";
        gameProfile.getProperties().put("textures", new Property("textures", value, signatur));
       
    }
   
    public void animation(int animation) {
        PacketPlayOutAnimation packet = new PacketPlayOutAnimation();
        setValue(packet, "a", entityID);
        setValue(packet, "b", (byte) animation);
        sendPacket(packet);
    }
   
    public void status(int status) {
        PacketPlayOutEntityStatus packet = new PacketPlayOutEntityStatus();
        setValue(packet, "a", entityID);
        setValue(packet, "b", (byte) status);
        sendPacket(packet);
    }
   
    public void equip(int slot, ItemStack itemstack) {
        PacketPlayOutEntityEquipment packet = new PacketPlayOutEntityEquipment();
        setValue(packet, "a", entityID);
        setValue(packet, "b", slot);
        setValue(packet, "c", itemstack);
        sendPacket(packet);
    }
   
    @SuppressWarnings("deprecation")
    public void sleep(boolean state) {
        if(state) {
            Location bedLocation = new Location(location.getWorld(), 1, 1, 1);
            PacketPlayOutBed packet = new PacketPlayOutBed();
            setValue(packet, "a", entityID);
            setValue(packet, "b", new BlockPosition(bedLocation.getX(), bedLocation.getY(), bedLocation.getZ()));
           
            for(Player p : Bukkit.getOnlinePlayers()) {
                p.sendBlockChange(bedLocation, Material.BED_BLOCK, (byte) 0);
            }
           
            sendPacket(packet);
            teleport(location.clone().add(0, 0.3, 0));
        } else {
            animation(2);
            teleport(location.clone().subtract(0, 0.3, 0));
        }
    }
   
    public void spawn() {
        PacketPlayOutNamedEntitySpawn packet = new PacketPlayOutNamedEntitySpawn();
        setValue(packet, "a", entityID);
        setValue(packet, "b", gameProfile.getId());
        setValue(packet, "c", getFixLocation(location.getX()));
        setValue(packet, "d", getFixLocation(location.getY()));
        setValue(packet, "e", getFixLocation(location.getZ()));
        setValue(packet, "f", getFixRotation(location.getYaw()));
        setValue(packet, "g", getFixRotation(location.getPitch()));
        setValue(packet, "h", 0);
        DataWatcher w = new DataWatcher(null);
        w.a(6, 20F);
        w.a(10, (byte) 127);
        setValue(packet, "i", w);
        addToTabList();
        sendPacket(packet);
    }
   
    public void teleport(Location loc) {
        PacketPlayOutEntityTeleport packet = new PacketPlayOutEntityTeleport();
        setValue(packet, "a", entityID);
        setValue(packet, "b", getFixLocation(loc.getX()));
        setValue(packet, "c", getFixLocation(loc.getY()));
        setValue(packet, "d", getFixLocation(loc.getZ()));
        setValue(packet, "e", getFixRotation(loc.getYaw()));
        setValue(packet, "f", getFixRotation(loc.getPitch()));
       
        sendPacket(packet);
        this.location = loc;
        headRotation(loc.getYaw(), loc.getPitch());
    }
   
    public void headRotation(float yaw, float pitch) {
       
        PacketPlayOutEntityLook packet = new PacketPlayOutEntityLook(entityID, getFixRotation(yaw), getFixRotation(pitch), true);
        PacketPlayOutEntityHeadRotation packetHead = new PacketPlayOutEntityHeadRotation();
        setValue(packetHead, "a", entityID);
        setValue(packetHead, "b", getFixRotation(yaw));
       
        sendPacket(packet);
        sendPacket(packetHead);
    }
   
    public void destroyEntity() {
        PacketPlayOutEntityDestroy packet = new PacketPlayOutEntityDestroy(new int[] {entityID});
        removeFromTablist();
        sendPacket(packet);
    }
   
   
    @SuppressWarnings("unchecked")
    public void addToTabList() {
        PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo();
        PacketPlayOutPlayerInfo.PlayerInfoData data = packet.new PlayerInfoData(gameProfile, 1, EnumGamemode.NOT_SET,
                CraftChatMessage.fromString(gameProfile.getName())[0]);
       
        List<PacketPlayOutPlayerInfo.PlayerInfoData> players = (List<PacketPlayOutPlayerInfo.PlayerInfoData>) getValue(packet, "b");
        players.add(data);
       
        setValue(packet, "a", PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER);
        setValue(packet, "b", players);
        sendPacket(packet);
    }
   
    @SuppressWarnings("unchecked")
    public void removeFromTablist() {
        PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo();
        PacketPlayOutPlayerInfo.PlayerInfoData data = packet.new PlayerInfoData(gameProfile, 1, EnumGamemode.NOT_SET,
                CraftChatMessage.fromString(gameProfile.getName())[0]);
       
        List<PacketPlayOutPlayerInfo.PlayerInfoData> players = (List<PacketPlayOutPlayerInfo.PlayerInfoData>) getValue(packet, "b");
        players.add(data);
       
        setValue(packet, "a", PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER);
        setValue(packet, "b", players);
        sendPacket(packet);
       
    }
   
    public int getFixLocation(double pos) {
        return (int) MathHelper.floor(pos * 32.00);
    }
   
    public int getEntityId() {
        return entityID;
    }
   
    public byte getFixRotation(float yawPitch) {
        return (byte) ((int) (yawPitch * 256.0F / 360.0F));
    }
   
    public Location getLocation() {
        return location;
    }
   
    public int getEntityID() {
        return entityID;
    }
}

Javascript:
package me.TheRedViper.NPCFake;

import java.lang.reflect.Field;

import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;

import net.minecraft.server.v1_8_R3.Packet;

public class Reflections {

    public void setValue(Object obj, String name, Object value) {
        try {
            Field field = obj.getClass().getDeclaredField(name);
            field.setAccessible(true);
            field.set(obj, value);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public Object getValue(Object obj, String name) {
        try {
            Field field = obj.getClass().getDeclaredField(name);
            field.setAccessible(true);
            return field.get(obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public void sendPacket(Packet<?> packet, Player p) {
        ((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet);
    }

    public void sendPacket(Packet<?> packet) {
        for (Player o : Bukkit.getOnlinePlayers()) {
            sendPacket(packet, o);
        }
    }

}

Javascript:
package me.TheRedViper.NPCFake;

import java.lang.reflect.Field;
import java.util.List;

import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;

import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageDecoder;
import net.minecraft.server.v1_8_R3.Packet;

public class PacketReader {

    Player player;
    Channel channel;

    public PacketReader(Player player) {
        this.player = player;
    }

    public void inject() {
        CraftPlayer cPlayer = (CraftPlayer) this.player;
        channel = cPlayer.getHandle().playerConnection.networkManager.channel;
        channel.pipeline().addAfter("decoder", "PacketInjector", new MessageToMessageDecoder<Packet<?>>() {
            @Override
            protected void decode(ChannelHandlerContext arg0, Packet<?> packet, List<Object> arg2) throws Exception {
                arg2.add(packet);
                readPacket(packet);
            }
        });
       
    }

    public void uninject() {
        if (channel.pipeline().get("PacketInjector") != null) {
            channel.pipeline().remove("PacketInjector");
        }
    }

    public void readPacket(Packet<?> packet) {
        if(packet.getClass().getSimpleName().equalsIgnoreCase("PacketPlayInUseEntity")) {
            int id = (Integer) getValue(packet, "a");
           
            if(Main.npc.entityID == id) {
                if(getValue(packet, "action").toString().equalsIgnoreCase("ATTACK")) {
                    Main.npc.animation(1);
                } else if(getValue(packet, "action").toString().equalsIgnoreCase("INTERACT")) {
                    if(Main.isRun) {
                        Main.isRun = false;
                        player.sendMessage("§4Der Charachter läuft nun nicht mehr!");
                    } else {
                        Main.isRun = true;
                        player.sendMessage("§4Der Charachter läuft nun!");
                    }
                } else if(getValue(packet, "action").toString().equalsIgnoreCase("INTERACT_AT")) {
                   
                }
            }
           
        }
    }

    public void setValue(Object obj, String name, Object value) {
        try {
            Field field = obj.getClass().getDeclaredField(name);
            field.setAccessible(true);
            field.set(obj, value);
        } catch (Exception e) {
        }
    }
   
    public Object getValue(Object obj, String name) {
        try {
            Field field = obj.getClass().getDeclaredField(name);
            field.setAccessible(true);
            return field.get(obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

}
 
V

Verschraubt

Guest
Erinnert mich an die NPC Klasse von GerVOBIS

Gesendet von meinem SM-G800F mit Tapatalk
 

TheRedViper

Minecrafter
Registriert
12 Juni 2016
Beiträge
2
Alter
36
Diamanten
300
Heyy Verschraubt,

Ich kann dir versichern das ich nichts "abgecoded" habe. Meine Codes sind meine eigen Kreation. Ich habe mir fast alles bezüglich Packets selber beigebracht.
 

DJKhaled

Kuhfänger
Registriert
29 Mai 2016
Beiträge
77
Diamanten
250
Von Kingcraft:

Hallo Zusammen

Ich suche ein jemanden der ein Aktien Plugin Programmieren kann.


Was das Plugin besitzen sollte:

- Automatische Anstieg oder abstieg der Aktien

- Aktien mit ingame Geld kaufbar

- Aktien Konto

- Aktien Infos

- Aktien kauf Begrenzung

- Börsen Crash


Wer Interesse hätte per Nachricht melden.



Viel Spaß, in einem Jahr können wir dann das fertige Plugin testen ;)
 

NerdAntenneWirS

Minecrafter
Registriert
11 Juni 2016
Beiträge
12
Diamanten
0
Ein Aktien-Plugin Programmierung ist nicht schwer, aber sie funktionieren ganz anders. Diese Anforderung wurde nur schlecht gemacht und es fehlt jegliches Verständnis für das Problem selbst.
 

DJKhaled

Kuhfänger
Registriert
29 Mai 2016
Beiträge
77
Diamanten
250
Ein Aktien-Plugin Programmierung ist nicht schwer, aber sie funktionieren ganz anders. Diese Anforderung wurde nur schlecht gemacht und es fehlt jegliches Verständnis für das Problem selbst.

Problem? Habe ich mich nicht gut ausgedrückt? Ich möchte ein Economy Plugin mit einstellbaren Messages (Messages.yml)
Dazu noch eine Aktien Funktion die viele Features hat.

Welche Features? Dazu könnte ich eine lange Liste schreiben:

Börsencrash

Goldwert

selbst erstellte Unternehmensaktien (? Nennt man es so? :d)

Einbindung in eine Homepage

Mithilfe von Frames Ingame den Aktuellen Kurs anzeigen lassen

etc.


Leider kann ich nicht programmieren :( sonst hätte ich selber mein Vorhaben realisiert.
 
Oben