Sie sind nicht angemeldet.

  • Anmelden

[Bukkit] AutoUpdater

MarcSenpai

User / Kunde

  • »MarcSenpai« ist männlich
  • »MarcSenpai« ist der Autor dieses Themas

Beiträge: 138

Wohnort: Clover

Beruf: Schüler

  • Nachricht senden

1

Dienstag, 26. Juni 2018, 20:55

AutoUpdater

AutoUpdater
Dieses Thema ist ein kompletter Edit zum AutoUpdater(Autoupdater 1/2 Release).
Inhasangabe:
1. Installation
2. Nötige änderungen
3. Erstellen der korrekten Webspaces
4. Wie es funktioniert
1. Erstellt eine extra klasse, diese könnt ihr nennen wie ihr wollt, dieses Code kopiert ihr dort hinein:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package me.marc.senpai.autoupdater.main;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.commons.io.IOUtils;
import org.bukkit.Bukkit;





public class Utils {
	
	public static String version = "Eure-Version";
	public static String versionlink = "Euer-Version-Link";
	public static String downloadlink = "Euer-Download-Link";
	public static String newversion;
	
	public static void startautoupdater() {
		if(versionlink == null) {
			Bukkit.getConsoleSender().sendMessage("§cFailed by checking version...");
		}else
			Bukkit.getConsoleSender().sendMessage("§aChecking the version...");
		
		try {
			Utils.checkversion(new URL(versionlink));
		} catch (MalformedURLException e) {	
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		if(newversion.contains(version)) {
			
			Bukkit.getConsoleSender().sendMessage("§5No Updates found");
			return;
		}else {
			Bukkit.getConsoleSender().sendMessage("§6Downloading the new version");
File file = new File("plugins/name-eueres-plugins-mit-Groß-und-Kleinschreibung.jar");
		
		if(downloadlink ==  null) {
			Bukkit.getConsoleSender().sendMessage("§cFailed by downloading new version");
		}else
		if (!file.exists()) {
			Bukkit.getConsoleSender().sendMessage("§cPls rename the Autoupdater again in autoupdater");
			Bukkit.shutdown();
		}else
			
		Utils.downloadFile(file, downloadlink);
		}
	}
	
	
	
	
	
	public static void downloadFile(File destination, String url)
	  {
		try
		{
	  	HttpURLConnection connection = (HttpURLConnection)new URL(url).openConnection();
	  	connection.connect();
	  	
	  	FileOutputStream outputStream = new FileOutputStream(destination);
	  	InputStream inputStream = connection.getInputStream();
	  	byte[] buffer = new byte['E'];
	  	int readBytes = 0;
	  	while ((readBytes = inputStream.read(buffer)) > 0) {
	    	outputStream.write(buffer, 0, readBytes);
	  	}
	  	outputStream.close();
	  	inputStream.close();
	  	connection.disconnect();
		}
		catch (Exception localException) {}
	  }
	
	public static void checkversion(URL url) throws IOException {
		BufferedReader reader = null;
		StringBuilder builder = new StringBuilder(128000);
		
		try {
			reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
			int zahl;
			char[]data = new char[1024];
			while((zahl = reader.read(data)) != -1) {
				builder.append(data, 0, zahl);
			}
		}finally {
			IOUtils.closeQuietly(reader);
		}
		newversion = builder.toString();
	}
}
Dann schreibt ihr in der Main im onEnable() teil hinein: "Eure-Klasse.startautoupdater();
2. Änderungen müsst ihr überall dortvornehmen wo irgendeine Stütze steht, also zumsammengezählt 4 mal, und alle Msgs die ihr verändert haben wollt.
3. Wenn ihr noch kein Webspace habt kann ich euch https://www.000webhost.com/ empfehlen.
Ihr erstellt eine neue seiten mit dem index.html dort schreibt ihr irgendwas hinein:
!!!Kein Hmtl gerüst, nur einen Wert!!!
4. Nun gut wie funktioniert das Ganze?
Dort wo version steht also der String schreibt ihr irgendwas hinein das ist aber egal.
Auf euerem Webspace den wir gerade erstellt haben, habt ihr eure index.html wo ein wert drine steht.
Der Code vergleicht beide "Strings", wenn sie gleich sind passiert nichts, wenn sie sich auch nur minimal unterscheiden
downloadet er die neue Version vom Plugin. Dazu müsst ihr IMMER das neue Plugin auf den Webspace hochladen. der Link muss irgendwie so aussehen:

Quellcode

1
https://eure-URL/Eure-Plugin-name.jar
Wenn ihr den Link bestätigt und es öffnet sich nichts außer ein PopUp fenster wo ihr es downloaden könnt seit ihr richtig.
Diesen gebt ihr als Download link ein. Dabei müsst ihr noch beachten das ihr den String version immer verändert.
Ich hoffe ich konnte ihn gut erklären.
MfG Marc :thumbsup:
»MarcSenpai« hat folgende Datei angehängt:
  • version.PNG (11,48 kB - 6 mal heruntergeladen - zuletzt: 8. Juli 2018, 21:40)
In der kürze liegt die Würze
- Shakespeares | Unitygaming-FastFelix

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »MarcSenpai« (30. Juni 2018, 13:38)


xtrumb

User / Kunde

  • »xtrumb« ist männlich

Beiträge: 2 252

Wohnort: hier

Beruf: Fachinformatiker für Systemintegration

Danksagungen: 16

  • Nachricht senden

2

Mittwoch, 27. Juni 2018, 08:07

An sich war es mir persönlich hilfreich, da ich mich noch nie damit beschäftigen wollte.

Allerdings hätte ich noch eine Verbesserungsmöglichkeit:

Du könntest nämlich mit einer Forschleife den Plugins-Ordner durchgehen und mit .toLowerCase und .contains den Dateinamen bekommen.
So bist du unabhängiger, wie die Datei heißt und somit unabhängiger vom Serverbetreiber, falls er die Version zum Pluginnamen schreiben möchte.
Mit freundlichen Grüßen
TrueMB

Dienstleistungs Service
Unser Csgo Team

MarcSenpai

User / Kunde

  • »MarcSenpai« ist männlich
  • »MarcSenpai« ist der Autor dieses Themas

Beiträge: 138

Wohnort: Clover

Beruf: Schüler

  • Nachricht senden

3

Mittwoch, 27. Juni 2018, 20:04

Unrecht hast du damit ja nicht...
In der kürze liegt die Würze
- Shakespeares | Unitygaming-FastFelix

EuroCent

User / Kunde

  • »EuroCent« ist männlich

Beiträge: 362

Wohnort: Thüringen

Beruf: Vodafone Mitarbeiter

  • Nachricht senden

4

Donnerstag, 5. Juli 2018, 11:45

Dazu sollte man aber auch bedenken, dass Ihr auh einer Weißen Webseite einen Impressum hinterlegen solltet.
Sonst habt Ihr ganz schnell einen Abmahn-Anwalt an der Backe ^^