Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Please do not post a message for the purpose of insulting, incitement to hatred, sexual remarks and any other which does not respect our terms of use !
Sign in to follow this  
Pouney

 plusemu Commande View MP

Recommended Posts

Vétéran

Bonjour à toutes & à tous.

Je fais un nouveau sujet sur la commande View MP qui à été partagé sur un forum anglais (merci à @Fox pour le partage)

Je vous traduit donc cette commande partagé par Jynx.

 

Petit aperçu : 

img.png.4e7285a282003344767677c2960dd9f1.png

 

C'est parti ! 

 

Ajoutez ceci à Plus.HabboHotel.Rooms.Chat.Commands.Moderator :

(Créez le fichier ViewPrivateMessageCommand.cs)

using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using System.Data;
using Plus.HabboHotel.GameClients;
using Plus.HabboHotel.Rooms;
using Plus.Communication.Packets.Outgoing.Users;
using Plus.Communication.Packets.Outgoing.Rooms.Avatar;
using System.Threading;
using System.Threading.Tasks;
using Plus.Communication.Packets.Outgoing.Rooms.Chat;
using Plus.HabboHotel.Items;
using Plus.HabboHotel.Catalog;
using Plus.Communication.Packets.Outgoing.Inventory.Furni;
using Plus.Database.Interfaces;
using Plus.Communication.Packets.Outgoing.Notifications;
using Plus.Communication.Packets.Outgoing.Rooms.Engine;

namespace Plus.HabboHotel.Rooms.Chat.Commands.Moderator
{
    class ViewPrivateMessageCommand : IChatCommand
    {
        public string PermissionRequired
        {
            get { return "command_view_pms"; }
        }

        public string Parameters
        {
            get { return "%pseudo%"; }
        }

        public string Description
        {
            get { return "Permet de voir les MP récents d'un utilisateur."; }
        }

        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length == 1)
            {
                Session.SendWhisper("Entrez le nom d'utilisateur de l'utilisateur que vous souhaitez afficher les messages privés.");
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Une erreur s'est produite lors de la recherche de cet utilisateur, peut-être qu'il n'est pas en ligne.");
                return;
            }

            if (TargetClient.GetHabbo() == null)
            {
                Session.SendWhisper("Une erreur s'est produite lors de la recherche de cet utilisateur, peut-être qu'il n'est pas en ligne.");
                return;
            }
            StringBuilder b = new StringBuilder();
            b.Append("Messages privés - " + TargetClient.GetHabbo().Username + "\n\n");

            using (IQueryAdapter db = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                db.SetQuery("SELECT * FROM `chatlogs_console` WHERE `from_id` = @id OR `to_id` = @id ORDER BY id DESC LIMIT 100");
                db.AddParameter("id", TargetClient.GetHabbo().Id);
                db.RunQuery();
                DataTable t = db.getTable();

                foreach (DataRow r in t.Rows)
                {
                    b.Append(UnixTimeStampToDateTime((double)PlusEnvironment.GetUnixTimestamp()) + "\n");
                    b.Append(getUsernameFromId(Convert.ToInt32(r["from_id"])) + " à " + getUsernameFromId(Convert.ToInt32(r["to_id"])) + ": " + Convert.ToString(r["message"]) + "\n\n");
                }
            }

            Session.SendMessage(new MOTDNotificationComposer(b.ToString()));
        }

        private DateTime UnixTimeStampToDateTime(double unixTimeStamp)
        {
            // Unix timestamp is seconds past epoch
            System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
            dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime();
            return dtDateTime;
        }

        private string getUsernameFromId(int userId)
        {
            if (PlusEnvironment.GetHabboById(userId) != null)
                return PlusEnvironment.GetHabboById(userId).Username;

            using (IQueryAdapter db = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                db.SetQuery("SELECT `username` FROM `users` WHERE `id` = @id");
                db.AddParameter("id", userId);
                db.RunQuery();
                return db.getString();
            }
        }
    }
}

Ensuite, ouvrez CommandManager.cs et trouvez ceci:

this.Register("ipban", new IPBanCommand());

Ajoutez ceci après : 

this.Register("viewpm", new ViewPrivateMessageCommand());

Ensuite, exécutez cette requête dans votre base de données (remplacez l'ID du Staff avec le rang minimum du staff autorisé à avoir cette commande):

INSERT INTO `permissions_commands` VALUES ('command_view_pms', 'STAFF ID', '0');

 

 

Voilà j'espère n'avoir oublié aucunes traductions et remercie Jake pour cette commande.

Pour les alternatives au CommandManager (nommer autrement la commande) je vous invite à faire une demande.

 

Cordialement.

Share this post


Link to post
Share on other sites
Vétéran

Cimer pour le partage mon ami

Share this post


Link to post
Share on other sites
Vétéran

Share this post


Link to post
Share on other sites
VIP

Pas de quoi ^^'

Share this post


Link to post
Share on other sites
Vétéran

merci , je pourrais voir les conversations coquines de mes joueurs futurs joueurs :D

Share this post


Link to post
Share on other sites
Premium

Merci pour le partage elle en aideras plus d'un ;) 

Share this post


Link to post
Share on other sites
Vétéran
Il y a 2 heures, Nico a dit :

Cimer pour le partage mon ami

 

Il y a 2 heures, Brandon a dit :

Merci :)

 

Il y a 2 heures, Fox a dit :

Pas de quoi ^^'

hehe

Il y a 1 heure, TheJill a dit :

merci , je pourrais voir les conversations coquines de mes joueurs futurs joueurs :D

coquin !

il y a 50 minutes, Sircapa a dit :

Merci pour le partage elle en aideras plus d'un ;) 

 

Avec plaisir !

Share this post


Link to post
Share on other sites
VIP

Pour fixer l'heure changer cette ligne 

b.Append(UnixTimeStampToDateTime((double)PlusEnvironment.GetUnixTimestamp()) + "\n");

par 

 

b.Append(UnixTimeStampToDateTime((double)r["timestamp"]) + "\n");

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...