ServerPlugin Ideen

Dieses Thema im Forum "Programmierung" wurde erstellt von TheRedViper, 12. Juni 2016.

  1. TheRedViper
    Offline

    TheRedViper

    Registriert seit:
    12. Juni 2016
    Beiträge:
    9
    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
     
    #1
  2. jensIO
    Offline

    jensIO

    Registriert seit:
    28. Juli 2015
    Beiträge:
    602
    Ort:
    Internet, im Neuland
    Minecraft:
    jens1o
    Referenzen? Erfahrungen?
     
    #2
  3. TheRedViper
    Offline

    TheRedViper

    Registriert seit:
    12. Juni 2016
    Beiträge:
    9
    Schon rein gemacht.
     
    #3
  4. jensIO
    Offline

    jensIO

    Registriert seit:
    28. Juli 2015
    Beiträge:
    602
    Ort:
    Internet, im Neuland
    Minecraft:
    jens1o
    Autsch...
    Das ist nicht von dir.

    Das Plugin ist, offensichtlich, von @DerModderDEV

    http://hastebin.com/kecirahose.avrasm
    Code (Text):
    1. Bukkit.getConsoleSender().sendMessage("\u00a74[ZombieHorde] \u00a72wurde gestartet!");
    2. Bukkit.getConsoleSender().sendMessage("\u00a74[ZombieHorde] \u00a72Developer: DerModderDEV");
    3. Bukkit.getConsoleSender().sendMessage("\u00a74[ZombieHorde] \u00a72Version: " + this.getDescription().getVersion());
    Code (Text):
    1. 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
     
    #4
  5. TheRedViper
    Offline

    TheRedViper

    Registriert seit:
    12. Juni 2016
    Beiträge:
    9
    Doch das ist von mir und @DerModderDEV da wir alte Freunde sind. Ist ein recht altes Plugin.
     
    #5
  6. jensIO
    Offline

    jensIO

    Registriert seit:
    28. Juli 2015
    Beiträge:
    602
    Ort:
    Internet, im Neuland
    Minecraft:
    jens1o
    Dann erwähnt man einfach beide Personen... Wenn du behauptest, das es ausschließlich DEINE Referenz ist, gehe ich davon aus, dass du dieses ALLEINE gemacht hast.
     
    #6
  7. TheRedViper
    Offline

    TheRedViper

    Registriert seit:
    12. Juni 2016
    Beiträge:
    9
    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:
    Code (Javascript):
    1. package me.TheRedViper.NPCFake;
    2.  
    3. import org.bukkit.command.Command;
    4. import org.bukkit.command.CommandSender;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.player.PlayerJoinEvent;
    9. import org.bukkit.plugin.java.JavaPlugin;
    10.  
    11. public class Main extends JavaPlugin implements Listener {
    12.  
    13.     public static NPC npc;
    14.     public static boolean isRun = false;
    15.    
    16.     @Override
    17.     public void onEnable() {
    18.  
    19.         getServer().getPluginManager().registerEvents(this, this);
    20.         getCommand("npc").setExecutor(this);
    21.     }
    22.    
    23.     @Override
    24.     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    25.        
    26.         Player p = (Player) sender;  
    27.        
    28.         if(args.length == 0) {
    29.            
    30.             npc = new NPC(p.getLocation(), "TheRedViper");
    31.             npc.spawn();
    32.         } else if(args.length == 1) {
    33.             if(args[0].equalsIgnoreCase("destroy")) {
    34.                 npc.destroyEntity();
    35.             }
    36.             if(args[0].equalsIgnoreCase("sleep")) {
    37.                 npc.sleep(true);
    38.             }
    39.            
    40.             if(args[0].equalsIgnoreCase("sleepoff")) {
    41.                 npc.sleep(false);
    42.             }
    43.         }
    44.        
    45.         return true;
    46.     }
    47.    
    48.     @EventHandler
    49.     public void onJoin(PlayerJoinEvent e) {
    50.         PacketReader reader = new PacketReader(e.getPlayer());
    51.         reader.inject();
    52.     }
    53.    
    54.  
    55. }
    56.  

    Code (Javascript):
    1. package me.TheRedViper.NPCFake;
    2.  
    3. import java.util.List;
    4. import java.util.UUID;
    5.  
    6. import org.bukkit.Bukkit;
    7. import org.bukkit.Location;
    8. import org.bukkit.Material;
    9. import org.bukkit.craftbukkit.v1_8_R3.util.CraftChatMessage;
    10. import org.bukkit.entity.Player;
    11.  
    12. import com.mojang.authlib.GameProfile;
    13. import com.mojang.authlib.properties.Property;
    14.  
    15. import net.minecraft.server.v1_8_R3.BlockPosition;
    16. import net.minecraft.server.v1_8_R3.DataWatcher;
    17. import net.minecraft.server.v1_8_R3.ItemStack;
    18. import net.minecraft.server.v1_8_R3.MathHelper;
    19. import net.minecraft.server.v1_8_R3.PacketPlayOutAnimation;
    20. import net.minecraft.server.v1_8_R3.PacketPlayOutBed;
    21. import net.minecraft.server.v1_8_R3.PacketPlayOutEntity.PacketPlayOutEntityLook;
    22. import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
    23. import net.minecraft.server.v1_8_R3.PacketPlayOutEntityEquipment;
    24. import net.minecraft.server.v1_8_R3.PacketPlayOutEntityHeadRotation;
    25. import net.minecraft.server.v1_8_R3.PacketPlayOutEntityStatus;
    26. import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport;
    27. import net.minecraft.server.v1_8_R3.PacketPlayOutNamedEntitySpawn;
    28. import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo;
    29. import net.minecraft.server.v1_8_R3.WorldSettings.EnumGamemode;
    30.  
    31. public class NPC extends Reflections {
    32.    
    33.     int entityID;
    34.     Location location;
    35.     GameProfile gameProfile;
    36.    
    37.     public NPC(Location location, String name) {
    38.        
    39.         entityID = (int) Math.ceil(Math.random() * 1000) + 2000;
    40.         gameProfile = new GameProfile(UUID.randomUUID(), name);
    41.         changeSkin();
    42.         this.location = location;
    43.     }
    44.    
    45.     public void changeSkin() {
    46.        
    47.         String value = "eyJ0aW1lc3RhbXAiOjE0NjQ3MDk2MzgxNDMsInByb2ZpbGVJZCI6IjNjNGFmODc0NGQ5YjQ2ZTA5NWVmYWIwYTR"
    48.                 + "hMmQ4MzE1IiwicHJvZmlsZU5hbWUiOiJEaWVGZXJuYmVkaWVudW5nIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRl"
    49.                 + "eHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81ZjMwNmE2MmE"
    50.                 + "wN2QxMzM2OGZiN2QyZTc1NDA1ZWZmMjJiM2Q1ZWFmMDEwNDUxNjg0NGVmMDI0MmJkYjYwZDgifX19";
    51.        
    52.         String signatur = "yjH0SXqjNoHb+jdryepgz2DnmpxWkckOD3Ro7DDUckWbsPQ/HDM12oGig+rWtSKJYHDD+0/swKF0"
    53.                 + "xaA66ux23HdXkLR7fjc7nu/u5acVz2cmArCdmxXpT1i+PO6lu2Vp/mj0F0C4dV0PswAltd4tGV6MXsSP0rrwosv"
    54.                 + "4zB8xnkEH1bwC05Hu0siWV/viHExwkmi46P8xXvz473jrVb4ATgRxUw0vX3n41Ws3/f/OugZqIrfcBvn59NZnL6"
    55.                 + "YtqOCM29PH2M8eq1AX+foWsJpn/g9Y/JqwIKgDkam3iL4MaghMkC9Qq2aqCa3Q8a2MEgrdItpitAH78Xmca4JxX6"
    56.                 + "48AORFrsVJQ9ui8nAsHc4kY9yUDIFVOUgc+7YVcdLIEIclHwnCUXlFQwOWdWKpf5pRShdD6HkjQEBKUl2sVe54Ga"
    57.                 + "0SYS/cnUaO0VJwGN7bbT8/o4w5Wi3CUEna4PykfYIPip0q5u7nuo3SZN2rZj+ZkBIaQd2w2TdcZWSf6asL2O68Ul"
    58.                 + "yOu+UTokSjOUd6iGTIcD7VexxRSXvle5tSDLRPT2/J1/oslfUeG4WTBSnzvbqBdx4d2C5/xnwzi9tmpFGhqMxO0ZZb"
    59.                 + "xc2n6rLl1/vGw8ID6AZOdew60bxVnXxpjiMwLKBPZ21mS+OdOnxLhApOABv1HG895Hhdpo6n2m0VQxY=";
    60.         gameProfile.getProperties().put("textures", new Property("textures", value, signatur));
    61.        
    62.     }
    63.    
    64.     public void animation(int animation) {
    65.         PacketPlayOutAnimation packet = new PacketPlayOutAnimation();
    66.         setValue(packet, "a", entityID);
    67.         setValue(packet, "b", (byte) animation);
    68.         sendPacket(packet);
    69.     }
    70.    
    71.     public void status(int status) {
    72.         PacketPlayOutEntityStatus packet = new PacketPlayOutEntityStatus();
    73.         setValue(packet, "a", entityID);
    74.         setValue(packet, "b", (byte) status);
    75.         sendPacket(packet);
    76.     }
    77.    
    78.     public void equip(int slot, ItemStack itemstack) {
    79.         PacketPlayOutEntityEquipment packet = new PacketPlayOutEntityEquipment();
    80.         setValue(packet, "a", entityID);
    81.         setValue(packet, "b", slot);
    82.         setValue(packet, "c", itemstack);
    83.         sendPacket(packet);
    84.     }
    85.    
    86.     @SuppressWarnings("deprecation")
    87.     public void sleep(boolean state) {
    88.         if(state) {
    89.             Location bedLocation = new Location(location.getWorld(), 1, 1, 1);
    90.             PacketPlayOutBed packet = new PacketPlayOutBed();
    91.             setValue(packet, "a", entityID);
    92.             setValue(packet, "b", new BlockPosition(bedLocation.getX(), bedLocation.getY(), bedLocation.getZ()));
    93.            
    94.             for(Player p : Bukkit.getOnlinePlayers()) {
    95.                 p.sendBlockChange(bedLocation, Material.BED_BLOCK, (byte) 0);
    96.             }
    97.            
    98.             sendPacket(packet);
    99.             teleport(location.clone().add(0, 0.3, 0));
    100.         } else {
    101.             animation(2);
    102.             teleport(location.clone().subtract(0, 0.3, 0));
    103.         }
    104.     }
    105.    
    106.     public void spawn() {
    107.         PacketPlayOutNamedEntitySpawn packet = new PacketPlayOutNamedEntitySpawn();
    108.         setValue(packet, "a", entityID);
    109.         setValue(packet, "b", gameProfile.getId());
    110.         setValue(packet, "c", getFixLocation(location.getX()));
    111.         setValue(packet, "d", getFixLocation(location.getY()));
    112.         setValue(packet, "e", getFixLocation(location.getZ()));
    113.         setValue(packet, "f", getFixRotation(location.getYaw()));
    114.         setValue(packet, "g", getFixRotation(location.getPitch()));
    115.         setValue(packet, "h", 0);
    116.         DataWatcher w = new DataWatcher(null);
    117.         w.a(6, 20F);
    118.         w.a(10, (byte) 127);
    119.         setValue(packet, "i", w);
    120.         addToTabList();
    121.         sendPacket(packet);
    122.     }
    123.    
    124.     public void teleport(Location loc) {
    125.         PacketPlayOutEntityTeleport packet = new PacketPlayOutEntityTeleport();
    126.         setValue(packet, "a", entityID);
    127.         setValue(packet, "b", getFixLocation(loc.getX()));
    128.         setValue(packet, "c", getFixLocation(loc.getY()));
    129.         setValue(packet, "d", getFixLocation(loc.getZ()));
    130.         setValue(packet, "e", getFixRotation(loc.getYaw()));
    131.         setValue(packet, "f", getFixRotation(loc.getPitch()));
    132.        
    133.         sendPacket(packet);
    134.         this.location = loc;
    135.         headRotation(loc.getYaw(), loc.getPitch());
    136.     }
    137.    
    138.     public void headRotation(float yaw, float pitch) {
    139.        
    140.         PacketPlayOutEntityLook packet = new PacketPlayOutEntityLook(entityID, getFixRotation(yaw), getFixRotation(pitch), true);
    141.         PacketPlayOutEntityHeadRotation packetHead = new PacketPlayOutEntityHeadRotation();
    142.         setValue(packetHead, "a", entityID);
    143.         setValue(packetHead, "b", getFixRotation(yaw));
    144.        
    145.         sendPacket(packet);
    146.         sendPacket(packetHead);
    147.     }
    148.    
    149.     public void destroyEntity() {
    150.         PacketPlayOutEntityDestroy packet = new PacketPlayOutEntityDestroy(new int[] {entityID});
    151.         removeFromTablist();
    152.         sendPacket(packet);
    153.     }
    154.    
    155.    
    156.     @SuppressWarnings("unchecked")
    157.     public void addToTabList() {
    158.         PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo();
    159.         PacketPlayOutPlayerInfo.PlayerInfoData data = packet.new PlayerInfoData(gameProfile, 1, EnumGamemode.NOT_SET,
    160.                 CraftChatMessage.fromString(gameProfile.getName())[0]);
    161.        
    162.         List<PacketPlayOutPlayerInfo.PlayerInfoData> players = (List<PacketPlayOutPlayerInfo.PlayerInfoData>) getValue(packet, "b");
    163.         players.add(data);
    164.        
    165.         setValue(packet, "a", PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER);
    166.         setValue(packet, "b", players);
    167.         sendPacket(packet);
    168.     }
    169.    
    170.     @SuppressWarnings("unchecked")
    171.     public void removeFromTablist() {
    172.         PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo();
    173.         PacketPlayOutPlayerInfo.PlayerInfoData data = packet.new PlayerInfoData(gameProfile, 1, EnumGamemode.NOT_SET,
    174.                 CraftChatMessage.fromString(gameProfile.getName())[0]);
    175.        
    176.         List<PacketPlayOutPlayerInfo.PlayerInfoData> players = (List<PacketPlayOutPlayerInfo.PlayerInfoData>) getValue(packet, "b");
    177.         players.add(data);
    178.        
    179.         setValue(packet, "a", PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER);
    180.         setValue(packet, "b", players);
    181.         sendPacket(packet);
    182.        
    183.     }
    184.    
    185.     public int getFixLocation(double pos) {
    186.         return (int) MathHelper.floor(pos * 32.00);
    187.     }
    188.    
    189.     public int getEntityId() {
    190.         return entityID;
    191.     }
    192.    
    193.     public byte getFixRotation(float yawPitch) {
    194.         return (byte) ((int) (yawPitch * 256.0F / 360.0F));
    195.     }
    196.    
    197.     public Location getLocation() {
    198.         return location;
    199.     }
    200.    
    201.     public int getEntityID() {
    202.         return entityID;
    203.     }
    204. }
    205.  

    Code (Javascript):
    1. package me.TheRedViper.NPCFake;
    2.  
    3. import java.lang.reflect.Field;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
    7. import org.bukkit.entity.Player;
    8.  
    9. import net.minecraft.server.v1_8_R3.Packet;
    10.  
    11. public class Reflections {
    12.  
    13.     public void setValue(Object obj, String name, Object value) {
    14.         try {
    15.             Field field = obj.getClass().getDeclaredField(name);
    16.             field.setAccessible(true);
    17.             field.set(obj, value);
    18.         } catch (Exception e) {
    19.             e.printStackTrace();
    20.         }
    21.     }
    22.  
    23.     public Object getValue(Object obj, String name) {
    24.         try {
    25.             Field field = obj.getClass().getDeclaredField(name);
    26.             field.setAccessible(true);
    27.             return field.get(obj);
    28.         } catch (Exception e) {
    29.             e.printStackTrace();
    30.         }
    31.         return null;
    32.     }
    33.  
    34.     public void sendPacket(Packet<?> packet, Player p) {
    35.         ((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet);
    36.     }
    37.  
    38.     public void sendPacket(Packet<?> packet) {
    39.         for (Player o : Bukkit.getOnlinePlayers()) {
    40.             sendPacket(packet, o);
    41.         }
    42.     }
    43.  
    44. }

    Code (Javascript):
    1. package me.TheRedViper.NPCFake;
    2.  
    3. import java.lang.reflect.Field;
    4. import java.util.List;
    5.  
    6. import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
    7. import org.bukkit.entity.Player;
    8.  
    9. import io.netty.channel.Channel;
    10. import io.netty.channel.ChannelHandlerContext;
    11. import io.netty.handler.codec.MessageToMessageDecoder;
    12. import net.minecraft.server.v1_8_R3.Packet;
    13.  
    14. public class PacketReader {
    15.  
    16.     Player player;
    17.     Channel channel;
    18.  
    19.     public PacketReader(Player player) {
    20.         this.player = player;
    21.     }
    22.  
    23.     public void inject() {
    24.         CraftPlayer cPlayer = (CraftPlayer) this.player;
    25.         channel = cPlayer.getHandle().playerConnection.networkManager.channel;
    26.         channel.pipeline().addAfter("decoder", "PacketInjector", new MessageToMessageDecoder<Packet<?>>() {
    27.             @Override
    28.             protected void decode(ChannelHandlerContext arg0, Packet<?> packet, List<Object> arg2) throws Exception {
    29.                 arg2.add(packet);
    30.                 readPacket(packet);
    31.             }
    32.         });
    33.        
    34.     }
    35.  
    36.     public void uninject() {
    37.         if (channel.pipeline().get("PacketInjector") != null) {
    38.             channel.pipeline().remove("PacketInjector");
    39.         }
    40.     }
    41.  
    42.     public void readPacket(Packet<?> packet) {
    43.         if(packet.getClass().getSimpleName().equalsIgnoreCase("PacketPlayInUseEntity")) {
    44.             int id = (Integer) getValue(packet, "a");
    45.            
    46.             if(Main.npc.entityID == id) {
    47.                 if(getValue(packet, "action").toString().equalsIgnoreCase("ATTACK")) {
    48.                     Main.npc.animation(1);
    49.                 } else if(getValue(packet, "action").toString().equalsIgnoreCase("INTERACT")) {
    50.                     if(Main.isRun) {
    51.                         Main.isRun = false;
    52.                         player.sendMessage("§4Der Charachter läuft nun nicht mehr!");
    53.                     } else {
    54.                         Main.isRun = true;
    55.                         player.sendMessage("§4Der Charachter läuft nun!");
    56.                     }
    57.                 } else if(getValue(packet, "action").toString().equalsIgnoreCase("INTERACT_AT")) {
    58.                    
    59.                 }
    60.             }
    61.            
    62.         }
    63.     }
    64.  
    65.     public void setValue(Object obj, String name, Object value) {
    66.         try {
    67.             Field field = obj.getClass().getDeclaredField(name);
    68.             field.setAccessible(true);
    69.             field.set(obj, value);
    70.         } catch (Exception e) {
    71.         }
    72.     }
    73.    
    74.     public Object getValue(Object obj, String name) {
    75.         try {
    76.             Field field = obj.getClass().getDeclaredField(name);
    77.             field.setAccessible(true);
    78.             return field.get(obj);
    79.         } catch (Exception e) {
    80.             e.printStackTrace();
    81.         }
    82.         return null;
    83.     }
    84.  
    85. }
     
    #7
    jensIO gefällt das.
  8. jensIO
    Offline

    jensIO

    Registriert seit:
    28. Juli 2015
    Beiträge:
    602
    Ort:
    Internet, im Neuland
    Minecraft:
    jens1o
    Sieht doch schon besser aus ;)
     
    #8
  9. TheRedViper
    Offline

    TheRedViper

    Registriert seit:
    12. Juni 2016
    Beiträge:
    9
    Danke.
     
    #9
  10. Verschraubt
    Online

    Verschraubt

    Erinnert mich an die NPC Klasse von GerVOBIS

    Gesendet von meinem SM-G800F mit Tapatalk
     
    #10
    Inkemann gefällt das.
  11. TheRedViper
    Offline

    TheRedViper

    Registriert seit:
    12. Juni 2016
    Beiträge:
    9
    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.
     
    #11
  12. Verschraubt
    Online

    Verschraubt

    okay, sieht nur ziemlich ähnlich aus:
     
    #12
    jensIO gefällt das.
  13. TheRedViper
    Offline

    TheRedViper

    Registriert seit:
    12. Juni 2016
    Beiträge:
    9
    Okay wenn du meinst. Also ich kann nur sagen das ich dies nicht abgecoded habe.
     
    #13
  14. DJKhaled
    Offline

    DJKhaled

    Registriert seit:
    29. Mai 2016
    Beiträge:
    54
    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 ;)
     
    #14
  15. NerdAntenneWirS
    Offline

    NerdAntenneWirS

    Registriert seit:
    11. Juni 2016
    Beiträge:
    13
    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.
     
    #15
  16. DJKhaled
    Offline

    DJKhaled

    Registriert seit:
    29. Mai 2016
    Beiträge:
    54
    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.
     
    #16