Einlog Plugin Inventar verstecken?

Dieses Thema im Forum "Programmierung" wurde erstellt von Funzocker1, 24. April 2013.

  1. Funzocker1
    Offline

    Funzocker1

    Registriert seit:
    21. Oktober 2012
    Beiträge:
    127
    Hallo liebe Coder in diesem Forum ^^.
    Ich habe vor einpaar Stunden begonnen ein Einlog Plugin zu schreiben. Jetzt ist eigentlich alles fertig also vom simplen /login bis zur Ip Abspeicherung usw.
    Jetzt ist mir aber noch eingefallen das ein gutes Einlog Plugin auch verhindert das der Joinende nicht eingeloggte das Inventar des Spielers sieht also das das Inventar erst nach dem Login verfügbar ist. Jetzt gäbe es natürlich die möglichkeit das Inventar mit einer seralize Mehtode zu seralizen dann apzuspeichern und beim login einfach zu erstatten aber das erscheint mit doch zu sehr als Performance Killer als das so Funktionieren könnte.
    Jetzt wollte ich fragen ob es eine möglichkeit gibt das Inventar vor dem Login zu verstecken Ohne es wirklich zu clearen oder extra eine Abspeicherung zu coden.
    Ich hoffe es wurde mein Problem klar.
    Lg funzocker1.
     
    #1
  2. ChunkNorris
    Offline

    ChunkNorris

    Inventar clonen, neues leeres Inv geben -> wenn eingeloggt altes Inv zurückgeben......
     
    #2
  3. Funzocker1
    Offline

    Funzocker1

    Registriert seit:
    21. Oktober 2012
    Beiträge:
    127
    Achja

    Oh Achja so würde es gehen im Kombination mit einer HashMap :D.
    Wie peinlich da schon mit seralize Methoden herum zu coden währen es so einfach geht :D
    Danke

    Edit:
    Mir ist jetzt nochmal was eingefallen. Das geht auch nicht wirklich weil wenn ich es so mache mit einer Hashmap und jemand ist auf dem Server der nicht eingeloggt ist, aber ich mache einen reload dann ist die Hashmap leer und das Inv von dem anderen ist für immer weg :(.
     
    #3
  4. Crafter6432
    Offline

    Crafter6432

    Registriert seit:
    22. Dezember 2011
    Beiträge:
    686
    AuthMe speichert das Inv von jedem, der nicht eingeloggt ist auf der HDD, xAuth in der DB, bei AuthMe sieht das so aus:
    Code (Text):
    1. null;0
    2. i:274:1:4:
    3. i:0:0:0:
    4. i:263:25:1:
    5. i:259:1:6:
    6. i:267:1:95:
    7. i:0:0:0:
    8. i:0:0:0:
    9. i:0:0:0:
    10. i:0:0:0:
    11. i:0:0:0:
    12. i:292:1:6:
    13. i:38:4:0:
    14. i:0:0:0:
    15. i:280:1:0:
    16. i:0:0:0:
    17. i:0:0:0:
    18. i:0:0:0:
    19. i:0:0:0:
    20. i:0:0:0:
    21. i:0:0:0:
    22. i:0:0:0:
    23. i:0:0:0:
    24. i:0:0:0:
    25. i:0:0:0:
    26. i:0:0:0:
    27. i:0:0:0:
    28. i:0:0:0:
    29. i:0:0:0:
    30. i:0:0:0:
    31. i:0:0:0:
    32. i:0:0:0:
    33. i:0:0:0:
    34. i:0:0:0:
    35. i:0:0:0:
    36. i:0:0:0:
    37. i:0:0:0:
    38. w:0:0:-1:
    39. w:0:0:-1:
    40. w:0:0:-1:
    41. w:0:0:-1:
     
    #4
  5. ChristianG
    Offline

    ChristianG

    Hä?
    Kann man nicht einfach sowas machen (STARK vereinfacht!):
    Code (Text):
    1.  
    2. public void onPlayerJoinEvent(PlayerJoinEvent event){
    3.        Inventory orgInv = event.getEntitiy().getInventar();
    4.        Inventory tmpInv = new Inventory();
    5.        event.getEntity.setInventar(tmpInv);
    6. }
    7.  
    und nach dem Login einfach orgInv wiedergeben...
    Nicht getest und Methoden müssen nicht zwangsläufig so heißen...
    Jetzt schnell aufm Handy (und ausm Kopf€ getippt
     
    #5
  6. Funzocker1
    Offline

    Funzocker1

    Registriert seit:
    21. Oktober 2012
    Beiträge:
    127
    christian das würde mir nicht helfen weil bei einem reload wieder alles weg wäre aber es hat sich erledigt. Ich habe es mit einer hashmap gelöst. Beim quit wird das inv zurück gegeben sollte es zu einem reload kommen gehe ich in den onDisalbe() und habe dort jeden nicht eingeloggten das inv gegeben und sofort gekickt. So kann ich das ganze bug frei und cool rüber bringen ^^.
    Trotzdem danke für alle Antworten LG
     
    #6