bStats Nedir? Nasıl Kullanılır? | Detaylı ve Türkçe Rehber

ReklamAlani ReklamAlani ReklamAlani

oSoloTurk

BİZ MCDEYİZ
Yönetici
27 Mar 2019
154
45
830
Kocaeli
bStats_title.PNG

bStats Nedir? Nasıl Kullanılır? | Detaylı Rehber


bStats Nedir? | bStats Ne İşe Yarar?
bStats; Bukkit, Spigot, Bungeecord veya Sponge eklentiniz için kullanım verilerini toplamanıza yardımcı olan ücretsiz ve açık kaynaklı bir web sitesidir. BStats'ı eklentinize entegre etmek basittir ve saniyeler içinde yapılır. Ayrıntılı talimatları konumuzun ilerleyen kısımlarında görebilirsiniz.
Eklentinize bStats ekledikten sonra eklentinizi kaydetmek için bir hesap oluşturmanız gerekir. Eklentilerinizi bStats sayfalarını bu hesapla yönetecebilirsiniz.


bStats Hangi Verileri Saklar ?
bStats'ın sakladığı veriler geliştirici tarafından belirlenmektedir.
bStats kendisi önyüklü olarak sunucuyla ilgili temel verileri toplamaktadır
İlgili verilerin listesini aşağıda görebilirsiniz.
-Eklentiyi kullanan sunucu sayısı

-Eklentiyi kullanan sunucularda bulunan toplam oyuncu sayısı
-Sunucuların online mode durumları
-Sunucuların ana versiyonları
-Sunucuların kullandıkları yazılımlar (Spigot, PaperSpigot gibi)
-Plugininize ait kullanılan sürümlerin dağılımı
-Eklentinizin çalıştırıldığı sunuculara ait core sayıları
-Sunucuların işletim sistemleri
-Sunucuların bulundukları ülke

-Sunucuların kullandığı java sürümü

1593899902747.png


Sunucunuzdan veri toplanmasını nasıl engellersiniz?
Öncelikle bu verilerin toplanmasının tamamen anonim olarak gerçekleştirildiğini bildirmemiz gerekir.
bStats kullanıcıların verilerini anonimleştirerek toplar.
Buna rağmen kapatma hakkınız herzaman vardır.
plugins/bStats/config.yml yolunu takip edin.
enabled:true ayarını enabled:false haline getirin.
Sunucunuzdan artık veri toplanmayacaktır.


Eklentiye bStats nasıl eklenir?
Eklentinize bStats eklemek için ilk önce sayfasına gitmelisiniz.
Ardından yazılımı çalıştırcağınız platformu seçmeli ve bir isim vermelisiniz.
(Giriş yapmanız istenebilir hızlıca kayıt olunuz)

1593898133520.png


ardından size eklemeniz gereken kodları gösterecektir.

1593898170049.png


Eğerki Maven Kullanıyorsanız.
1. Adım: Repository Ekleme
Aşağıdaki repository kodunu pom dosyanızda ilgili yere yerleştirdikten sonra 2. adıma devam edebilirsiniz.
Kod:
<repository>
  <id>CodeMC</id>
  <url>https://repo.codemc.org/repository/maven-public</url>
</repository>

2. Adım: Depend Ekleme
Aşağıdaki depend kodunu pom dosyanızda ilgili yere yerleştirdikten sonra 3. adıma devam edebilirsiniz.
Kod:
<dependency>
  <groupId>org.bstats</groupId>
  <artifactId>bstats-bukkit</artifactId>
  <version>1.7</version>
  <scope>compile</scope>
</dependency>
3. Adım: Shade ayarlamaları
Bu adımda az önceki adımlarda belirlediğiniz bStats'ın kaynak kodlarını projenize maven tarafından otomatik olarak eklenmesini sağlarsınız.
Eklentinizi build ederken otomatik olarak eklenecek olan bStats dosyaları sizi yormadan projenize eklenmiş olur.
Uyarı: Sponge kullanıcıları <configuration>...</configuration> alanını kullanmamalıdır.
Kod:
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.1.0</version>
      <!-- Sponge kullanıcıları <configuration>...</configuration>  alanını kullanmamalıdır. -->
      <configuration>
        <relocations>
          <relocation>
            <pattern>org.bstats</pattern>
            <!--Buraya Senin Paketinin Adını Yaz! -->
            <shadedPattern>senin.paketin</shadedPattern>
          </relocation>
        </relocations>
      </configuration>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>me.name</groupId>
  <artifactId>pluginname</artifactId>
  <version>1.0.0</version>

  <repositories>
    <repository>
      <id>spigot-repo</id>
      <url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
    </repository>
    <repository>
      <id>CodeMC</id>
      <url>https://repo.codemc.org/repository/maven-public</url>
    </repository>
  </repositories>

  <dependencies>
    <!-- Spigot as an example -->
    <dependency>
      <groupId>org.spigotmc</groupId>
      <artifactId>spigot-api</artifactId>
      <version>LATEST</version>
      <scope>provided</scope>
    </dependency>
    <!-- bStats -->
    <dependency>
      <groupId>org.bstats</groupId>
[CENTER]      <artifactId>bstats-bukkit</artifactId>[/CENTER]
      <version>1.7</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.1.0</version>
        <!-- Do not include the <configuration>...</configuration> part if you are using Sponge! -->
        <configuration>
          <relocations>
            <relocation>
              <pattern>org.bstats</pattern>
              <shadedPattern>me.name.util</shadedPattern>
            </relocation>
          </relocations>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>


Maven yerine manuel eklemek istiyorsanız;
Bu durumda bStats standart ve lite olmak üzere 2 hazır class sunmaktadır sizlere, bunlar arasındaki fark ise
özelleştirilmiş verilerdir; Standart örneğini kullanırsanız kendinizin belirlediği metrikleri kullanabilirsiniz fakat Lite version temel metrikleri desteklemektedir.
İlgili tüm class örneklerini
bulabilirsiniz.

1593898734216.png


Uyarı: Manuel eklemeyi sponge desteklemez!

Ardından açılışta new MetricsLite(this); şeklinde Lite versiyonu çalıştırabilirsiniz.
Standart versionun çalıştırılması için ise new Metrics(this); şeklinde kullanarak çalıştırabilirsiniz.
Standart versionun ekstra özelliklerini konunun ilerleyen kısımlarında işleyeceğiz.


Temel İşlevlere Hazırsınız!
Artık bStats'a ait temel verileri toplamaya hazırsınız.
Sıra geldi özelleştirilmiş verilere, Özelleştirilmiş veriler eklentinize özel verilerdir ve toplayabilmek için
Manuel olarak girdileri ayarlamanız gerekmektedir.

1593899353969.png

(Bir Özelleştirilmiş metrik örneğidir.)


1. Adım: bStats Sitesine Ekleme

1593899467929.png


Eklenti sayfanıza girdiğinizde karşınıza çıkan şu alandaki mavi anahtar işaretine tıklayarak
Metrik düzenleme alanına gidin

1593899520796.png


Eklemek istediğiniz metrik türünü seçin

1593899550628.png


Eklediğiniz metrik için bir gösterim adı birde benzersiz tanımlayıcı ad (id) girmelisiniz.
Ardından submit chart butonuna basın ve artık 2. adıma geçebilirsiniz.

1593899645772.png

Şuan bi değer göndermediğimiz için gösterilecek veri bulamıyor...


2. Adım: Eklenti içerisinde veri gönderimini ayarlama
Kod:
metrics = new Metrics(this);
metrics.addCustomChart(new Metrics.SimplePie("bizmcdeyiz", () -> "1000"));
Bir örneğini gördüğünüz bu adımda oluşturduğumuz bizmcdeyiz idli metriğe bir veri gönderdik. gönderilen bu veri sabit olmak zorunda değildir, değişkenler kullanabilirsiniz.

Bu adımlarında ardından artık bStats kurulumunu tamamladınız!

1593900341871.png

(ApiaJackpot Eklentisine Ait Dünya Üzerinde Kullanıcı Dağılımı Haritası)

Özelleştirilmiş metrik türlerine göre kullanım şekilleri:
Metriklerin özelleştirilmesinden dolayı oluşan farklı yapıları düzenlemek kendi başına bir alan hakediyordu konumuzda
dolayısıyla şimdi bunlara başlıyoruz.


1593900465604.png

(Basit Turta Örneği ~ Simple Pie Example)
Simple Pie
Kod:
@Override
public void onEnable() {
    Metrics metrics = new Metrics(this);
    metrics.addCustomChart(new Metrics.SimplePie("used_language", new Callable<String>() {
        @Override
        public String call() throws Exception {
            return getConfig().getString("language", "en");
        }
    }));
}
Advanced Pie
Kod:
@Override
public void onEnable() {
    Metrics metrics = new Metrics(this);
    metrics.addCustomChart(new Metrics.AdvancedPie("most_famous_foods", new Callable<Map<String, Integer>>() {
        @Override
        public Map<String, Integer> call() throws Exception {
            Map<String, Integer> valueMap = new HashMap<>();
            valueMap.put("Apple", getPlayersWithFood(Material.APPLE));
            valueMap.put("Bread", getPlayersWithFood(Material.BREAD));
            return valueMap;
        }
  
        private int getPlayersWithFood(Material food) {
            int counter = 0;
            for (Player player : Bukkit.getOnlinePlayers()) {
                if (player.getInventory().contains(food)) {
                    counter++;
                }
            }
            return counter;
        }
    }));
}


Advanced Pie ile simple pie nin farkı birden fazla değişkeni desteklemeleridir.

1593900692894.png

(Keşfedilen Turta Örneği ~ Drilldown Pies Example)

Bu tür birden çok değişkeni % bazlı dağılımlarını göstermek için uygundur.
Kod:
@Override
public void onEnable() {
    Metrics metrics = new Metrics(this);
        metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
        Map<String, Map<String, Integer>> map = new HashMap<>();
        String javaVersion = System.getProperty("java.version");
        Map<String, Integer> entry = new HashMap<>();
        entry.put(javaVersion, 1);
        if (javaVersion.startsWith("1.7")) {
            map.put("Java 1.7", entry);
        } else if (javaVersion.startsWith("1.8")) {
            map.put("Java 1.8", entry);
        } else if (javaVersion.startsWith("1.9")) {
            map.put("Java 1.9", entry);
        } else {
            map.put("Other", entry);
        }
        return map;
    }));
}


1593900813611.png

(Çizgi Grafik Örneği ~ Line Charts Example)

Bu sürekli verilerin zamana bağlı değişimlerini izlemek için kullanılan bir metrik görüntleme şeklidir.
Üstelik bu gösterim şekli birden fazla çizgiyi birliktede işleyebilir.
(Bu özellik geliştirilme aşamasındadır)


Tek Çizgi Kod Örneği
Kod:
@Override
public void onEnable() {
    Metrics metrics = new Metrics(this);
    metrics.addCustomChart(new Metrics.SingleLineChart("players", new Callable<Integer>() {
        @Override
        public Integer call() throws Exception {
            // (This is useless as there is already a player chart by default.)
            return Bukkit.getOnlinePlayers().size();
        }
    }));
}
Çok Çizgili Kod Örneği
Kod:
@Override
public void onEnable() {
    Metrics metrics = new Metrics(this);
    metrics.addCustomChart(new Metrics.MultiLineChart("players_and_servers", new Callable<Map<String, Integer>>() {
        @Override
        public Map<String, Integer> call() throws Exception {
            Map<String, Integer> valueMap = new HashMap<>();
            valueMap.put("servers", 1);
            valueMap.put("players", Bukkit.getOnlinePlayers().size());
            return valueMap;
        }
    }));
}


1593900973753.png

(Bar Grafiği Örneği ~ Bar Charts Example)

Basit ve gelişmiş olarak 2 şekilde kullanılan bilen bu görüntüleme şeklinde bir özelliğe birden fazla durumuda gösterebilirsiniz.

Basit Bar Grafiği Örneği
Kod:
@Override
public void onEnable() {
    Metrics metrics = new Metrics(this);
    // A simple bar chart for only one bar per category
    metrics.addCustomChart(new Metrics.SimpleBarChart("exampleBar", new Callable<Map<String, Integer>>() {
        @Override
        public Map<String, Integer> call() throws Exception {
            Map<String, Integer> map = new HashMap<>();
            map.put("Feature 1", 1);
            return map;
        }
    }));
}
Gelişmiş Bar Grafiği Örneği
Kod:
@Override
public void onEnable() {
    Metrics metrics = new Metrics(this);
// An advanced bar for more then one bar per category
    metrics.addCustomChart(new Metrics.AdvancedBarChart("exampleBar", new Callable<Map<String, int[]>>() {
        @Override
        public Map<String, int[]> call() throws Exception {
            Map<String, int[]> map = new HashMap<>();
            map.put("Feature 1", new int[]{0,1});
            map.put("Feature 2", new int[]{1,0});
            return map;
        }
    }));
}



Bu sayfada kullanılan tüm kod ve görseller bstats.org un rehber görsel ve kodlarıdır.
Türkçe anlatım sağlanması için kullanılmıştır.

 
Son düzenleme:
  • Beğen
Tepkiler: irfandumanx