Java Devs dostlar tekrar bir sorun var :)

notaldo

If you want this, dream it!
En iyi cevaplar
1
Merhabalar arkadaşlar ben bir plugin yazmaya çalışıyordum ama schulder bilgim olmadığı için size danışmak istedim...

Pluginin özelliği adam oyunda en az 10 dk oynamadan konuşamayacak :)

evet benim yazdığım kod:


PHP:
package com.speedyg.toantireklam;

import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class AntiReklam extends JavaPlugin implements Listener{
   
    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("TO-AntiReklam Aktif!");
    }
   
    @Override
    public void onDisable(){
        }

    @EventHandler
    public void anti10dk(AsyncPlayerChatEvent e){
        if(!e.getPlayer().hasPlayedBefore()){
            e.setCancelled(true);
           
        }
    }
}

@Krumb069 @IRFN @Speaw @VitesMahmut @Minecraftplayerr @Dpelqpleq @veunuttuklarımk :)
 

Krumb069

Nether Yerlisi
En iyi cevaplar
1
Buna benzer bir konuda (vip pluginindi sanırım) kod atmıştım konu linkini bulamadım ordaki kodu buna uyarlayabilirsin
 

notaldo

If you want this, dream it!
En iyi cevaplar
1
Buna benzer bir konuda (vip pluginindi sanırım) kod atmıştım konu linkini bulamadım ordaki kodu buna uyarlayabilirsin
bulursan atarmısın bende arayacağım :)

Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.

Mantık bu şekilde sanırım. Acil işim olduğundan anlatamıyorum. Haftasonu mesaj atarsan anlatabilirim.
Teşekkür ederim ama malesef bu değil benim dediğim oyuncu girdiğinde 10 dk mesaj atamayacak :) ordan birkaç alıntı yapmaya çalışıcam ama teşekkür ederim yinede :)

Buna benzer bir konuda (vip pluginindi sanırım) kod atmıştım konu linkini bulamadım ordaki kodu buna uyarlayabilirsin
Aradım ama sanırım bulamadım yok konu başlığından falan hatırladığın varmı ? Ya da mesajlardan bakarmısın bi ?
 

Dantero

Elmas Madencisi
En iyi cevaplar
0
Bir hashmap oluştur oyuncu girdiğinde oyuncuyu hashmap e ekle ve delayed task kullanıp 10 dakika sonra oyuncuyu ordan sil konuşma eventi oluştur oraya oyuncunun hashmap in içinde olup
olmadığını kontrol et içindeyse eventi iptal et :)
Yapamadıysan söyle kodu atayım(pc geçince).
 

notaldo

If you want this, dream it!
En iyi cevaplar
1
Bir hashmap oluştur oyuncu girdiğinde oyuncuyu hashmap e ekle ve delayed task kullanıp 10 dakika sonra oyuncuyu ordan sil konuşma eventi oluştur oraya oyuncunun hashmap in içinde olup
olmadığını kontrol et içindeyse eventi iptal et :)
Yapamadıysan söyle kodu atayım(pc geçince).
Atarsan sevinirim :) çunku bildiğiniz üzere daha yeni başladım sadece olan eventlerle olay yapabiliyorum yeni bir task oluşturup ordan uygulama gibi şeyler yapamıyorum inşallah en yakın zamanda öğrenicem :)
 

Dantero

Elmas Madencisi
En iyi cevaplar
0
Aslında hashmap yerine arraylist oluşturabilirsin oluşturmak için:
Kod:
ArrayList<Player> sohbet = new ArrayList<Player>();
Bu kodu onEnable metodunun üstüne yaz. Task oluşturmak için vereceğim kodu oyuncu giriş yapma eventine yapıştır
Kod:
sohbet.add(event.getPlayer());
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
  public void run() {
  sohbet.remove(event.getPlayer());// böyle bir şey olması lazım teldeyim.
  }
}, 60*10);//burası süredir 60*10 demek 600 saniye oda 10 dakikaya denk geliyor.

Konuşma eventinede :
Kod:
if (sohbet.contains(event.getPlayer())){
[TAB]event.setCancelled(true);
[TAB]event.getPlayer().sendMessage("10 dakika sonra konuşabilirsin!");
Bunları yaz çalışacaktır çalışmıyorsa parantez veya boşluk hatası vb olabilir. Telefondayım anca bu kadar oluyor :):)

Edit: Kodda bir eksiklik fark ettim. Oyuncunun giriş yaptığında sohbet listesine eklemeyi unuttum. Güncelledim.
 
Son düzenleme:

notaldo

If you want this, dream it!
En iyi cevaplar
1
PHP:
package com.speedyg.tomuc;

import java.util.ArrayList;

import net.md_5.bungee.api.ChatColor;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener{
    ArrayList<Player> sohbet = new ArrayList<Player>();
  
    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("TO-AntiReklam Aktif!");
    }
  
    @Override
    public void onDisable(){
        }

    @EventHandler
    public void anti10dk(AsyncPlayerChatEvent event){
        sohbet.add(event.getPlayer());
        Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
        
           
            public void run() {
          sohbet.remove(event.getPlayer());
          if (sohbet.contains(event.getPlayer())){
              event.setCancelled(true);
              event.getPlayer().sendMessage(ChatColor.RED  + "Sanirim sunucuya ilk girisin! Malesef 10 dakika oyun oynamadan konusamassin!");
          }
        }, 60*10);
          
        }
    }
}

Böyle yaptım ama hatav veriyor sanırım body de hata var kontrol edermisiniz bi ?
 

notaldo

If you want this, dream it!
En iyi cevaplar
1
PHP:
            public void run() {
          sohbet.remove(event.getPlayer());
          if (sohbet.contains(event.getPlayer())){
              event.setCancelled(true);
              event.getPlayer().sendMessage(ChatColor.RED  + "Sanirim sunucuya ilk girisin! Malesef 10 dakika oyun oynamadan konusamassin!");
          }
        }, 60*10);
         
        }
    }
}

dediğim gibi şu body parantezlerinde sıkıntı var :(
 

Dantero

Elmas Madencisi
En iyi cevaplar
0
PHP:
            public void run() {
          sohbet.remove(event.getPlayer());
          if (sohbet.contains(event.getPlayer())){
              event.setCancelled(true);
              event.getPlayer().sendMessage(ChatColor.RED  + "Sanirim sunucuya ilk girisin! Malesef 10 dakika oyun oynamadan konusamassin!");
          }
        }, 60*10);
        
        }
    }
}

dediğim gibi şu body parantezlerinde sıkıntı var :(
Şuanda bir hata göremiyorum pc geçince eclipse üzerine koyup kodu atarım.

Buyur:
Kod:
package com.speedyg.tomuc;

import java.util.ArrayList;

import net.md_5.bungee.api.ChatColor;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener{
    ArrayList<Player> sohbet = new ArrayList<Player>();

    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("TO-AntiReklam Aktif!");
    }

    @Override
    public void onDisable(){
    }
    @EventHandler
    public void girdiginde(final PlayerJoinEvent e){
        if (!e.getPlayer().hasPlayedBefore()){
            sohbet.add(e.getPlayer());
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                @Override
                public void run() {
                    sohbet.remove(e.getPlayer());
                    e.getPlayer().sendMessage("§a10 Dakika Doldu! Artık Konuşabilirsin!");
                }
            }, 60*10);
        }
    }

    @EventHandler
    public void anti10dk(final AsyncPlayerChatEvent event){
        if (sohbet.contains(event.getPlayer())){
            event.setCancelled(true);
            event.getPlayer().sendMessage(ChatColor.RED  + "Sanirim sunucuya ilk girisin! Malesef 10 dakika oyun oynamadan konusamassin!");
        }
    }
}
 

notaldo

If you want this, dream it!
En iyi cevaplar
1
Şuanda bir hata göremiyorum pc geçince eclipse üzerine koyup kodu atarım.

Buyur:
Kod:
package com.speedyg.tomuc;

import java.util.ArrayList;

import net.md_5.bungee.api.ChatColor;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener{
    ArrayList<Player> sohbet = new ArrayList<Player>();

    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("TO-AntiReklam Aktif!");
    }

    @Override
    public void onDisable(){
    }
    @EventHandler
    public void girdiginde(final PlayerJoinEvent e){
        if (!e.getPlayer().hasPlayedBefore()){
            sohbet.add(e.getPlayer());
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                @Override
                public void run() {
                    sohbet.remove(e.getPlayer());
                    e.getPlayer().sendMessage("§a10 Dakika Doldu! Artık Konuşabilirsin!");
                }
            }, 60*10);
        }
    }

    @EventHandler
    public void anti10dk(final AsyncPlayerChatEvent event){
        if (sohbet.contains(event.getPlayer())){
            event.setCancelled(true);
            event.getPlayer().sendMessage(ChatColor.RED  + "Sanirim sunucuya ilk girisin! Malesef 10 dakika oyun oynamadan konusamassin!");
        }
    }
}

Teşekkürler :)
 

WhisperB

Whisper NETWORK
En iyi cevaplar
0
Javadan hiç anlamıyorum. Özelden veya burdan paylaşma ihtimalin var mı?
 
Üst